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

Timeline



Oct 10, 2016:

11:54 PM Changeset in webkit [207056] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r205659 - Don't run transitions to or from undefined Lengths
https://bugs.webkit.org/show_bug.cgi?id=161750
rdar://problem/28170460

Reviewed by Zalan Bujtas.

Source/WebCore:

For properties like max-height whose default value is 'none', we would erroneously
attempt to run transitions/animations, and then assert when one of the endpoints
was undefined.

So don't attempt to blend such Length values, just as do when they are auto.

Fixes some transitions on apple.com and developer.apple.com.

Test: transitions/transition-to-from-undefined.html

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimation::blendProperties):

  • platform/Length.cpp:

(WebCore::blend):

LayoutTests:

  • transitions/transition-to-from-undefined-expected.txt: Added.
  • transitions/transition-to-from-undefined.html: Added.
11:53 PM Changeset in webkit [207055] by Carlos Garcia Campos
  • 14 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r205658 - Heap version should be 32-bit
https://bugs.webkit.org/show_bug.cgi?id=161751

Reviewed by Mark Lam.

32-bit devices are probably getting hurt by the 64-bit version number. The reason why I made
it 64-bit initially is so that I wouldn't have to worry about wrap-around. But wrap-around is
easy to handle.

  • heap/CellContainer.h:
  • heap/CellContainerInlines.h:

(JSC::CellContainer::flipIfNecessary):

  • heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::genericAddPointer):
(JSC::ConservativeRoots::genericAddSpan):

  • heap/ConservativeRoots.h:
  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::testAndSetMarked):

  • heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::MarkedBlock):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::flipIfNecessary):
(JSC::MarkedBlock::flipIfNecessaryConcurrently):
(JSC::MarkedBlock::Handle::flipIfNecessary):
(JSC::MarkedBlock::Handle::flipIfNecessaryConcurrently):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::flip):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::version):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::SlotVisitor):

  • heap/SlotVisitor.h:
11:43 PM Changeset in webkit [207054] by zandobersek@gmail.com
  • 18 edits in trunk

Add ENABLE_ENCRYPTED_MEDIA configuration option
https://bugs.webkit.org/show_bug.cgi?id=163219

Reviewed by Darin Adler.

.:

Add the ENABLE_ENCRYPTED_MEDIA configuration option to the
CMake and MSVC build systems. It will be used to enable or
disable the new EME implementation at build-time.

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Add the ENABLE_ENCRYPTED_MEDIA configuration option. It will be used
to enable or disable the new EME implementation at build-time.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Add the ENABLE_ENCRYPTED_MEDIA configuration option. It will be used
to enable or disable the new EME implementation at build-time.

  • DerivedSources.make: Group the legacy option and the new option together.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Add the ENABLE_ENCRYPTED_MEDIA configuration option. It will be used
to enable or disable the new EME implementation at build-time.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Add the ENABLE_ENCRYPTED_MEDIA configuration option. It will be used
to enable or disable the new EME implementation at build-time.

Source/WTF:

  • wtf/FeatureDefines.h:

If undefined, define the ENABLE_ENCRYPTED_MEDIA option to 0.

Tools:

  • Scripts/webkitperl/FeatureList.pm:

Make the ENABLE_ENCRYPTED_MEDIA option overridable via build-webkit.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Add the ENABLE_ENCRYPTED_MEDIA configuration option. It will be used
to enable or disable the new EME implementation at build-time.

11:42 PM Changeset in webkit [207053] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

CachedResourceRequest constructor should be made more efficient
https://bugs.webkit.org/show_bug.cgi?id=163210

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

No change of behavior.

Refactoring to use one CachedResourceRequest constructor that will move its request and charset to improve efficiency.

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::PreloadRequest::resourceRequest):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::CachedResourceRequest):

  • loader/cache/CachedResourceRequest.h:
11:39 PM Changeset in webkit [207052] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

WebRTC: Make MediaEndpointPeerConnection handle remotely assigned mids correctly
https://bugs.webkit.org/show_bug.cgi?id=163202

Patch by Adam Bergkvist <adam.bergkvist@ericsson.com> and Alejandro G. Castro <alex@igalia.com> on 2016-10-10
Reviewed by Eric Carlson.

Source/WebCore:

An RTCRtpTransceiver has a null mid until it's been associated with a
media description (with a mid) [1]. During that time, it's identified by
a provisional mid that might become its real mid, but the transceiver
can also get its mid assigned by a remote media description. In the
second case, the mid value is initially unknown. A transceiver's
RTCRtpSender must directly (synchronously in the script) provide a muted
remote source that is playable by, for example, a media element. This
source is initially registered in the MediaEndpoint (WebRTC backend)
with the transceiver's provisional mid. So, if the real mid is set by a
remote description, the registered mid must be updated to preserve the
association between the registered source and the transceiver.

[1] https://w3c.github.io/webrtc-pc/archives/20160913/webrtc.html#dom-rtcrtptransceiver-mid

Test: fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

Don't break after finding the first transceiver in the loop that builds the send source map.
Update the mid used to register the muted remote source if the a transceiver's mid gets
assigned by a remote media description.
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):

  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::MockMediaEndpoint):
(WebCore::MockMediaEndpoint::updateReceiveConfiguration):
(WebCore::MockMediaEndpoint::updateSendConfiguration):
(WebCore::MockMediaEndpoint::createMutedRemoteSource):
(WebCore::MockMediaEndpoint::replaceMutedRemoteSourceMid):
(WebCore::MockMediaEndpoint::emulatePlatformEvent):
Add "unmute-remote-sources-by-mid" action that emulates data arriving on media descriptions
which unmutes the remote sources.
(WebCore::MockMediaEndpoint::updateConfigurationMids):
(WebCore::MockMediaEndpoint::unmuteRemoteSourcesByMid):
(WebCore::MockMediaEndpoint::unmuteTimerFired):

  • platform/mock/MockMediaEndpoint.h:

LayoutTests:

Test the case when an RTCRtpTransceiver gets its mid assigned from a remote session
description.

  • fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html: Added.
  • platform/mac/TestExpectations:

Skip above test until the Mac port builds with WEB_RTC.

11:36 PM Changeset in webkit [207051] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r205656 - Add support for a ternary sub32 emitter for ARM64 and 32-bit ARM.
https://bugs.webkit.org/show_bug.cgi?id=161724

Reviewed by Filip Pizlo.

ARM architectures support ternary sub instructions. We should make use of them
in emitAllocateWithNonNullAllocator().

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::sub32):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::sub32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::sub32):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::sub32):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::sub32):

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::testTernarySubInstructionSelection):
(JSC::B3::run):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

11:23 PM Changeset in webkit [207050] by Darin Adler
  • 37 edits in trunk/Source/WebCore

Move audio module off of legacy exceptions
https://bugs.webkit.org/show_bug.cgi?id=163269

Reviewed by Alex Christensen.

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::setFftSize): Use ExceptionOr.
(WebCore::AnalyserNode::setMinDecibels): Ditto.
(WebCore::AnalyserNode::setMaxDecibels): Ditto.
(WebCore::AnalyserNode::setSmoothingTimeConstant): Ditto.

  • Modules/webaudio/AnalyserNode.h: Update for above.
  • Modules/webaudio/AnalyserNode.idl: Ditto.
  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::AudioBasicInspectorNode):
Initialize m_needAutomaticPull in class definition.
(WebCore::AudioBasicInspectorNode::connect): Use ExceptionOr.
(WebCore::AudioBasicInspectorNode::disconnect): Ditto.

  • Modules/webaudio/AudioBasicInspectorNode.h: Updated for above.
  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::createFromAudioFileData): Use reference.
(WebCore::AudioBuffer::AudioBuffer): Initialize m_gain in class definition.
(WebCore::AudioBuffer::getChannelData): Use ExceptionOr.
(WebCore::AudioBuffer::channelData): Rename to disambiguate with getChannelData.
(WebCore::AudioBuffer::zero): Use modern for loop.

  • Modules/webaudio/AudioBuffer.h: Update for above.
  • Modules/webaudio/AudioBuffer.idl: Ditto.
  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::process): Use reference.
(WebCore::AudioBufferSourceNode::setBuffer): Use channelData.
(WebCore::AudioBufferSourceNode::start): Use ExceptionOr.
(WebCore::AudioBufferSourceNode::startPlaying): Ditto.

  • Modules/webaudio/AudioBufferSourceNode.h: Update for above.
  • Modules/webaudio/AudioBufferSourceNode.idl: Ditto.
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::createBuffer): Use ExceptionOr.
(WebCore::AudioContext::createMediaElementSource): Ditto.
(WebCore::AudioContext::createMediaStreamSource): Ditto.
(WebCore::AudioContext::createScriptProcessor): Ditto.
(WebCore::AudioContext::createDelay): Ditto.
(WebCore::AudioContext::createChannelSplitter): Ditto.
(WebCore::AudioContext::createChannelMerger): Ditto.
(WebCore::AudioContext::createPeriodicWave): Ditto.

  • Modules/webaudio/AudioContext.h: Update for above.
  • Modules/webaudio/AudioContext.idl: Ditto.
  • Modules/webaudio/AudioDestinationNode.h: Use unsigned instead

of unsigned long for maxChannelCount.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::connect): Use ExceptionOr.
(WebCore::AudioNode::disconnect): Ditto.
(WebCore::AudioNode::channelCount): Use unsigned.
(WebCore::AudioNode::setChannelCount): Use ExceptionOr and unsigned.
(WebCore::AudioNode::setChannelCountMode): Ditto.
(WebCore::AudioNode::setChannelInterpretation): Ditto.

  • Modules/webaudio/AudioNode.h: Update for above.
  • Modules/webaudio/AudioNode.idl: Ditto.
  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
Initialize data members in class definition.
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo): Take
a reference instead of a pointer to the audio bus.
(WebCore::AudioScheduledSourceNode::start): Use ExceptionOr.
(WebCore::AudioScheduledSourceNode::stop): Ditto.

  • Modules/webaudio/AudioScheduledSourceNode.h: Update for above.
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode): Initialize m_normalize
in class definition.
(WebCore::ConvolverNode::setBuffer): Use ExceptionOr.

  • Modules/webaudio/ConvolverNode.h: Update for above.
  • Modules/webaudio/ConvolverNode.idl: Ditto.
  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
Initialize m_numberOfInputChannels in class definition.
(WebCore::DefaultAudioDestinationNode::maxChannelCount): Use unsigned.
(WebCore::DefaultAudioDestinationNode::setChannelCount): Use ExceptionOr.

  • Modules/webaudio/DefaultAudioDestinationNode.h: Update for changes above.
  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::DelayNode): Moved exception logic out of constructor.
(WebCore::DelayNode::create): Added. Moved exception logic in here.
(WebCore::DelayNode::delayTime): Moved typecast here from header.

  • Modules/webaudio/DelayNode.h: Update for above.
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::OfflineAudioContext): Marked inline.
(WebCore::OfflineAudioContext::create): Use ExceptionOr.
(WebCore::OfflineAudioContext::~OfflineAudioContext): Deleted. Unneeded.

  • Modules/webaudio/OfflineAudioContext.h: Update for above.
  • Modules/webaudio/OfflineAudioContext.idl: Ditto.
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::offlineRender): Use channelData.

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::OscillatorNode): Updated for change to setType.
(WebCore::OscillatorNode::setType): Use ExceptionOr.
(WebCore::OscillatorNode::process): Use a reference.

  • Modules/webaudio/OscillatorNode.h: Update for above.
  • Modules/webaudio/OscillatorNode.idl: Ditto.
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::process): Use channelData.

  • bindings/js/JSDOMBinding.h: Added overloads of toJS to it can be used on

references to array buffers and array buffer views, not just pointers.

11:19 PM Changeset in webkit [207049] by Carlos Garcia Campos
  • 2 edits
    3 deletes in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r205590 - [GTK] Remove stale WebSoupRequestManager headers
https://bugs.webkit.org/show_bug.cgi?id=161691

Reviewed by Sergio Villar Senin.

WebSoupRequestManager, WebSoupRequestManagerProxy and WebSoupRequestManagerClient
classes were used to implement custom URI scheme support for Soup. This API and
the implementations of these classes were removed in r174584, but curiously the
headers went unnoticed. This patch removes them, as well as the
WebSoupRequestManagerProxy forwarding declaration in WKAPICastSoup.h.

  • UIProcess/API/C/soup/WKAPICastSoup.h:
  • UIProcess/soup/WebSoupRequestManagerClient.h: Removed.
  • UIProcess/soup/WebSoupRequestManagerProxy.h: Removed.

(WebKit::WebSoupRequestManagerProxy::registeredURISchemes): Deleted.

  • WebProcess/soup/WebSoupRequestManager.h: Removed.
11:12 PM Changeset in webkit [207048] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.14

Merge r205568 - [INTL] some valid language tags cause errors in Intl constructors
https://bugs.webkit.org/show_bug.cgi?id=161672

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2016-09-07
Reviewed by Mark Lam.

Source/JavaScriptCore:

Fix private use tag parsing to match spec, allowing single character parts.
https://www.rfc-editor.org/rfc/bcp/bcp47.txt

`
privateuse = "x" 1*("-" (1*8alphanum))
`

  • runtime/IntlObject.cpp:

(JSC::privateUseLangTag): Allow singleton parts in private use tag.

LayoutTests:

Add list of valid language tags that should not throw from test262.

  • js/intl-collator-expected.txt:
  • js/intl-datetimeformat-expected.txt:
  • js/intl-numberformat-expected.txt:
  • js/script-tests/intl-collator.js:
  • js/script-tests/intl-datetimeformat.js:
  • js/script-tests/intl-numberformat.js:
11:10 PM Changeset in webkit [207047] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r205566 - Make emitAllocateWithNonNullAllocator's sub32() disallow-scratch-friendly
https://bugs.webkit.org/show_bug.cgi?id=161706

Reviewed by Geoffrey Garen.

You can't sub32(Addr, Reg) on not-x86 without using a scratch register. So, on those CPUs, we
have to do something different.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

11:10 PM Changeset in webkit [207046] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Change HTTPHeaderValues from a struct to a namespace
https://bugs.webkit.org/show_bug.cgi?id=163203

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

No change of behavior.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::extract):

  • platform/network/HTTPHeaderValues.cpp:

(WebCore::HTTPHeaderValues::textPlainContentType):
(WebCore::HTTPHeaderValues::formURLEncodedContentType):
(WebCore::HTTPHeaderValues::TextPlainContentType): Deleted.
(WebCore::HTTPHeaderValues::FormURLEncodedContentType): Deleted.

  • platform/network/HTTPHeaderValues.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

11:08 PM Changeset in webkit [207045] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip imported/w3c/web-platform-tests for a while

Unreviewed EFL gardening.

Many imported/w3c/web-platform-tests have been failed, timeout, and crash.
So skip the tests until fixing all problems.

Additionally this patch removes duplciated tests.

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-10-10

  • platform/efl/TestExpectations:
11:06 PM Changeset in webkit [207044] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14

Merge r205565 - Fix handling of negative radius in HTMLAreaElement's coords when in circle state
https://bugs.webkit.org/show_bug.cgi?id=161690

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaseline existing test now that one more check is passing.

  • web-platform-tests/html/semantics/embedded-content/the-area-element/area-processing-expected.txt:

Source/WebCore:

Fix handling of negative radius in HTMLAreaElement's coords when in
circle state:

The radius must be non-negative as per the specification. However, our
code fails to check.

Firefox and Chrome both reject negative radius.

No new tests, rebaselined existing test.

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::getRegion):

11:00 PM Changeset in webkit [207043] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r205541 - Fix the ENABLE(WEBASSEMBLY) build on Linux
https://bugs.webkit.org/show_bug.cgi?id=161685

Unreviewed buildfix.

  • wasm/JSWASMModule.cpp:
10:28 PM Changeset in webkit [207042] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

NetworkSession: NetworkDataTask is leaked if download finishes in didReceiveResponse completion handler
https://bugs.webkit.org/show_bug.cgi?id=163204

Reviewed by Alex Christensen.

After the completion handler a reference of the NetworkDataTask is saved in m_downloadsAfterDestinationDecided.
If the download failed or was canceled DownloadManager::dataTaskBecameDownloadTask is never called and the data
task is kept in the download manager forever. This patch exposes NSURLSessionTask state property in
NetworkDataTask, so that the download manager can check the task state after the completion handler and return
early if the download finished or was cancelled.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::continueDecidePendingDownloadDestination):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::state):

9:43 PM Changeset in webkit [207041] by Chris Dumez
  • 20 edits
    2 adds in trunk

Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163254

Reviewed by Darin Adler.

Source/WebCore:

Update WheelEvent / MouseEvent to stop using legacy [ConstructorTemplate=Event]
and use a regular constructor instead, as in the specification:

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateDictionaryHeader):
Fix our broken dependency tracking when it comes to dictionaries.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):

  • dom/MouseEvent.h:
  • dom/MouseEvent.idl:
  • dom/MouseEventInit.h: Added.
  • dom/MouseEventInit.idl: Added.
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/MouseRelatedEvent.h:
  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::UIEventWithKeyState):

  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • dom/WheelEvent.h:
  • dom/WheelEvent.idl:

LayoutTests:

Update existing tests now that:

  • Exception messages are now slightly different in some cases.
  • We now throw when an invalid relatedTarget type is passed in the dictionary.
  • fast/events/constructors/mouse-event-constructor.html:
  • fast/events/constructors/wheel-event-constructor.html:
  • platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
  • platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:
9:33 PM Changeset in webkit [207040] by Chris Dumez
  • 11 edits
    2 adds in trunk

Add support for languagechange event
https://bugs.webkit.org/show_bug.cgi?id=163222

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:

Source/WebCore:

Add support for languagechange event:

Firefox and Chrome already support this.

Test: fast/dom/window-languagechange-event.html

  • dom/EventNames.h:
  • html/HTMLAttributeNames.in:
  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap):

  • page/DOMWindow.cpp:

(WebCore::languagesChangedCallback):
(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::languagesChanged):
(WebCore::DOMWindow::canShowModalDialog): Deleted.
(WebCore::DOMWindow::removeEventListener): Deleted.

  • page/DOMWindow.h:
  • page/WindowEventHandlers.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/window-languagechange-event-expected.txt: Added.
  • fast/dom/window-languagechange-event.html: Added.
8:39 PM Changeset in webkit [207039] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

B3->Air lowering should be able to emit complex leas on x86
https://bugs.webkit.org/show_bug.cgi?id=163234

Reviewed by Saam Barati.

This adds comprehensive support for emitting lea on x86.

When adding this, I found that it was useful to also finally add more reassociation. That
reduces the amount of patterns that the instruction selector has to deal with.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::lea32):
(JSC::MacroAssembler::lea64):
(JSC::MacroAssembler::lea): Deleted.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::commitInternal):
(JSC::B3::Air::LowerToAir::tryAppendLea):
(JSC::B3::Air::LowerToAir::lower):
(JSC::B3::Air::LowerToAir::createSelect): Deleted.

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.h:
  • b3/B3ValueInlines.h:

(JSC::B3::Value::isRepresentableAs):
(JSC::B3::Value::representableAs): Deleted.

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp: Lots of tests for lea and reassociation.
7:55 PM Changeset in webkit [207038] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Update GamepadEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163243

Reviewed by Darin Adler.

Update GamepadEvent to stop using legacy [ConstructorTemplate=Event]
and use a proper constructor as in the specification:

  • Modules/gamepad/GamepadEvent.cpp:

(WebCore::GamepadEvent::GamepadEvent):

  • Modules/gamepad/GamepadEvent.h:

(WebCore::GamepadEvent::create):
(WebCore::GamepadEvent::~GamepadEvent): Deleted.

  • Modules/gamepad/GamepadEvent.idl:
7:21 PM Changeset in webkit [207037] by Darin Adler
  • 12 edits in trunk/Source/WebCore

Move Fetch from legacy to new DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163195

Reviewed by Chris Dumez.

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::canWriteHeader): Use ExceptionOr.
(WebCore::FetchHeaders::append): Ditto.
(WebCore::FetchHeaders::remove): Ditto.
(WebCore::FetchHeaders::get): Ditto.
(WebCore::FetchHeaders::has): Ditto.
(WebCore::FetchHeaders::set): Ditto.
(WebCore::FetchHeaders::filterAndFill): Ditto.
(WebCore::FetchHeaders::Iterator::next): Got rid of unneeded code to
clear out m_keys after the last call to next, since it will be deleted
as soon as the iterator is deleted.

  • Modules/fetch/FetchHeaders.h: Use pragma once. Use ExceptionOr.
  • Modules/fetch/FetchHeaders.idl: Move to non-legacy exceptions.
  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::setBody): Use ExceptionOr.
(WebCore::FetchRequest::clone): Ditto.

  • Modules/fetch/FetchRequest.h: Use pragma once. Use ExceptionOr.
  • Modules/fetch/FetchRequest.idl: Move to non-legacy exceptions.
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::redirect): Use ExceptionOr.
(WebCore::FetchResponse::setStatus): Ditto.

  • Modules/fetch/FetchResponse.h: Use ExceptionOr.
  • Modules/fetch/FetchResponse.idl: Move to non-legacy exceptions.
  • bindings/js/JSDOMBinding.h: Added implementation of toJSNullableString.
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValue): Call toJSNullableString and toJSString for
functions that return ExceptionOr<String>.

5:45 PM Changeset in webkit [207036] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Change ArrayPrototype.cpp's putLength() and setLength() to take a VM& so that we can use vm.propertyNames.
https://bugs.webkit.org/show_bug.cgi?id=163260

Reviewed by Saam Barati.

In all cases where we call these, we already have the VM& anyway.

  • runtime/ArrayPrototype.cpp:

(JSC::putLength):
(JSC::setLength):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):

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

AX: Expose invalid status for input types with that information
https://bugs.webkit.org/show_bug.cgi?id=163252
<rdar://problem/28704409>

Reviewed by Chris Fleizach.

Source/WebCore:

For input types with invalid input value, we should expose the invalid
status to the assitive technology.

Test: accessibility/mac/invalid-status-for-input-types.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::invalidStatus):

LayoutTests:

  • accessibility/mac/invalid-status-for-input-types-expected.txt: Added.
  • accessibility/mac/invalid-status-for-input-types.html: Added.
4:59 PM Changeset in webkit [207034] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

Added override specifier to PluginViewBase::isPluginViewBase()
https://bugs.webkit.org/show_bug.cgi?id=163218

Reviewed by Alex Christensen.

No new tests needed.

  • plugins/PluginViewBase.h:
4:51 PM Changeset in webkit [207033] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Don't run SecurityOrigin's port through URLParser
https://bugs.webkit.org/show_bug.cgi?id=163253

Reviewed by Brady Eidson.

No change in behavior.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::maybeCreateFromDatabaseIdentifier):
(WebCore::SecurityOrigin::create):
We used to parse URLs like "file://:0/" which are valid when using URL::parse
but aren't valid when we start using the URLParser, which matches other browsers' failure
to parse URLs with a port but no host. There is no reason to write and parse the port.
Setting m_port directly accomplishes the same thing.

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

Marking two media/modern-media-controls tests as failing.
https://bugs.webkit.org/show_bug.cgi?id=163248

Unreviewed test gardening.

4:31 PM Changeset in webkit [207031] by Ryan Haddad
  • 5 edits in trunk/LayoutTests

TestExpectations cleanup for LayoutTests that no longer exist.

Unreviewed test gardening.

  • TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
4:02 PM Changeset in webkit [207030] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

<Error>: CGContextSetLineDash: invalid dash array: at least one element must be non-zero
https://bugs.webkit.org/show_bug.cgi?id=138555

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-10-10
Reviewed by Simon Fraser.

Ensure the dashArray has at least one non-zero element before calling
GraphicsContext::setLineDash(). Call GraphicsContext::setStrokeStyle()
instead, if the dashArray does not have one.

  • rendering/svg/SVGRenderSupport.cpp:

(WebCore::SVGRenderSupport::applyStrokeStyleToContext):

3:16 PM Changeset in webkit [207029] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests/imported/w3c

Add baseline for two tests imported with r206999.

Unreviewed test gardening.

  • web-platform-tests/touch-events/touch-retargeting-expected.txt: Added.
  • web-platform-tests/touch-events/touch-touchevent-constructor-expected.txt: Added.
3:10 PM Changeset in webkit [207028] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win][Direct2D] Correct Radial Graident Bug
https://bugs.webkit.org/show_bug.cgi?id=163241

Reviewed by Darin Adler.

Radial gradients were not working correctly under Direct2D because the
points and radius values used were incorrect. D2D wants a center point and
an offset, not a start and end point. It wants an X and Y radius (for an
ellipse), not a radius at the start point, and a radius at the end point.

Covered by existing fast/gradients/css-radial-gradients.html (and others).

  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled): Remove 'notImplemented' code path.

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient): Use correct input values to
the Radial Gradient constructor.
(WebCore::Gradient::fill): Generate a gradient if we have no active
one to use.

3:07 PM Changeset in webkit [207027] by jiewen_tan@apple.com
  • 43 edits
    9 moves in trunk/Source/WebCore

Rename CryptoAlgorithmParameters to CryptoAlgorithmParametersDeprecated
https://bugs.webkit.org/show_bug.cgi?id=163163
<rdar://problem/28681544>

Reviewed by Brent Fulgham.

Replace all uses of 'CryptoAlgorithmParameters' with 'CryptoAlgorithmParametersDeprecated' in preparation for a new CryptoAlgorithmParameters type.

No changes of behaviors. No new tests.

  • Modules/encryptedmedia/CDMSessionClearKey.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCryptoAlgorithmDictionary.cpp:
  • bindings/js/JSCryptoAlgorithmDictionary.h:
  • bindings/js/JSCryptoKeySerializationJWK.cpp:
  • bindings/js/JSCryptoKeySerializationJWK.h:
  • bindings/js/JSWebKitSubtleCryptoCustom.cpp:
  • crypto/CryptoAlgorithm.cpp:
  • crypto/CryptoAlgorithm.h:
  • crypto/CryptoAlgorithmParametersDeprecated.h: Renamed from Source/WebCore/crypto/CryptoAlgorithmParameters.h.
  • crypto/CryptoKeySerialization.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
  • crypto/algorithms/CryptoAlgorithmAES_KW.h:
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:
  • crypto/algorithms/CryptoAlgorithmHMAC.h:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
  • crypto/algorithms/CryptoAlgorithmSHA1.cpp:
  • crypto/algorithms/CryptoAlgorithmSHA1.h:
  • crypto/algorithms/CryptoAlgorithmSHA224.cpp:
  • crypto/algorithms/CryptoAlgorithmSHA224.h:
  • crypto/algorithms/CryptoAlgorithmSHA256.cpp:
  • crypto/algorithms/CryptoAlgorithmSHA256.h:
  • crypto/algorithms/CryptoAlgorithmSHA384.cpp:
  • crypto/algorithms/CryptoAlgorithmSHA384.h:
  • crypto/algorithms/CryptoAlgorithmSHA512.cpp:
  • crypto/algorithms/CryptoAlgorithmSHA512.h:
  • crypto/keys/CryptoKeySerializationRaw.cpp:
  • crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:
  • crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp:
  • crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:
  • crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:
  • crypto/keys/CryptoKeySerializationRaw.h:
  • crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
  • crypto/mac/CryptoAlgorithmHMACMac.cpp:
  • crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
  • crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
  • crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h.
  • crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmAesKeyGenParams.h.
  • crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmHmacKeyParams.h.
  • crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmHmacParams.h.
  • crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h.
  • crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h.
  • crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaOaepParams.h.
  • crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaParams.h.
2:50 PM Changeset in webkit [207026] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking tiled-drawing/scrolling/latched-div-with-scroll-snap.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=162505

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:33 PM Changeset in webkit [207025] by Darin Adler
  • 12 edits in trunk/Source

Move NotificationCenter from legacy to new DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163217

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::webkitNotifications): Pass reference to
document instead of pointer. Also use auto and early return.

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification): Move checks that can lead to
throwing an exception out of the constructor into the create function.
(WebCore::Notification::create): Changed to use ExceptionOr. Also moved
checks that can lead to throwing an exception here.
(WebCore::Notification::show): Update since NotificationController::client
now returns a reference.
(WebCore::Notification::permission): Ditto.
(WebCore::Notification::requestPermission): Ditto.

  • Modules/notifications/Notification.h: Updated for above changes.
  • Modules/notifications/NotificationCenter.cpp:

(WebCore::NotificationCenter::create): Take a reference to the script execution
context instead of a pointer.
(WebCore::NotificationCenter::NotificationCenter): Ditto.
(WebCore::NotificationCenter::createNotification): Use ExceptionOr.
(WebCore::NotificationCenter::requestPermission): Take an rvalue reference.

  • Modules/notifications/NotificationCenter.h: Use pragma once.

Marked the class final. Updated for changes above.

  • Modules/notifications/NotificationCenter.idl: Use non-legacy exceptions.
  • Modules/notifications/NotificationController.cpp:

(WebCore::NotificationController::NotificationController): Use a reference rather
than a pointer for m_client, since it is never null.
(WebCore::NotificationController::~NotificationController): Ditto.
(WebCore::NotificationController::clientFrom): Updated for the change above.

  • Modules/notifications/NotificationController.h: Updated for the change above.
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::webkitNotifications): Updated to
pass a reference for the script execution context. Also added FIXME about the
fact that the client is always null.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _notificationIDForTesting:]): Pass reference to page rather than pointer.

2:17 PM Changeset in webkit [207024] by commit-queue@webkit.org
  • 3 edits
    23 adds in trunk

[Modern Media Controls] Placards
https://bugs.webkit.org/show_bug.cgi?id=163110
<rdar://problem/28669342>

Patch by Antoine Quint <Antoine Quint> on 2016-10-10
Reviewed by Dean Jackson.

Source/WebCore:

Inline media controls need to display placards when the video is no longer playing inline,
such as when the video is playing fullscreen or via AirPlay. To that end, we introduce a
new Placard class and two subclasses for display during fullscreen or AirPlay playback.
Note that localization will be done in a later patch.

Tests: media/modern-media-controls/airplay-placard/airplay-placard.html

media/modern-media-controls/pip-placard/pip-placard.html
media/modern-media-controls/placard/placard.html

  • Modules/modern-media-controls/controls/airplay-placard.js:

(AirplayPlacard):

  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/pip-placard.js:

(PiPPlacard):

  • Modules/modern-media-controls/controls/placard.css:

(.placard):
(.placard .container):
(.placard .icon):
(.placard .title,):
(.placard .title):
(.placard .description):

  • Modules/modern-media-controls/controls/placard.js:

(Placard.):

LayoutTests:

Testing the properties of the new Placard class and its subclasses.

  • media/modern-media-controls/airplay-placard/airplay-placard-expected.txt: Added.
  • media/modern-media-controls/airplay-placard/airplay-placard.html: Added.
  • media/modern-media-controls/pip-placard/pip-placard-expected.txt: Added.
  • media/modern-media-controls/pip-placard/pip-placard.html: Added.
  • media/modern-media-controls/placard/placard-expected.txt: Added.
  • media/modern-media-controls/placard/placard.html: Added.
2:13 PM Changeset in webkit [207023] by mark.lam@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

Rename the StrictModeReadonlyPropertyWriteError string to ReadonlyPropertyWriteError.
https://bugs.webkit.org/show_bug.cgi?id=163239

Reviewed by Filip Pizlo.

This string is also used for reporting the same error in cases which have nothing
to do with strict mode.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/GetterSetter.cpp:

(JSC::callSetter):

  • runtime/JSArray.cpp:

(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::pop):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::put):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::put):
(JSC::JSModuleNamespaceObject::putByIndex):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::putInline):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTablePut):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/RegExpObject.h:

(JSC::RegExpObject::setLastIndex):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayEntry::put):

  • runtime/StringObject.cpp:

(JSC::StringObject::put):
(JSC::StringObject::putByIndex):

2:07 PM Changeset in webkit [207022] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/replaced/preferred-widths.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=116621

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:01 PM Changeset in webkit [207021] by Chris Dumez
  • 10 edits in trunk

Add support for Navigator.languages attribute
https://bugs.webkit.org/show_bug.cgi?id=163220

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt:

Source/WebCore:

Add support for Navigator.languages attribute:

Firefox and Chrome already support this.

Currently, we always return a single language for privacy reasons so
this API does not actually bring anything new besides interoperability
with other browsers and compliance with the HTML specification.

No new tests, rebaselined existing tests.

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::languages):

  • page/NavigatorBase.h:
  • page/NavigatorLanguage.idl:

LayoutTests:

Rebase existing test to reflect change.

  • fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
1:59 PM Changeset in webkit [207020] by Brent Fulgham
  • 6 edits in trunk/Source/WebCore

[Win][Direct2D] Implement dashed and dotted border line drawing
https://bugs.webkit.org/show_bug.cgi?id=163235

Reviewed by Alex Christensen.

Covered by existing fast/border tests.

  • platform/graphics/GraphicsContext.cpp: Use custom 'setPlatformStrokeStyle' for D2D.
  • platform/graphics/Path.cpp:

(WebCore::Path::length): Don't use default implementation for Direct2D.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextPlatformPrivate::brushWithColor): Initialize pointer to nullptr.
(WebCore::GraphicsContext::drawRect): Use proper stroke style.
(WebCore::GraphicsContextPlatformPrivate::setLineCap): Added.
(WebCore::GraphicsContextPlatformPrivate::setLineJoin): Added.
(WebCore::GraphicsContextPlatformPrivate::setStrokeStyle): Added.
(WebCore::GraphicsContextPlatformPrivate::setMiterLimit): Added.
(WebCore::GraphicsContextPlatformPrivate::setDashOffset): Added.
(WebCore::GraphicsContextPlatformPrivate::setPatternWidth): Added.
(WebCore::GraphicsContextPlatformPrivate::setPatternOffset): Added.
(WebCore::GraphicsContextPlatformPrivate::setStrokeThickness): Added.
(WebCore::GraphicsContextPlatformPrivate::setDashes): Added.
(WebCore::GraphicsContextPlatformPrivate::recomputeStrokeStyle): Added.
(WebCore::GraphicsContextPlatformPrivate::strokeStyle): Added.
(WebCore::GraphicsContext::drawLine): Use proper stroke style.
(WebCore::GraphicsContext::drawEllipse): Ditto.
(WebCore::GraphicsContext::drawPath): Ditto.
(WebCore::GraphicsContext::strokePath): Ditto.
(WebCore::GraphicsContext::setPlatformStrokeStyle): Added.
(WebCore::GraphicsContext::setMiterLimit): Tell D2D context about miter limit.
(WebCore::GraphicsContext::setLineCap): Ditto for line cap.
(WebCore::GraphicsContext::setLineDash): Ditto for dashes.
(WebCore::GraphicsContext::setLineJoin): Ditto for join style.
(WebCore::GraphicsContext::setPlatformStrokeThickness): Ditto for stroke thickness.
(WebCore::GraphicsContext::platformStrokeEllipse): Use proper stroke style.

  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:
  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::currentPoint): Zero-initialize a value.
(WebCore::Path::length): Added.

1:57 PM Changeset in webkit [207019] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Update ProgressEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163221

Reviewed by Darin Adler.

Update ProgressEvent to stop using legacy [ConstructorTemplate=Event]
and use a regular constructor as in the specification:

  • dom/ProgressEvent.cpp:

(WebCore::ProgressEvent::ProgressEvent):

  • dom/ProgressEvent.h:

(WebCore::ProgressEvent::create):

  • dom/ProgressEvent.idl:
1:52 PM Changeset in webkit [207018] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Address some review feedback from r206979 and r207010
https://bugs.webkit.org/show_bug.cgi?id=163236

Reviewed by Tim Horton.

In TypingCommand.h, some methods on TypingCommand should be marked as final to reflect the fact that they
override methods in CompositeEditCommand. Also, HTMLFormControlElement::dispatchFormControlInputEvent does not
need to specify HTMLElement::dispatchInputEvent() when calling dispatchInputEvent().

No new tests, since there is no behavior change.

  • editing/TypingCommand.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::dispatchFormControlInputEvent):

1:33 PM Changeset in webkit [207017] by sbarati@apple.com
  • 2 edits
    1 add in trunk

compileCheckStringIdent in the FTL is wrong
https://bugs.webkit.org/show_bug.cgi?id=163215

Reviewed by Mark Lam and Filip Pizlo.

lowStringIdent() returns the StringImpl pointer. The compileCheckStringIdent()
was treating its return value as the actual JSString. This is wrong.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent):

1:21 PM Changeset in webkit [207016] by Chris Dumez
  • 10 edits in trunk

Update MessageEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163187

Reviewed by Darin Adler.

Source/WebCore:

Update MessageEvent to stop using legacy [ConstructorTemplate=Event] and
use a regular constructor as in the specification:

No new tests, updated existing test.

  • bindings/js/JSDOMBinding.h:

(WebCore::toRefPtrNativeArray):

  • bindings/js/JSDOMConvert.h:

(WebCore::convertWrapperTypeSequence):
(WebCore::convertWrapperType): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):
(GenerateDictionaryImplementationContent):
(GetNativeType):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::trySerializeData):
(WebCore::MessageEvent::createForBindings): Deleted.
(WebCore::MessageEvent::initMessageEvent): Deleted.

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:

LayoutTests:

Rebaseline existing test now that:

  • Exception messages are sometimes a bit different
  • We properly use the default member value when input is an explicit undefined
  • We throw in more cases of bad input
  • fast/events/constructors/message-event-constructor-expected.txt:
  • fast/events/constructors/message-event-constructor.html:
1:14 PM Changeset in webkit [207015] by commit-queue@webkit.org
  • 6 edits
    23 copies
    75 adds in trunk

[Modern Media Controls] Buttons
https://bugs.webkit.org/show_bug.cgi?id=163109
<rdar://problem/28668954>

Patch by Antoine Quint <Antoine Quint> on 2016-10-10
Reviewed by Dean Jackson.

Source/WebCore:

We introduce specific IconButton subclasses for the various buttons we will be using
in media controls on macOS (inline and fullscreen) and iOS. One class, StartButton, is
a subclass of Button and not IconButton because we're only interested in having it display
an <img> element rather than use a mask and requires additional DOM structure.

Tests: media/modern-media-controls/airplay-button/airplay-button-on.html

media/modern-media-controls/airplay-button/airplay-button.html
media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html
media/modern-media-controls/forward-button/forward-button.html
media/modern-media-controls/fullscreen-button/fullscreen-button.html
media/modern-media-controls/mute-button/mute-button.html
media/modern-media-controls/pip-button/pip-button.html
media/modern-media-controls/play-pause-button/play-pause-button.html
media/modern-media-controls/rewind-button/rewind-button.html
media/modern-media-controls/skip-back-button/skip-back-button.html
media/modern-media-controls/start-button/start-button.html
media/modern-media-controls/tracks-button/tracks-button.html

  • Modules/modern-media-controls/controls/airplay-button.css:

(button.airplay.on):

  • Modules/modern-media-controls/controls/airplay-button.js:

(AirplayButton):
(AirplayButton.prototype.set on):

  • Modules/modern-media-controls/controls/aspect-ratio-button.js:

(AspectRatioButton):
(AspectRatioButton.prototype.get scalesToFill):
(AspectRatioButton.prototype.set scalesToFill):

  • Modules/modern-media-controls/controls/forward-button.js:

(ForwardButton):

  • Modules/modern-media-controls/controls/fullscreen-button.js:

(FullscreenButton):

  • Modules/modern-media-controls/controls/icon-button.js:
  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/controls/mute-button.js:

(MuteButton):
(MuteButton.prototype.get muted):
(MuteButton.prototype.set muted):

  • Modules/modern-media-controls/controls/pip-button.js:

(PiPButton):

  • Modules/modern-media-controls/controls/play-pause-button.js:

(PlayPauseButton):
(PlayPauseButton.prototype.get playing):
(PlayPauseButton.prototype.set playing):

  • Modules/modern-media-controls/controls/rewind-button.js:

(RewindButton):

  • Modules/modern-media-controls/controls/skip-back-button.js:

(SkipBackButton):

  • Modules/modern-media-controls/controls/start-button.js:

(StartButton):

  • Modules/modern-media-controls/controls/tracks-button.js:

(TracksButton):

LayoutTests:

Adding new tests for all new button types introduced, including any custom JS properties
and backing DOM structure that they may have, as well as checking which assets are loaded.

  • media/modern-media-controls/airplay-button/airplay-button-expected.txt: Added.
  • media/modern-media-controls/airplay-button/airplay-button-on-expected.txt: Added.
  • media/modern-media-controls/airplay-button/airplay-button-on.html: Added.
  • media/modern-media-controls/airplay-button/airplay-button.html: Added.
  • media/modern-media-controls/aspect-ratio-button/aspect-ratio-button-expected.txt: Added.
  • media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html: Added.
  • media/modern-media-controls/forward-button/forward-button-expected.txt: Added.
  • media/modern-media-controls/forward-button/forward-button.html: Added.
  • media/modern-media-controls/fullscreen-button/fullscreen-button-expected.txt: Added.
  • media/modern-media-controls/fullscreen-button/fullscreen-button.html: Added.
  • media/modern-media-controls/mute-button/mute-button-expected.txt: Added.
  • media/modern-media-controls/mute-button/mute-button.html: Added.
  • media/modern-media-controls/pip-button/pip-button-expected.txt: Added.
  • media/modern-media-controls/pip-button/pip-button.html: Added.
  • media/modern-media-controls/play-pause-button/play-pause-button-expected.txt: Added.
  • media/modern-media-controls/play-pause-button/play-pause-button.html: Added.
  • media/modern-media-controls/rewind-button/rewind-button-expected.txt: Added.
  • media/modern-media-controls/rewind-button/rewind-button.html: Added.
  • media/modern-media-controls/skip-back-button/skip-back-button-expected.txt: Added.
  • media/modern-media-controls/skip-back-button/skip-back-button.html: Added.
  • media/modern-media-controls/start-button/start-button-expected.txt: Added.
  • media/modern-media-controls/start-button/start-button.html: Added.
  • media/modern-media-controls/tracks-button/tracks-button-expected.txt: Added.
  • media/modern-media-controls/tracks-button/tracks-button.html: Added.
  • platform/ios-simulator/media/modern-media-controls/airplay-button/airplay-button-on-expected.txt: Added.
1:11 PM Changeset in webkit [207014] by n_wang@apple.com
  • 5 edits in trunk

AX: Update AXPlaceHolder algorithm
https://bugs.webkit.org/show_bug.cgi?id=163229

Reviewed by Chris Fleizach.

Source/WebCore:

From https://w3c.github.io/html-aam/
When the placeholder and aria-placeholder attributes are both present, we
should expose the value of the placeholder attribute. Updated the algorithm
for that.

Changes are covered in the modified test.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::placeholderValue):

LayoutTests:

  • accessibility/placeholder-expected.txt:
  • accessibility/placeholder.html:
12:57 PM Changeset in webkit [207013] by Yusuke Suzuki
  • 22 edits
    2 copies
    7 adds in trunk

[DOMJIT] Implement Node accessors in DOMJIT
https://bugs.webkit.org/show_bug.cgi?id=163005

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Add some helper methods and offsetOfXXX for JSC::Weak since it is used
for DOM wrapper caching.

And make DOMJIT::Patchpoint in FTL closer to one in DFG. We add resultConstraint
to avoid the situation that the same register is allocated to child and result.

We also extend DOMJIT::Patchpoint to tell useTagTypeNumberRegister / useTagMaskRegister.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • domjit/DOMJITSlowPathCalls.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckDOM):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):

  • heap/WeakImpl.h:

(JSC::WeakImpl::offsetOfJSValue):
(JSC::WeakImpl::offsetOfWeakHandleOwner):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::boxCell):
(JSC::AssemblyHelpers::boxInt32): Deleted.

  • jit/JITOperations.h:

Source/WebCore:

This patch implements DOMJIT accessors in WebCore. We plan to offer 2 things in DOMJIT.

  1. Hand written DOM inlining.

We inject DOMJIT::Patchpoint compiler into JSC. And JSC uses this to inline DOM operation,
and drop type checks. Since the operation is fully inlined, potentially it has large
performance boost. Note that CSS Selector JIT compiler already does the similar things:
accessing parentNode etc. directly by using offsets.

  1. Exposing signature information.

We will offer function type signature by some representation and pass it to JSC.
JSC will use to drop type checks. Since IDL code generator already knows this,
we can automatically generate such a information. Since we don't perform any inlining,
the performance boost may be limited. But it's worth doing.

This patch implements the first one, hand written DOM inlining facility. We add a new IDL attribute,
"DOMJIT". This means that "This readonly attribute have a DOMJIT patchpoint compiler".
We annotate several accessors at first. "firstChild", "lastChild", "nextSibling", "previousSibling",
and "parentNode". And we implement DOMJIT::Patchpoint for that in JSNodeDOMJIT.cpp.

This patchpoint will be integrated into JSC's DFG and FTL. And these tiers can drop type checks and
inline the entire code of these accessors. JSC compiler still does not know much about DOM. And WebCore
does not know much about each tier of JSC. WebCore just offers the generic patchpoints and they are
used in both DFG and FTL tiers. The layer separation is still kept.

While very small microbenchmark[1] shows performance benefit, still we cannot improve DOM
benchmarks due to the lack of following implementations. Once the following implementations
are implemented, we will get performance boost.

  1. Super polymorphic sites.

This inlining is super effective if we run some microbenchmarks. However, Dromaeo does not
show so much performance benefit. This is because Dromaeo's dom-traverse.html is super
polymorphic call site where JSC gives up optimization. For example, in the following
dromaeo's benchmark, we can see so various DOM nodes at the cur.firstChild site, like,
HTMLDivElement, HTMLAnchorElement, Text, Comment etc. JSC gives up optimization since we
encounter so many Structures. This should be optimized since they share the large part of
prototype-chain and they hit the exactly same CustomGetter, Node.prototype.firstChild.
We will handle this and when we optimize it, this DOMJIT works well on Dromaeo.

test( "firstChild", function(){

var nodes = document.body.childNodes, nl = nodes.length;

for ( var i = 0; i < num; i++ ) {

for ( var j = 0; j < nl; j++ ) {

var cur = nodes[j];
while ( cur )

cur = cur.firstChild;

ret = cur;

}

}

});

  1. Emit code in IC.

Currently, we only optimize DOMJIT accessors in DFG and FTL. However, we should leverage
this DOMJIT::Patchpoint to emit inlined code even in Inline Caching (IC). We will emit
CheckDOM's code for IC's guard phase, and emit CallDOM's code for IC's get phase. This
offers performance benefit even if we live in baseline JIT code. And this should be easy.

[1]: With the following one, we can see 3x improvement (26ms v.s. 80ms).

var element = document.getElementsByTagName('div')[3];
var before = Date.now();
for (var i = 0; i < 1e7; ++i)

element.firstChild;

console.log(Date.now() - before);

  • CMakeLists.txt:
  • ForwardingHeaders/domjit/DOMJITGetterSetter.h:
  • ForwardingHeaders/domjit/DOMJITPatchpoint.h: Copied from Source/JavaScriptCore/domjit/DOMJITSlowPathCalls.h.
  • ForwardingHeaders/domjit/DOMJITPatchpointParams.h: Copied from Source/JavaScriptCore/domjit/DOMJITSlowPathCalls.h.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWrapper.h:

(WebCore::JSDOMWrapper::offsetOfWrapped):
(WebCore::JSDOMWrapper::wrapped): Deleted.

  • bindings/js/ScriptWrappable.h:

(WebCore::ScriptWrappable::offsetOfWrapper):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSCAttributesForAttribute):
(GenerateHeader):
(GeneratePropertiesHashTable):
(GenerateImplementation):
(GenerateHashTableValueArray):

  • bindings/scripts/IDLAttributes.txt:
  • dom/ContainerNode.h:

(WebCore::ContainerNode::lastChildMemoryOffset):
(WebCore::ContainerNode::lastChild): Deleted.

  • dom/Node.h:

(WebCore::Node::flagIsContainer):
(WebCore::Node::flagIsText): Deleted.

  • dom/Node.idl:
  • domjit/DOMJITHelpers.h: Added.

(WebCore::DOMJITHelpers::branchIfNotWorldIsNormal):
(WebCore::DOMJITHelpers::branchIfNotWeakIsLive):
(WebCore::DOMJITHelpers::tryLookUpWrapperCache):
(WebCore::DOMJITHelpers::toWrapper):
(WebCore::DOMJITHelpers::branchIfDOMWrapper):
(WebCore::DOMJITHelpers::branchIfNotDOMWrapper):
(WebCore::DOMJITHelpers::branchIfNode):
(WebCore::DOMJITHelpers::branchIfNotNode):
(WebCore::DOMJITHelpers::branchIfElement):
(WebCore::DOMJITHelpers::branchIfNotElement):
(WebCore::DOMJITHelpers::branchIfDocumentWrapper):
(WebCore::DOMJITHelpers::branchIfNotDocumentWrapper):

  • domjit/JSNodeDOMJIT.cpp: Added.

(WebCore::toWrapperSlow):
(WebCore::createCallDOMForOffsetAccess):
(WebCore::checkNode):
(WebCore::NodeFirstChildDOMJIT::checkDOM):
(WebCore::NodeFirstChildDOMJIT::callDOM):
(WebCore::NodeLastChildDOMJIT::checkDOM):
(WebCore::NodeLastChildDOMJIT::callDOM):
(WebCore::NodeNextSiblingDOMJIT::checkDOM):
(WebCore::NodeNextSiblingDOMJIT::callDOM):
(WebCore::NodePreviousSiblingDOMJIT::checkDOM):
(WebCore::NodePreviousSiblingDOMJIT::callDOM):
(WebCore::NodeParentNodeDOMJIT::checkDOM):
(WebCore::NodeParentNodeDOMJIT::callDOM):

Source/WTF:

Add CAST_OFFSET. It is not necessary for JSCell thingy
since we don't use virtual member functions. However, it
is not true for WebCore DOM wrapped objects.

  • wtf/StdLibExtras.h:

LayoutTests:

  • js/dom/domjit-accessor-monomorphic-expected.txt: Added.
  • js/dom/domjit-accessor-monomorphic.html: Added.
  • js/dom/domjit-accessor-polymorphic-expected.txt: Added.
  • js/dom/domjit-accessor-polymorphic.html: Added.
12:42 PM Changeset in webkit [207012] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebKit2

Added final specifier to WebInspectorServer and to its overridden methods
https://bugs.webkit.org/show_bug.cgi?id=163228

Reviewed by Darin Adler.

  • UIProcess/InspectorServer/WebInspectorServer.h:
11:56 AM Changeset in webkit [207011] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/controls/airplay-picker.html as flaky on ElCapitan+.
https://bugs.webkit.org/show_bug.cgi?id=163231

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:30 AM Changeset in webkit [207010] by Wenson Hsieh
  • 25 edits
    4 adds in trunk

Support InputEvent.data for the new InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163113
<rdar://problem/28681935>

Reviewed by Darin Adler.

Source/WebCore:

Introduces InputEvent.data, a string attribute that, if non-null, indicates the text to be inserted by an input
event. For text areas and text inputs, the 'insertText', 'insertFromPaste', 'insertFromDrop', and
'insertReplacementText' input types should cause subsequent input and beforeinput events to have non-null
data. However, for contenteditable areas, only 'insertText' leads to having data in resulting InputEvents.

To implement this, we introduce a new virtual method, CompositeEditCommand::inputEventData, which gives
composite editing commands the chance to vend a data string for input events they might fire (by default, this
is null).

Tests: fast/events/input-events-paste-data.html

fast/events/input-events-typing-data.html

  • dom/InputEvent.cpp:

(WebCore::InputEvent::InputEvent):

  • dom/InputEvent.h:
  • dom/InputEvent.idl:

Currently, our InputEventInit struct is wrong. According to the UI-Events spec at www.w3.org/TR/uievents/, the
init struct for an InputEvent should contain a data string (added in this patch) as well as an isComposing flag
(to be added in a future patch along with composition support). While adding support for the data attribute, we
tweak the InputEvent IDL and headers slightly to adjust for this.

  • dom/Node.cpp:

(WebCore::Node::dispatchInputEvent):

  • dom/Node.h:
  • editing/CompositeEditCommand.h:

(WebCore::CompositeEditCommand::inputEventData):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::isEditingTextAreaOrTextInput):

  • editing/EditCommand.h:
  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::dispatchInputEvents):
(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::computeAndSetTypingStyle):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::inputEventData):

  • editing/ReplaceRangeWithTextCommand.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::inputEventData):

  • editing/ReplaceSelectionCommand.h:
  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::inputEventData):

  • editing/SpellingCorrectionCommand.h:
  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::inputEventData):
(WebCore::TypingCommand::willAddTypingToOpenCommand):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):

  • editing/TypingCommand.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::dispatchFormControlInputEvent):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setEditingValue):
(WebCore::HTMLInputElement::setValueFromRenderer):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::dispatchChangeEventForMenuList):

LayoutTests:

Adds 2 new layout tests verifying the data attribute of beforeinput and input events when typing, pasting,
and selecting candidate replacements in plain text and contenteditable areas.

Also tweaks an existing test to ensure that data is an attribute of an InputEvent.

  • fast/events/input-events-fired-when-typing-expected.txt:
  • fast/events/input-events-fired-when-typing.html:
  • fast/events/input-events-paste-data-expected.txt: Added.
  • fast/events/input-events-paste-data.html: Added.
  • fast/events/input-events-typing-data-expected.txt: Added.
  • fast/events/input-events-typing-data.html: Added.
  • platform/ios-simulator/TestExpectations:
11:29 AM Changeset in webkit [207009] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

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

Making EWS flaky (Requested by bfulgham_ on #webkit).

Reverted changeset:

"[CMake] CMake does not support the dep files for implicit
dependency"
https://bugs.webkit.org/show_bug.cgi?id=161433
http://trac.webkit.org/changeset/206972

10:42 AM Changeset in webkit [207008] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/abort-requests-cancelled* tests as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=156070

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:25 AM Changeset in webkit [207007] by Darin Adler
  • 8 edits in trunk/Source/WebCore

Move media source from legacy to new DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163201

Reviewed by Chris Dumez.

  • Modules/mediasource/MediaSource.cpp: Removed unneeded includes.

(WebCore::MediaSource::create): Use auto.
(WebCore::MediaSource::MediaSource): Initialize m_mediaElement in class definition.
(WebCore::MediaSource::setLiveSeekableRange): Use ExceptionOr.
(WebCore::MediaSource::clearLiveSeekableRange): Ditto.
(WebCore::MediaSource::setDuration): Ditto.
(WebCore::MediaSource::setDurationInternal): Ditto.
(WebCore::MediaSource::endOfStream): Ditto.
(WebCore::MediaSource::streamEndedWithError): Use bufferedInternal.
(WebCore::MediaSource::addSourceBuffer): Use ExceptionOr.
(WebCore::MediaSource::removeSourceBuffer): Ditto.
(WebCore::MediaSource::detachFromElement): Use removeSourceBuffer
without IGNORE_EXCEPTION since that is now the default behavior.
(WebCore::MediaSource::activeRanges): Use bufferedInternal.
(WebCore::MediaSource::createSourceBufferPrivate): Use ExceptionOr.

  • Modules/mediasource/MediaSource.h: Removed unneeded includes.

Made more things private and also private rather than protected.

  • Modules/mediasource/MediaSource.idl: Use non-legacy exceptions.
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::buffered): Use ExceptionOr.
(WebCore::SourceBuffer::setTimestampOffset): Ditto.
(WebCore::SourceBuffer::setAppendWindowStart): Ditto.
(WebCore::SourceBuffer::setAppendWindowEnd): Ditto.
(WebCore::SourceBuffer::appendBuffer): Ditto.
(WebCore::SourceBuffer::abort): Ditto.
(WebCore::SourceBuffer::remove): Ditto.
(WebCore::SourceBuffer::appendBufferInternal): Ditto.
(WebCore::SourceBuffer::setMode): Ditto.

  • Modules/mediasource/SourceBuffer.h: Removed unneeded includes.

Updated for above changes. Made more things private.

  • Modules/mediasource/SourceBuffer.idl: Use non-legacy exceptions.
  • platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h:

Added now-needed include of MediaSourcePrivate.h.

10:23 AM Changeset in webkit [207006] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Revealed line not highlighted in TextEditor while debugger paused
https://bugs.webkit.org/show_bug.cgi?id=163197

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
Avoid highlighting the execution line while debugging, but allow
other lines to be highlighted.

10:17 AM Changeset in webkit [207005] by jer.noble@apple.com
  • 6 edits in trunk

Address flaky airplay-* LayouTests
https://bugs.webkit.org/show_bug.cgi?id=163044

Reviewed by Brent Fulgham.

Source/WebCore:

Two separate problems conspired to make airplay tests a bit flaky:

For one, when the HTMLMediaElement clears its MediaPlayer, it won't necessarily notify
clients that it has stopped playing to a wireless target. The WebMediaSessionManager may
eventually cause this value to reset, but it's asynchronous, and may fire after the next
test starts. Reset this state explicitly.

For two, the state of the mock playback target picker was not being reset between test
invocations.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::clearMediaPlayer):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

LayoutTests:

  • media/airplay-autoplay.html:
  • platform/mac/TestExpectations:
10:12 AM Changeset in webkit [207004] by fpizlo@apple.com
  • 16 edits
    2 deletes in trunk/Source/JavaScriptCore

Air should expose API for pinning registers
https://bugs.webkit.org/show_bug.cgi?id=163175

Reviewed by Keith Miller.

You can now call Procedure::pinRegister(), or Code::pinRegister(), and it will make this
register behave as follows:

  • B3 and Air will emit no code that modifies the value in this register, except if that happens via a Patchpoint or stackmap constraint (i.e. the user explicitly asked for it).
  • B3 and Air will allow others to modify the register. For example, if the register is not callee-save, then the compiler knows that the register's value will be trashed by any C-style call.
  • Air will be happy to emit code that reads from this register, including coalescing tmps with it, so longer as there is no interference (i.e. no chance of the register's value changing). For example, if we went back to having pinned tag registers, we would tell B3 to use them by (1) excluding them from any clobber set (easy, since they're callee save) and (2) emitting ArgumentReg to grab their value. There's a test that does this.


This is accomplished by taking regsInPriorityOrder() and making it a method of Code. Air
already used this API when choosing registers in register allocation. Code now also vends a
mutableRegs() set, which is derived from regsInPriorityOrder(), that can quickly tell you if
a register can be mutated. Doing it this way means that most of this is a purely mechanical
change. The calls to mutableRegs() are the places where we had to change logic:

  • The register allocators needs to know that coalescing with a precolored pinned tmp is free.
  • The callee-save handler needs to know that we're not supposed to save/restore pinned registers.


Note that in this scheme, pinned registers are simply registers that do not appear in
regsInPriorityOrder(). This means, for example, that we will now say that FP is pinned. So,
this means that you can also pin registers by calling setRegsInPriorityOrder() and passing a
vector that excludes some registers. More generally, this means that clients can now tweak
the register allocator's register preferences, since the ordering in that list reflects the
order in which the allocator will try registers.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::pinRegister):

  • b3/B3Procedure.h:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::Code):
(JSC::B3::Air::Code::setRegsInPriorityOrder):
(JSC::B3::Air::Code::pinRegister):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::regsInPriorityOrder):
(JSC::B3::Air::Code::mutableRegs):
(JSC::B3::Air::Code::isPinned):
(JSC::B3::Air::Code::regsInPriorityOrderImpl):
(JSC::B3::Air::Code::proc): Deleted.

  • b3/air/AirEmitShuffle.cpp:

(JSC::B3::Air::emitShuffle):

  • b3/air/AirEmitShuffle.h:
  • b3/air/AirHandleCalleeSaves.cpp:

(JSC::B3::Air::handleCalleeSaves):

  • b3/air/AirIteratedRegisterCoalescing.cpp:
  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirRegisterPriority.cpp: Removed.
  • b3/air/AirRegisterPriority.h: Removed.
  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/air/testair.cpp:

(JSC::B3::Air::testShuffleBroadcastAllRegs):
(JSC::B3::Air::testShuffleShiftAllRegs):
(JSC::B3::Air::testShuffleRotateAllRegs):
(JSC::B3::Air::testShuffleShiftMemoryAllRegs):
(JSC::B3::Air::testShuffleShiftMemoryAllRegs64):
(JSC::B3::Air::testShuffleShiftMemoryAllRegsMixedWidth):
(JSC::B3::Air::testShuffleRotateMemoryAllRegs64):
(JSC::B3::Air::testShuffleRotateMemoryAllRegsMixedWidth):

  • b3/testb3.cpp:

(JSC::B3::testPinRegisters):
(JSC::B3::run):

  • jit/RegisterSet.h:
10:11 AM Changeset in webkit [207003] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Correct typo in comment (patining -> painting).

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::centerLineAndCutOffCorners):

10:02 AM Changeset in webkit [207002] by Brent Fulgham
  • 7 edits in trunk/Source/WebCore

Reduce code duplication between CG, Cairo, and Direct2D
https://bugs.webkit.org/show_bug.cgi?id=163157

Reviewed by Darin Adler.

Move a number of routines that have been copied-and-pasted to different
platform files into the main GraphicsContext.cpp file.

No new tests because there is no change in behavior.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::dashedLineCornerWidthForStrokeWidth): Added.
(WebCore::GraphicsContext::dashedLinePatternWidthForStrokeWidth): Added.
(WebCore::GraphicsContext::dashedLinePatternOffsetForPatternAndStrokeWidth): Added.
(WebCore::GraphicsContext::centerLineAndCutOffCorners): Added.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLine): Call new helper function.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLine): Ditto.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::drawLine): Ditto.

10:00 AM Changeset in webkit [207001] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/onabort-response-getters.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=162647

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
9:45 AM Changeset in webkit [207000] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

B3 should know about mutable pinned registers
https://bugs.webkit.org/show_bug.cgi?id=163172

Reviewed by Keith Miller.

If we have mutable pinned registers then we need to know which operations mutate them. At
first I considered making this into a heap range thing, but I think that this would be very
confusing. Also, in the future, we might want to make Effects track register sets of
clobbered registers (see bug 163173).

  • b3/B3Effects.cpp:

(JSC::B3::Effects::interferes):
(JSC::B3::Effects::operator==):
(JSC::B3::Effects::dump):

  • b3/B3Effects.h:

(JSC::B3::Effects::forCall):
(JSC::B3::Effects::mustExecute):

9:23 AM Changeset in webkit [206999] by commit-queue@webkit.org
  • 406 edits
    15 copies
    3 moves
    109 adds
    2 deletes in trunk/LayoutTests

Sync web-platform-tests up to revision 33f4da1
https://bugs.webkit.org/show_bug.cgi?id=163205

Patch by Youenn Fablet <youennf@gmail.com> on 2016-10-10
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/resource-files.json:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/IndexedDB/OWNERS: Added.
  • web-platform-tests/IndexedDB/README.md: Added.
  • web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html:
  • web-platform-tests/IndexedDB/close-in-upgradeneeded.html:
  • web-platform-tests/IndexedDB/cursor-overloads.htm:
  • web-platform-tests/IndexedDB/idb_binary_key_conversion-expected.txt: Added.
  • web-platform-tests/IndexedDB/idb_binary_key_conversion.htm: Added.
  • web-platform-tests/IndexedDB/idb_webworkers.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-invalid.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance.htm:
  • web-platform-tests/IndexedDB/idbcursor-continue.htm:
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm: Added.
  • web-platform-tests/IndexedDB/idbcursor-direction-index-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-index.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction.htm:
  • web-platform-tests/IndexedDB/idbcursor-key.htm:
  • web-platform-tests/IndexedDB/idbcursor-primarykey.htm:
  • web-platform-tests/IndexedDB/idbcursor-reused.htm:
  • web-platform-tests/IndexedDB/idbcursor-source.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index2.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index3.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index5.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index6.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index7.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index8.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_index9.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_objectstore3.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_objectstore4.htm:
  • web-platform-tests/IndexedDB/idbcursor_advance_objectstore5.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index2.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index3.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index4.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index5.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index6.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index7.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_index8.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_invalid.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore3.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore4.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore5.htm:
  • web-platform-tests/IndexedDB/idbcursor_continue_objectstore6.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_index.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_index2.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_index3.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_index4.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_index5.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_objectstore3.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_objectstore4.htm:
  • web-platform-tests/IndexedDB/idbcursor_delete_objectstore5.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_index.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_index2.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index2.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index3.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index4.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index5.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index6.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index7.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_index8-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbcursor_update_index8.htm: Added.
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore3.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore4.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore5.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore6.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore7.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore8.htm:
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore9-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbcursor_update_objectstore9.htm: Added.
  • web-platform-tests/IndexedDB/idbdatabase_close.htm:
  • web-platform-tests/IndexedDB/idbdatabase_close2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore-createIndex-emptyname.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore11.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore3.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore4.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore5.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore6.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore7.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore8-parameters.htm:
  • web-platform-tests/IndexedDB/idbdatabase_createObjectStore9-invalidparameters.htm:
  • web-platform-tests/IndexedDB/idbdatabase_deleteObjectStore.htm:
  • web-platform-tests/IndexedDB/idbdatabase_deleteObjectStore2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_deleteObjectStore3.htm:
  • web-platform-tests/IndexedDB/idbdatabase_deleteObjectStore4-not_reused.htm:
  • web-platform-tests/IndexedDB/idbdatabase_transaction.htm:
  • web-platform-tests/IndexedDB/idbdatabase_transaction2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_transaction3.htm:
  • web-platform-tests/IndexedDB/idbdatabase_transaction4.htm:
  • web-platform-tests/IndexedDB/idbdatabase_transaction5.htm:
  • web-platform-tests/IndexedDB/idbfactory_cmp.htm:
  • web-platform-tests/IndexedDB/idbfactory_cmp2.htm:
  • web-platform-tests/IndexedDB/idbfactory_cmp3-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbfactory_cmp3.htm: Added.
  • web-platform-tests/IndexedDB/idbfactory_cmp4-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbfactory_cmp4.htm: Added.
  • web-platform-tests/IndexedDB/idbfactory_deleteDatabase.htm:
  • web-platform-tests/IndexedDB/idbfactory_deleteDatabase2.htm:
  • web-platform-tests/IndexedDB/idbfactory_deleteDatabase3.htm:
  • web-platform-tests/IndexedDB/idbfactory_deleteDatabase4.htm:
  • web-platform-tests/IndexedDB/idbfactory_open.htm:
  • web-platform-tests/IndexedDB/idbfactory_open10.htm:
  • web-platform-tests/IndexedDB/idbfactory_open11.htm:
  • web-platform-tests/IndexedDB/idbfactory_open12.htm:
  • web-platform-tests/IndexedDB/idbfactory_open2.htm:
  • web-platform-tests/IndexedDB/idbfactory_open3.htm:
  • web-platform-tests/IndexedDB/idbfactory_open4.htm:
  • web-platform-tests/IndexedDB/idbfactory_open5.htm:
  • web-platform-tests/IndexedDB/idbfactory_open6.htm:
  • web-platform-tests/IndexedDB/idbfactory_open7.htm:
  • web-platform-tests/IndexedDB/idbfactory_open8.htm:
  • web-platform-tests/IndexedDB/idbfactory_open9.htm:
  • web-platform-tests/IndexedDB/idbindex-multientry-arraykeypath.htm:
  • web-platform-tests/IndexedDB/idbindex-multientry-big.htm:
  • web-platform-tests/IndexedDB/idbindex-multientry.htm:
  • web-platform-tests/IndexedDB/idbindex-rename-abort-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex-rename-abort.html: Added.
  • web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex-rename-errors.html: Added.
  • web-platform-tests/IndexedDB/idbindex-rename-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex-rename.html: Added.
  • web-platform-tests/IndexedDB/idbindex_count.htm:
  • web-platform-tests/IndexedDB/idbindex_count2.htm:
  • web-platform-tests/IndexedDB/idbindex_count3.htm:
  • web-platform-tests/IndexedDB/idbindex_count4.htm:
  • web-platform-tests/IndexedDB/idbindex_get.htm:
  • web-platform-tests/IndexedDB/idbindex_get2.htm:
  • web-platform-tests/IndexedDB/idbindex_get3.htm:
  • web-platform-tests/IndexedDB/idbindex_get4.htm:
  • web-platform-tests/IndexedDB/idbindex_get5.htm:
  • web-platform-tests/IndexedDB/idbindex_get6.htm:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7.htm:
  • web-platform-tests/IndexedDB/idbindex_get8-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get7-expected.txt.
  • web-platform-tests/IndexedDB/idbindex_get8.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_get7.htm.
  • web-platform-tests/IndexedDB/idbindex_getAll-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex_getAll.html: Added.
  • web-platform-tests/IndexedDB/idbindex_getAllKeys-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbindex_getAllKeys.html: Added.
  • web-platform-tests/IndexedDB/idbindex_getKey.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey2.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey3.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey4.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey5.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey6.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7.htm:
  • web-platform-tests/IndexedDB/idbindex_getKey8-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt.
  • web-platform-tests/IndexedDB/idbindex_getKey8.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_getKey7.htm.
  • web-platform-tests/IndexedDB/idbindex_indexNames.htm:
  • web-platform-tests/IndexedDB/idbindex_openCursor.htm:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2.htm:
  • web-platform-tests/IndexedDB/idbindex_openCursor3-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt.
  • web-platform-tests/IndexedDB/idbindex_openCursor3.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openCursor2.htm.
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor.htm:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor2.htm:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3.htm:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor4-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt.
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor4.htm: Copied from LayoutTests/imported/w3c/web-platform-tests/IndexedDB/idbindex_openKeyCursor3.htm.
  • web-platform-tests/IndexedDB/idbkeyrange-includes-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbkeyrange-includes.htm: Added.
  • web-platform-tests/IndexedDB/idbkeyrange.htm:
  • web-platform-tests/IndexedDB/idbkeyrange_incorrect.htm:
  • web-platform-tests/IndexedDB/idbobjectstore-rename-abort-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-rename-abort.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-rename-errors-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-rename-errors.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-rename-store-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore-rename-store.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_add.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add10.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add11.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add12.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add13.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add14.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add15.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add16.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add5.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add6.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add7.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add8.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_add9.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_clear.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_clear2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_clear3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_clear4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_count.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_count2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_count3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_count4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex10.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex11.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex12.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex13.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex14-exception_order-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex14-exception_order.htm: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex3-usable-right-away.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex4-deleteIndex-event_order.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex5-emptykeypath.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex6-event_order.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex7-event_order.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex8-valid_keys.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_createIndex9-emptyname.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete5.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete6.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_delete7.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_deleteIndex.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_deleted.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get5.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get6.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_get7.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_getAll-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_getAll.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_getAllKeys-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_getAllKeys.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_index.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_openCursor.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_openCursor_invalid.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_put.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put10.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put11.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put12.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put13.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put14.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put15.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put16.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put2.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put3.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put4.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put5.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put6.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put7.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put8.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_put9.htm:
  • web-platform-tests/IndexedDB/idbtransaction-oncomplete.htm:
  • web-platform-tests/IndexedDB/idbtransaction.htm:
  • web-platform-tests/IndexedDB/idbtransaction_abort.htm:
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames-expected.txt: Added.
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames.html: Added.
  • web-platform-tests/IndexedDB/idbversionchangeevent.htm:
  • web-platform-tests/IndexedDB/index_sort_order.htm:
  • web-platform-tests/IndexedDB/interfaces.html:
  • web-platform-tests/IndexedDB/interfaces.idl:
  • web-platform-tests/IndexedDB/interfaces.worker.js:

(request.onload):

  • web-platform-tests/IndexedDB/key_invalid.htm:
  • web-platform-tests/IndexedDB/key_valid.html:
  • web-platform-tests/IndexedDB/keygenerator-constrainterror.htm:
  • web-platform-tests/IndexedDB/keygenerator-overflow.htm:
  • web-platform-tests/IndexedDB/keygenerator.htm:
  • web-platform-tests/IndexedDB/keyorder.htm:
  • web-platform-tests/IndexedDB/keypath.htm:
  • web-platform-tests/IndexedDB/keypath_invalid.htm:
  • web-platform-tests/IndexedDB/keypath_maxsize.htm:
  • web-platform-tests/IndexedDB/list_ordering.htm:
  • web-platform-tests/IndexedDB/objectstore_keyorder.htm:
  • web-platform-tests/IndexedDB/request_bubble-and-capture.htm:
  • web-platform-tests/IndexedDB/string-list-ordering.htm:
  • web-platform-tests/IndexedDB/support-promises.js: Added.

(const.databaseName):
(const.requestWatcher):
(const.migrateDatabase):
(const.createDatabase):
(const.openDatabase):
(const.createBooksStore):
(const.createNotBooksStore):
(const.checkStoreIndexes):
(const.checkStoreGenerator):
(const.checkStoreContents):
(const.checkAuthorIndexContents):
(const.checkTitleIndexContents):

  • web-platform-tests/IndexedDB/support.js:

(indexeddb_test):
(add_completion_callback): Deleted.
(fail): Deleted.

  • web-platform-tests/IndexedDB/transaction-abort-generator-revert-expected.txt: Added.
  • web-platform-tests/IndexedDB/transaction-abort-generator-revert.html: Added.
  • web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert-expected.txt: Added.
  • web-platform-tests/IndexedDB/transaction-abort-index-metadata-revert.html: Added.
  • web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert-expected.txt: Added.
  • web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert.html: Added.
  • web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert-expected.txt: Added.
  • web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert.html: Added.
  • web-platform-tests/IndexedDB/transaction-create_in_versionchange.htm:
  • web-platform-tests/IndexedDB/transaction-lifetime-blocked.htm:
  • web-platform-tests/IndexedDB/transaction-lifetime-empty-expected.txt: Added.
  • web-platform-tests/IndexedDB/transaction-lifetime-empty.html: Added.
  • web-platform-tests/IndexedDB/transaction-lifetime.htm:
  • web-platform-tests/IndexedDB/transaction-requestqueue.htm:
  • web-platform-tests/IndexedDB/transaction_bubble-and-capture.htm:
  • web-platform-tests/IndexedDB/value.htm:
  • web-platform-tests/IndexedDB/value_recursive.htm:
  • web-platform-tests/IndexedDB/w3c-import.log: Added.
  • web-platform-tests/IndexedDB/writer-starvation.htm:
  • web-platform-tests/README.md:
  • web-platform-tests/XMLHttpRequest/abort-after-send-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-after-send.htm:
  • web-platform-tests/XMLHttpRequest/abort-during-upload-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-during-upload.htm:
  • web-platform-tests/XMLHttpRequest/abort-event-order-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-event-order.htm:
  • web-platform-tests/XMLHttpRequest/formdata-foreach-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/formdata-foreach.html: Added.
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/progress-events-response-data-gzip.htm:
  • web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-1.htm: Added.
  • web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-2.htm: Added.
  • web-platform-tests/XMLHttpRequest/resources/send-after-setting-document-domain-window-helper.js: Added.

(assert_equals):
(assert_throws):
(run_test):

  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-event-order.js:

(getNextEvent):

  • web-platform-tests/XMLHttpRequest/responsexml-basic-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsexml-basic.htm:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm:
  • web-platform-tests/XMLHttpRequest/send-no-response-event-order-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-response-event-order-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-response-event-order.htm:
  • web-platform-tests/XMLHttpRequest/send-sync-response-event-order-expected.txt:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/common/get-host-info.sub.js:

(get_port):
(get_host_info): Deleted.

  • web-platform-tests/config.json: Added.
  • web-platform-tests/custom-elements/CustomElementRegistry.html:
  • web-platform-tests/custom-elements/HTMLElement-constructor.html:
  • web-platform-tests/custom-elements/adopted-callback-expected.txt:
  • web-platform-tests/custom-elements/adopted-callback.html:
  • web-platform-tests/custom-elements/attribute-changed-callback-expected.txt:
  • web-platform-tests/custom-elements/attribute-changed-callback.html:
  • web-platform-tests/custom-elements/connected-callbacks-expected.txt:
  • web-platform-tests/custom-elements/connected-callbacks.html:
  • web-platform-tests/custom-elements/custom-element-registry/define.html:
  • web-platform-tests/custom-elements/disconnected-callbacks-expected.txt:
  • web-platform-tests/custom-elements/disconnected-callbacks.html:
  • web-platform-tests/custom-elements/htmlconstructor/newtarget.html:
  • web-platform-tests/custom-elements/reaction-timing.html:
  • web-platform-tests/custom-elements/reactions/Attr.html:
  • web-platform-tests/custom-elements/reactions/ChildNode.html:
  • web-platform-tests/custom-elements/reactions/DOMTokenList.html:
  • web-platform-tests/custom-elements/reactions/Document.html:
  • web-platform-tests/custom-elements/reactions/Element.html:
  • web-platform-tests/custom-elements/reactions/NamedNodeMap.html:
  • web-platform-tests/custom-elements/reactions/Node.html:
  • web-platform-tests/custom-elements/reactions/ParentNode.html:
  • web-platform-tests/custom-elements/reactions/Range.html:
  • web-platform-tests/custom-elements/reactions/resources/reactions.js:

(testNodeConnector):
(testNodeDisconnector):
(testCloner):

  • web-platform-tests/custom-elements/resources/custom-elements-helpers.js:

(assert_attribute_log_entry):
(define_new_custom_element.CustomElement):
(define_new_custom_element.CustomElement.prototype.attributeChangedCallback):
(define_new_custom_element.CustomElement.prototype.connectedCallback):
(define_new_custom_element.CustomElement.prototype.disconnectedCallback):
(define_new_custom_element.CustomElement.prototype.adoptedCallback):
(define_new_custom_element.return.takeLog):
(define_new_custom_element):
(document_types.return.create):
(document_types.create):
(document_types.):
(document_types):
(test_with_window): Deleted.

  • web-platform-tests/custom-elements/resources/document-types.js: Removed.
  • web-platform-tests/custom-elements/resources/w3c-import.log:
  • web-platform-tests/diff-manifest.py: Added.

(call):
(get_manifest):
(main):

  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices-expected.txt:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-names-expected.txt:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html:
  • web-platform-tests/dom/events/Event-propagation.html:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/lists/DOMTokenList-Iterable-expected.txt: Added.
  • web-platform-tests/dom/lists/DOMTokenList-Iterable.html: Added.
  • web-platform-tests/dom/lists/DOMTokenList-iteration.html:
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/fetch/api/basic/integrity-sharedworker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/integrity-sharedworker.html: Added.
  • web-platform-tests/fetch/api/headers/headers-idl-expected.txt:
  • web-platform-tests/fetch/api/request/request-idl-expected.txt:
  • web-platform-tests/fetch/api/response/response-idl-expected.txt:
  • web-platform-tests/html/browsers/history/the-history-interface/non-automated/traverse_the_session_history_unload_prompt_1.html: Removed.
  • web-platform-tests/html/browsers/history/the-history-interface/non-automated/w3c-import.log:
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location-prototype-setting.html: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt:
  • web-platform-tests/html/browsers/history/the-location-interface/location_hash.html:
  • web-platform-tests/html/browsers/history/the-location-interface/location_reload.html:
  • web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-on-new-window-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/win-documentdomain.sub.html:
  • web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.forms.html:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-append-to-child-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-append-to-child-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper-1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper-2.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper-3.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html: Copied from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid.html:
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element.html:
  • web-platform-tests/html/semantics/forms/the-form-element/form-nameditem-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-nameditem.html:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a-expected.html: Added.
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1a.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b-expected.html: Added.
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1b.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c-expected.html: Added.
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1c.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1d-expected.html: Added.
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/reversed-1d.html: Added.
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/load-event.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/resources/cross-origin.py: Added.

(main):

  • web-platform-tests/html/semantics/scripting-1/the-script-element/resources/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/custom-elements/resources/w3c-import.log.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin-network.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-crossorigin.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-1.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onerror-insertion-point-2.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onload-insertion-point-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-onload-insertion-point.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-1-helper.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onerror-insertion-point-2-helper.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/support/script-onload-insertion-point-helper.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/support/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/w3c-import.log.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate.html:
  • web-platform-tests/html/syntax/serializing-html-fragments/initial-linefeed-pre-expected.txt:
  • web-platform-tests/html/syntax/serializing-html-fragments/initial-linefeed-pre.html:
  • web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
  • web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
  • web-platform-tests/html/webappapis/animation-frames/idlharness-expected.txt:
  • web-platform-tests/html/webappapis/scripting/event-loops/w3c-import.log:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setInterval-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setInterval.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-cross-origin-setTimeout.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setInterval-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setInterval.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-cross-origin-setTimeout.html: Added.
  • web-platform-tests/media-source/interfaces.html:
  • web-platform-tests/media-source/mediasource-avtracks-expected.txt:
  • web-platform-tests/media-source/mediasource-remove-expected.txt:
  • web-platform-tests/media-source/mediasource-remove.html:
  • web-platform-tests/media-source/mediasource-sequencemode-append-buffer.html:
  • web-platform-tests/media-source/mediasource-util.js:

(EventExpectationsManager): Deleted.
(EventExpectationsManager.prototype.expectEvent): Deleted.

  • web-platform-tests/media-source/mp4/test.mp4:
  • web-platform-tests/media-source/webm/test.webm:
  • web-platform-tests/resource-timing/resources/gzip_xml.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/w3c-import.log:
  • web-platform-tests/resource-timing/test_resource_timing-expected.txt:
  • web-platform-tests/resource-timing/test_resource_timing.js:

(setup):
(poll_for_stylesheet_load.inner):
(poll_for_stylesheet_load):
(resource_load):
(switch.): Deleted.
(switch.case.string_appeared_here.xmlhttp.onload): Deleted.
(onload): Deleted.

  • web-platform-tests/shadow-dom/Document-prototype-adoptNode.html:
  • web-platform-tests/shadow-dom/Document-prototype-currentScript.html:
  • web-platform-tests/shadow-dom/Document-prototype-importNode.html:
  • web-platform-tests/shadow-dom/Element-interface-attachShadow.html:
  • web-platform-tests/shadow-dom/Element-interface-shadowRoot-attribute.html:
  • web-platform-tests/shadow-dom/Extensions-to-Event-Interface.html:
  • web-platform-tests/shadow-dom/HTMLSlotElement-interface.html:
  • web-platform-tests/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html:
  • web-platform-tests/shadow-dom/Node-prototype-cloneNode.html:
  • web-platform-tests/shadow-dom/OWNERS:
  • web-platform-tests/shadow-dom/ShadowRoot-interface.html:
  • web-platform-tests/shadow-dom/Slotable-interface.html:
  • web-platform-tests/shadow-dom/event-composed-path-with-related-target-expected.txt:
  • web-platform-tests/shadow-dom/event-composed-path-with-related-target.html:
  • web-platform-tests/shadow-dom/event-composed-path.html:
  • web-platform-tests/shadow-dom/event-composed.html:
  • web-platform-tests/shadow-dom/event-inside-shadow-tree.html:
  • web-platform-tests/shadow-dom/event-inside-slotted-node.html:
  • web-platform-tests/shadow-dom/event-with-related-target.html:
  • web-platform-tests/shadow-dom/leaktests/get-elements.html:
  • web-platform-tests/shadow-dom/leaktests/html-collection.html:
  • web-platform-tests/shadow-dom/leaktests/window-frames.html:
  • web-platform-tests/shadow-dom/scroll-to-the-fragment-in-shadow-tree.html:
  • web-platform-tests/shadow-dom/slotchange-event.html:
  • web-platform-tests/shadow-dom/slotchange.html:
  • web-platform-tests/shadow-dom/slots-fallback.html:
  • web-platform-tests/shadow-dom/slots.html:
  • web-platform-tests/touch-events/create-touch-touchlist.html:
  • web-platform-tests/touch-events/historical.html:
  • web-platform-tests/touch-events/touch-globaleventhandler-interface.html:
  • web-platform-tests/touch-events/touch-retargeting.html: Added.
  • web-platform-tests/touch-events/touch-touchevent-constructor.html:
  • web-platform-tests/touch-events/w3c-import.log:
  • web-platform-tests/url/interfaces-expected.txt:
  • web-platform-tests/w3c-import.log:

LayoutTests:

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-checkValidity-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-stepMismatch-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/media-source/interfaces-expected.txt:
  • tests-options.json:
9:16 AM Changeset in webkit [206998] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] 2.14.0 Compile Errors: GTK 3.22.1
https://bugs.webkit.org/show_bug.cgi?id=163190

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-10-10
Reviewed by Alex Christensen.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp: Include gtk.h since we are using gtk_widget_queue_draw().
9:01 AM Changeset in webkit [206997] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL] ewk_context_preferred_languages has been failed since r206949
https://bugs.webkit.org/show_bug.cgi?id=163211

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-10-10
Reviewed by Chris Dumez.

r206949 changed to return value of navigator.language from en-us to en-US
in order to match other browsers and w3c spec. So ewk_context_preferred_languages
needs to change the expected result as well.

  • UIProcess/API/efl/tests/test_ewk2_context.cpp:

(TEST_F):

8:11 AM Changeset in webkit [206996] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r206731): [SOUP] Network process crash in gotHeadersCallback
https://bugs.webkit.org/show_bug.cgi?id=163170

Reviewed by Michael Catanzaro.

Do not assume NetworkingContext is non-null and valid before using it.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::gotHeadersCallback):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):

6:42 AM Changeset in webkit [206995] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Images and scripts should be said as clean based on CachedResource::isCORSSameOrigin
https://bugs.webkit.org/show_bug.cgi?id=162390

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-10
Reviewed by Darin Adler.

No observable change of behavior.

Renaming CachedResource::isClean to isCORSSameOrigin to match html spec terminology.
Making use of it to check whether images taint canvas and whether script errors should be sanitized.

Some asserts are added to ensure that a resource fetched using one origin is not reused for another origin.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::sanitizeScriptError):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::initializeStyleSheet):

  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::wouldTaintOrigin):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::isOriginClean):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::isCORSSameOrigin):

  • loader/cache/CachedResource.h:
6:09 AM Changeset in webkit [206994] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[Fetch API] Memory cache should not bypass redirect mode
https://bugs.webkit.org/show_bug.cgi?id=162959

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-10
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/fetch/redirectmode-and-preload.html

Ensure reloading of resources if the redirect modes are different between request and cached resource, and
cached resource has redirections.

As a temporary workaround, we activate resource update for raw resources in
shouldUpdateCachedResourceWithCurrentRequest but disable it in canUpdateFromResource.
This allows handling reloading of resources with different redirection mode in canUpdateFromResource.

A future patch should allow loading cached raw resources from other cached raw resources.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::hasRedirections):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::canUpdateFromResource):
(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):

LayoutTests:

  • http/tests/fetch/redirectmode-and-preload-expected.txt: Added.
  • http/tests/fetch/redirectmode-and-preload.html: Added.
  • http/tests/fetch/resources/redirect-with-cache.php:
3:27 AM Changeset in webkit [206993] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

W3C test downloader should be able to import specific files/sub-directories in a skipped directory
https://bugs.webkit.org/show_bug.cgi?id=161789

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-10
Reviewed by Ryosuke Niwa.

Removed tests_directory option and corresponding test.
This option was allowing to import a sub-directory from a test repository.
We can readd it if necessary.

Adding support for finer-grained import rules.
Previously skipped directories were fully removed.
Now, directories may be skipped but sub directories of them may be imported.
This currently happens in web-platform-tests repo.

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader._add_test_suite_paths): Removing tests_directory option.
(TestDownloader.copy_tests): Refactoring file copy by generating the list of all directories for which direct files should be imported.
(TestDownloader.copy_tests.should_copy_dir):
(TestDownloader.copy_tests.should_copy_file):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.test_tests_directory): Deleted.
(TestImporterTest.test_skip_test_import): Added.

2:03 AM Changeset in webkit [206992] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

Attribute getter binding generated code should use more references
https://bugs.webkit.org/show_bug.cgi?id=163179

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-10
Reviewed by Darin Adler.

No change of behavior.

Using more references in attribute getter generated code since BindingCaller::attribute can do the
pointer-to-references checks once for all.

Needed to update GenerateCallWith and NativeToJSValue to handle the case where references (attribute getters) or
pointers (methods and attribute setters) are to be used.
Future refactoring should allign methods/attribute setters to attribute getters.

  • bindings/js/JSDOMBinding.h:

(WebCore::BindingCaller::attribute):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateCallWith):
(NativeToJSValue):
(JSValueToNative):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:
1:33 AM Changeset in webkit [206991] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix Mac Win build after https://trac.webkit.org/changeset/206966
https://bugs.webkit.org/show_bug.cgi?id=163199

Unreviewed.

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

  • bindings/js/JSDOMBinding.h: Marking rejectPromiseWithGetterTypeError as WEBCORE_EXPORT.
1:19 AM Changeset in webkit [206990] by Antti Koivisto
  • 6 edits
    2 adds in trunk

Enable optimized stylesheet updates in shadow trees
https://bugs.webkit.org/show_bug.cgi?id=163180

Reviewed by Darin Adler.

Source/WebCore:

When we get a new stylesheet (for example when load completes) we invalidate only
those elements in DOM that are affected by the new sheet. This patch makes the
optimization also work in shadow trees.

Test: fast/shadow-dom/scoped-style-invalidation.html

  • css/StyleInvalidationAnalysis.cpp:

(WebCore::StyleInvalidationAnalysis::invalidateStyle):

  • css/StyleInvalidationAnalysis.h:
  • dom/Document.cpp:

(WebCore::Document::didRemoveAllPendingStylesheet):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::removePendingSheet):
(WebCore::Style::Scope::analyzeStyleSheetChange):
(WebCore::Style::Scope::updateActiveStyleSheets):

LayoutTests:

  • fast/shadow-dom/scoped-style-invalidation-expected.txt: Added.
  • fast/shadow-dom/scoped-style-invalidation.html: Added.
1:13 AM Changeset in webkit [206989] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

Refactor binding generated casted-this checks for attribute setters
https://bugs.webkit.org/show_bug.cgi?id=163181

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-10
Reviewed by Darin Adler.

No change of behavior.
Covered by existing tests and binding expectations.

Adding support for attribute setter in BindingCaller.
Updating binding generator to make use of it.
Future refactoring should use more reference and rename castedThis to thisObject, like for getters.

  • bindings/js/JSDOMBinding.h:

(WebCore::BindingCaller::setAttribute):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
12:45 AM Changeset in webkit [206988] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

NetworkSession: downloads started by startDownload() can fail before starting from the API point of view
https://bugs.webkit.org/show_bug.cgi?id=163107

Reviewed by Alex Christensen.

In the network process we use a PendingDownload in this case, but in the UI process we always have a single
download proxy. If an error happens before the pending download is converted inot a real download, the DidFail
messages is received in the download proxy before the DidStart one. This is problematic at least for the GTK+
API, because it's common to connect to the started signal and connect to all other signals from there, but in
this case the started signal is never emitted, and then the failed one is not handled. This is not a problem for
downloads started by convertTaskToDownload, because in that case those loads are not considered a download by
the UI process when those early errors happen, and then the web page handles them.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload): Send DidStart message right after the network load starts like the
non network session code does.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload): Send DidStart message now that the normal load has been converted
into a download.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation): Do not send DidStart message here.

12:28 AM Changeset in webkit [206987] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

Network Session: PendingDownload is always nullptr in DownloadManager::dataTaskBecameDownloadTask
https://bugs.webkit.org/show_bug.cgi?id=163006

Reviewed by Alex Christensen.

In DownloadManager::dataTaskBecameDownloadTask() we are supposed to have either a pending download, or a network
data task depending on whether the download was started by startDownload() or convertTaskToDownload. However, in
both cases we do have a data task and never a pending download. In the case of startDownload() the pending
download is removed from m_pendingDownloads in willDecidePendingDownloadDestination(). The task is always
added to m_downloadsWaitingForDestination in willDecidePendingDownloadDestination() and to
m_downloadsAfterDestinationDecided in continueDecidePendingDownloadDestination() in both cases.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::dataTaskBecameDownloadTask): Add an ASSERT to ensure we don't have a pending download
at this point and that the download is not already in the map. Remove the download from the
m_downloadsAfterDestinationDecided map, but don't check its result because it might not bein that map if
dataTaskBecameDownloadTask is called synchronously from the didReceiveResponse completion handler.
(WebKit::DownloadManager::willDecidePendingDownloadDestination): Do not take the pending download here, wait
until didReceiveResponse completion handler is called.
(WebKit::DownloadManager::continueDecidePendingDownloadDestination): Take the pending download here ensuring
it's alive while the didReceiveResponse completion handler is called. Also remove invalid early return when
either networkDataTask or completionHandler are nullptr because we are using both unconditionally, we should
return early if both are nullptr to avoid crashes. However, we are checking that the download is in the
m_downloadsWaitingForDestination and in that case we should always have both, so better add asserts there. If
the download is already in the map after the completion handler it means that dataTaskBecameDownloadTask() has
alrady been called, so we can just return in that case.

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]): Protect the NetworkDataTask that can
be deleted by dataTaskBecameDownloadTask().

12:13 AM Changeset in webkit [206986] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit2

Share more code between iOS and macOS ViewGestureController
https://bugs.webkit.org/show_bug.cgi?id=163158

Reviewed by Simon Fraser.

Share canSwipeInDirection() and the (unused on Mac) alternate back-forward list mechanism.
Make ViewGestureController operate in terms of WebPageProxy, not WKWebView,
because it shouldn't know anything about WKWebView.
Refactor scrollEventCanBecomeSwipe a bit to be less repetitive.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setAllowsBackForwardNavigationGestures:]):

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::setAlternateBackForwardListSourcePage):
(WebKit::ViewGestureController::canSwipeInDirection):
(WebKit::ViewGestureController::gestureControllerForPage): Deleted.

  • UIProcess/Cocoa/ViewGestureController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::createWeakPtr):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::setAlternateBackForwardListSourceView): Deleted.
(WebKit::ViewGestureController::canSwipeInDirection): Deleted.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe):

12:12 AM Changeset in webkit [206985] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK] UIProcess crashes when using Japanese IM
https://bugs.webkit.org/show_bug.cgi?id=163011

We have to reference the current GdkEventKey before we try process it
as later when the lambda body is reached the event could be already
freed.

Patch by Tomas Popela <tpopela@redhat.com> on 2016-10-10
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):

  • UIProcess/gtk/InputMethodFilter.h:

Use non-copyable Function so we can use WTFMove to pass the event to
lambda.

Oct 9, 2016:

11:54 PM Changeset in webkit [206984] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Move encrypted media from legacy to new DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163194

Reviewed by Youenn Fablet.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::createSession): Take a reference instead of a pointer.

  • Modules/encryptedmedia/CDM.h: Updated for above change.
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::create): Take a reference instead of a pointer.
(WebCore::WebKitMediaKeySession::MediaKeySession): Ditto.
(WebCore::WebKitMediaKeySession::~MediaKeySession): Removed unneeded code that
sets m_session to null.
(WebCore::WebKitMediaKeySession::keyRequestTimerFired): Use auto.
(WebCore::WebKitMediaKeySession::update): Use ExceptionOr.
(WebCore::WebKitMediaKeySession::addKeyTimerFired): Use m_keys directly instead
of calling the keys function.
(WebCore::WebKitMediaKeySession::sendError): Set m_error directly instead of
calling the setError function.
(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory): Use auto.
(WebCore::WebKitMediaKeySession::hasPendingActivity): Check m_session directly
instead of writing !isClosed.
(WebCore::WebKitMediaKeySession::setError): Deleted.

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h: Use pragma once. Removed

unneeded includes. Changed create to take a reference instead of a pointer.
Made most members and base classes private instead of public. Also removed
a few now-unneeded functions. Made everything that was formerly protected
private instead, since the two are the same in a final class.

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl: Removed unneeded comments.

Moved from MayThrowLegacyException to MayThrowException.

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp:

(WebCore::WebKitMediaKeys::create): Use ExceptionOr.
(WebCore::WebKitMediaKeys::MediaKeys): Made argument be an rvalue reference.
Also initialize m_mediaElement in the class definition.
(WebCore::WebKitMediaKeys::~MediaKeys): Call detachKeys instead of setKeys(nullptr).
(WebCore::WebKitMediaKeys::createSession): Use ExceptionOr. Also pass reference
insteead of pointer to create. Also removed unneeded separate checks for null
strings in code that already calls isEmpty.
(WebCore::WebKitMediaKeys::isTypeSupported): Removed unneeded checks for null strings
in code that already calls isEmpty.
(WebCore::WebKitMediaKeys::cdmMediaPlayer): Tweaked a bit.
(WebCore::WebKitMediaKeys::cachedKeyForKeyId): Use auto.

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.h: Use pragma once. Removed unneeded includes.

Changed cdm() function to return a reference. Initialize m_mediaElement.
Use private instead of protected.

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl: Use ConstructorMayThrowException

and MayThrowException instead of the legacy versions.

11:21 PM Changeset in webkit [206983] by zandobersek@gmail.com
  • 20 edits
    14 moves
    1 add in trunk

ENABLE_LEGACY_ENCRYPTED_MEDIA interfaces should have a hard-coded WebKit prefix
https://bugs.webkit.org/show_bug.cgi?id=162982

Reviewed by Jer Noble.

Have the Web-exposed interfaces guarded by ENABLE_LEGACY_ENCRYPTED_MEDIA also use
the WebKit prefix in the implementations. This will prevent conflicts between
interfaces with same names in both the legacy API and the future EME API.

Most of the interfaces in this legacy API already used the WebKit prefix when
exposed via JS bindings. The only exception is MediaKeyNeededEvent, which gets
prefixed in this patch.

The interface implementations for this legacy API are also moved under the
Modules/encryptedmedia/legacy/ directory.

No new tests -- covered by existing tests (with the relevant changes reflected
in the updated baselines).

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/encryptedmedia/CDM.cpp:
  • Modules/encryptedmedia/CDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::generateKeyRequest):
(WebCore::CDMSessionClearKey::update):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.cpp.

(WebCore::WebKitMediaKeyMessageEvent::WebKitMediaKeyMessageEvent):
(WebCore::WebKitMediaKeyMessageEvent::~WebKitMediaKeyMessageEvent):
(WebCore::WebKitMediaKeyMessageEvent::eventInterface):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.h: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.h.

(WebCore::WebKitMediaKeyMessageEvent::create):
(WebCore::WebKitMediaKeyMessageEvent::createForBindings):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.idl: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.idl.
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.cpp.

(WebCore::WebKitMediaKeyNeededEvent::WebKitMediaKeyNeededEvent):
(WebCore::WebKitMediaKeyNeededEvent::~WebKitMediaKeyNeededEvent):
(WebCore::WebKitMediaKeyNeededEvent::eventInterface):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.h: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.h.

(WebCore::WebKitMediaKeyNeededEvent::create):
(WebCore::WebKitMediaKeyNeededEvent::createForBindings):

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.idl: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeyNeededEvent.idl.
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeySession.cpp.

(WebCore::WebKitMediaKeySession::create):
(WebCore::WebKitMediaKeySession::WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::~WebKitMediaKeySession):
(WebCore::WebKitMediaKeySession::setError):
(WebCore::WebKitMediaKeySession::close):
(WebCore::WebKitMediaKeySession::cachedKeyForKeyId):
(WebCore::WebKitMediaKeySession::sessionId):
(WebCore::WebKitMediaKeySession::generateKeyRequest):
(WebCore::WebKitMediaKeySession::keyRequestTimerFired):
(WebCore::WebKitMediaKeySession::update):
(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendMessage):
(WebCore::WebKitMediaKeySession::sendError):
(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory):
(WebCore::WebKitMediaKeySession::hasPendingActivity):
(WebCore::WebKitMediaKeySession::stop):
(WebCore::WebKitMediaKeySession::activeDOMObjectName):
(WebCore::WebKitMediaKeySession::canSuspendForDocumentSuspension):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.h: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeySession.h.
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeySession.idl.
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeys.cpp.

(WebCore::WebKitMediaKeys::create):
(WebCore::WebKitMediaKeys::WebKitMediaKeys):
(WebCore::WebKitMediaKeys::~WebKitMediaKeys):
(WebCore::WebKitMediaKeys::createSession):
(WebCore::WebKitMediaKeys::isTypeSupported):
(WebCore::WebKitMediaKeys::setMediaElement):
(WebCore::WebKitMediaKeys::cdmMediaPlayer):
(WebCore::WebKitMediaKeys::keyAdded):
(WebCore::WebKitMediaKeys::cachedKeyForKeyId):

  • Modules/encryptedmedia/legacy/WebKitMediaKeys.h: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeys.h.
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl: Renamed from Source/WebCore/Modules/encryptedmedia/MediaKeys.idl.
  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDictionary.h:
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerKeyNeeded):
(WebCore::HTMLMediaElement::setMediaKeys):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::keys):

  • html/HTMLMediaElement.idl:
  • html/WebKitMediaKeyError.h: Renamed from Source/WebCore/html/MediaKeyError.h.

(WebCore::WebKitMediaKeyError::create):
(WebCore::WebKitMediaKeyError::WebKitMediaKeyError):

  • html/WebKitMediaKeyError.idl: Renamed from Source/WebCore/html/MediaKeyError.idl.
  • testing/MockCDM.cpp:

(WebCore::MockCDMSession::generateKeyRequest):
(WebCore::MockCDMSession::update):

11:19 PM Changeset in webkit [206982] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Remove stale ENABLE(ENCRYPTED_MEDIA) code in HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=163111

Reviewed by Alex Christensen.

Remove three method implementations in HTMLMediaElement which had their
declarations and the related WebIDL entries removed in the first ENCRYPTED_MEDIA
purge in r206440.

No new tests -- no changes in behavior.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::webkitGenerateKeyRequest): Deleted.
(WebCore::HTMLMediaElement::webkitAddKey): Deleted.
(WebCore::HTMLMediaElement::webkitCancelKeyRequest): Deleted.

10:34 PM Changeset in webkit [206981] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed, EFL Gardening on Oct. 10th - 2

Mark missing test to Skip because the tests aren't supported by EFL yet.
Unskip passing tests and add *PASS* to some flaky tests because I guess
it is still flaky.

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-10-09

  • platform/efl/TestExpectations:
10:22 PM Changeset in webkit [206980] by Simon Fraser
  • 4 edits in trunk/Tools

Make validate-committer-lists show inactive reviewers
https://bugs.webkit.org/show_bug.cgi?id=163193

Reviewed by Sam Weinig.

In preparation for updating contributors.json with the WebKit policy of retiring
inactive reviewers, make validate-committer-lists show the list of reviewers who
have not reviewed in the past year.

This list is computed by grepping the output of 'git log --since=1.year" for
the reviewer line, and looking up reviewers via Contributor.mentioned_in_text(),
which looks for full names, aliases, irc nicks and email addresses.

Support for aliases is added to Contributor. Aliases are alternates
or misspellings of the reviewer's name. Some common aliases were added to
contributors.json by manual examination of "Reviewed by" lines.

  • Scripts/validate-committer-lists:

(CommitterListFromGit.possibly_expired_committers):
(CommitterListFromGit):
(CommitterListFromGit.possibly_inactive_reviewers):
(CommitterListFromGit.print_possibly_expired_committers):
(CommitterListFromGit.print_possibly_inactive_reviewers):

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.init):
(Contributor.contains_string):
(Contributor.mentioned_in_text):
(Contributor.as_dict):
(Committer.init):
(Reviewer.init):
(CommitterList.load_json):

  • Scripts/webkitpy/common/config/contributors.json:
8:11 PM Changeset in webkit [206979] by Wenson Hsieh
  • 24 edits
    10 adds in trunk

Support InputEvent.inputType for the new InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163025
<rdar://problem/28658092>

Reviewed by Darin Adler.

Source/WebCore:

Adds support for the inputType attribute of InputEvent. To do this, we introduce a helper to
map EditActions to inputType names, and also split out ambiguous EditActions (such as
EditActionTyping) into more specific subtypes (such as EditActionTypingDeleteBackward,
EditActionTypingInsertParagraph, etc.), each of which corresponds to an inputType.

In places where we create CompositeEditCommands, we now pass in these specific EditActions
where appropriate, and when dispatching beforeinput and input events, we ask the
CompositeEditCommand for its input type name, which it derives from its editingAction.

Tests: fast/events/before-input-prevent-biu.html

fast/events/before-input-prevent-cut.html
fast/events/before-input-prevent-paste.html
fast/events/before-input-prevent-typing.html
fast/events/before-input-prevent-undo.html

  • dom/InputEvent.h:
  • dom/Node.cpp:

(WebCore::Node::dispatchInputEvent):

  • dom/Node.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::inputEventTypeName):

Allows a CompositeEditCommand to specify the inputType its corresponding beforeinput and input events
should have.

  • editing/CompositeEditCommand.h:

(WebCore::CompositeEditCommand::shouldStopCaretBlinking): Deleted.

  • editing/EditAction.h:
  • editing/EditCommand.cpp:

(WebCore::inputTypeNameForEditingAction):

  • editing/EditCommand.h:
  • editing/Editor.cpp:

(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::willUnapplyEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::willReapplyEditing):
(WebCore::Editor::reappliedEditing):
(WebCore::Editor::computeAndSetTypingStyle):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::editingAction):

  • editing/InsertListCommand.h:

(WebCore::InsertListCommand::preservesTypingStyle): Deleted.
(WebCore::InsertListCommand::editingAction): Deleted.

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::ReplaceRangeWithTextCommand):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand):

  • editing/TypingCommand.cpp:

(WebCore::editActionForTypingCommand):
(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::inputEventTypeName):

The editingAction() of a TypingCommand is the first editing action the TypingCommand was initialized using.
Since subsequent typing commands update the last open typing command, we override inputEventTypeName here to
use the last updated editing action rather than the default (initial) editing action.

(WebCore::TypingCommand::willAddTypingToOpenCommand):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertParagraphSeparator):

  • editing/TypingCommand.h:

Source/WebKit/mac:

Accounts for some changes to the EditAction enum in nameForEditAction. See WebCore ChangeLog
entry for more details.

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction):

Source/WebKit/win:

  • WebCoreSupport/WebEditorClient.cpp:

(undoNameForEditAction):

Source/WebKit2:

Accounts for some changes to the EditAction enum in nameForEditAction. Some former edit
actions, such as EditActionTyping, have been split out into its more specific subtypes,
so we preserve shipping behavior by treating all of the new subtypes the same way as the
original type.

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction):

LayoutTests:

Adds new layout tests to check that various actions, such as cutting, pasting and undoing can
be prevented via the InputEvent fired in a beforechange handler.

  • fast/events/before-input-prevent-biu-expected.txt: Added.
  • fast/events/before-input-prevent-biu.html: Added.
  • fast/events/before-input-prevent-cut-expected.txt: Added.
  • fast/events/before-input-prevent-cut.html: Added.
  • fast/events/before-input-prevent-paste-expected.txt: Added.
  • fast/events/before-input-prevent-paste.html: Added.
  • fast/events/before-input-prevent-typing-expected.txt: Added.
  • fast/events/before-input-prevent-typing.html: Added.
  • fast/events/before-input-prevent-undo-expected.txt: Added.
  • fast/events/before-input-prevent-undo.html: Added.
  • platform/ios-simulator/TestExpectations:
7:19 PM Changeset in webkit [206978] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Gardening timout tests, failure tests on Oct. 10th.

Unreviewed EFL gardening.

Patch by Gyuyoung Kim <gyuyoung.kim@navercorp.com> on 2016-10-09

  • platform/efl/TestExpectations:
7:14 PM Changeset in webkit [206977] by Darin Adler
  • 8 edits in trunk/Source/WebCore

Move ApplePaySession from legacy to new DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163191

Reviewed by Sam Weinig.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create): Use ExceptionOr.
(WebCore::ApplePaySession::ApplePaySession): Moved initialization
of two of the data members to class definition.
(WebCore::ApplePaySession::supportsVersion): Use ExceptionOr.
(WebCore::ApplePaySession::canMakePayments): Ditto.
(WebCore::ApplePaySession::canMakePaymentsWithActiveCard): Ditto.
(WebCore::ApplePaySession::openPaymentSetup): Ditto.
(WebCore::ApplePaySession::begin): Ditto.
(WebCore::ApplePaySession::abort): Ditto.
(WebCore::ApplePaySession::completeMerchantValidation): Ditto.
(WebCore::ApplePaySession::completeShippingMethodSelection): Ditto.
(WebCore::ApplePaySession::completeShippingContactSelection): Ditto.
(WebCore::ApplePaySession::completePaymentMethodSelection): Ditto.
(WebCore::ApplePaySession::completePayment): Ditto.
(WebCore::ApplePaySession::validateMerchant): Use auto and get instead of
using a RefPtr type and * for event dispatching.
(WebCore::ApplePaySession::didAuthorizePayment): Ditto.
(WebCore::ApplePaySession::didSelectShippingMethod): Ditto.
(WebCore::ApplePaySession::didSelectShippingContact): Ditto.
(WebCore::ApplePaySession::didSelectPaymentMethod): Ditto.
(WebCore::ApplePaySession::didCancelPayment): Ditto.
(WebCore::ApplePaySession::paymentCoordinator): Moved dereferencing
inside the downcast.

  • Modules/applepay/ApplePaySession.h: Updated for changes above.
  • Modules/applepay/ApplePaySession.idl: Use MayThrowException.
  • bindings/js/JSApplePaySessionCustom.cpp:

(WebCore::JSApplePaySession::completeShippingMethodSelection):
Use propagateException.
(WebCore::JSApplePaySession::completeShippingContactSelection): Ditto.
(WebCore::JSApplePaySession::completePaymentMethodSelection): Ditto.

  • bindings/js/JSDOMBinding.h: Added implementation of toJSBoolean.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition): Generate the different arguments for
toJSNewlyCreated when ConstructorMayThrowException is specified that
activate the version of that function that handles exceptions.

  • bindings/scripts/IDLAttributes.txt: Added ConstructorMayThrowException.
7:13 PM Changeset in webkit [206976] by Darin Adler
  • 49 edits in trunk/Source/WebCore

Replace all uses of ExceptionCodeWithMessage with WebCore::Exception
https://bugs.webkit.org/show_bug.cgi?id=163178

Reviewed by Sam Weinig.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::stringToDirection): Return an Optional instead of
using an ExceptionCode out argument, since this function just needs to
indicate failure, not actually throw an exception.
(WebCore::IDBCursor::update): Return ExceptionOr instead of using an
ExceptionCodeWithMessage out argument.
(WebCore::IDBCursor::advance): Ditto.
(WebCore::IDBCursor::continueFunction): Ditto.
(WebCore::IDBCursor::deleteFunction): Ditto.

  • Modules/indexeddb/IDBCursor.h: Updated for above changes.
  • Modules/indexeddb/IDBCursor.idl: Sorted extended attributes alphabetically.

Use MayThrowException instead of MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBDatabase::transaction): Ditto.
(WebCore::IDBDatabase::deleteObjectStore): Ditto.

  • Modules/indexeddb/IDBDatabase.h: Updated for above changes.
  • Modules/indexeddb/IDBDatabase.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::open): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBFactory::openInternal): Ditto.
(WebCore::IDBFactory::deleteDatabase): Ditto.
(WebCore::IDBFactory::cmp): Ditto.

  • Modules/indexeddb/IDBFactory.h: Updated for above changes.
  • Modules/indexeddb/IDBFactory.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::openCursor): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBIndex::count): Ditto.
(WebCore::IDBIndex::doCount): Ditto.
(WebCore::IDBIndex::openKeyCursor): Ditto.
(WebCore::IDBIndex::get): Ditto.
(WebCore::IDBIndex::doGet): Ditto.
(WebCore::IDBIndex::getKey): Ditto.
(WebCore::IDBIndex::doGetKey): Ditto.

  • Modules/indexeddb/IDBIndex.h: Updated for above changes.
  • Modules/indexeddb/IDBIndex.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::only): Return ExceptionOr instead of
using an ExceptionCode out argument.
(WebCore::IDBKeyRange::lowerBound): Ditto.
(WebCore::IDBKeyRange::upperBound): Ditto.
(WebCore::IDBKeyRange::bound): Ditto.

  • Modules/indexeddb/IDBKeyRange.h: Updated for above changes.
  • Modules/indexeddb/IDBKeyRange.idl: Use MayThrowException instead of

MayThrowLegacyException.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBObjectStore::get): Ditto.
(WebCore::IDBObjectStore::add): Ditto.
(WebCore::IDBObjectStore::put): Ditto.
(WebCore::IDBObjectStore::putForCursorUpdate): Ditto.
(WebCore::IDBObjectStore::putOrAdd): Ditto.
(WebCore::IDBObjectStore::deleteFunction): Ditto.
(WebCore::IDBObjectStore::doDelete): Ditto.
(WebCore::IDBObjectStore::clear): Ditto.
(WebCore::IDBObjectStore::createIndex): Ditto.
(WebCore::IDBObjectStore::index): Ditto.
(WebCore::IDBObjectStore::deleteIndex): Ditto.
(WebCore::IDBObjectStore::count): Ditto.
(WebCore::IDBObjectStore::doCount): Ditto.

  • Modules/indexeddb/IDBObjectStore.h: Updated for above changes.
  • Modules/indexeddb/IDBObjectStore.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::errorCode): Deleted. Was dead code.
(WebCore::IDBRequest::error): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.

  • Modules/indexeddb/IDBRequest.h: Updated for above changes.
  • Modules/indexeddb/IDBRequest.idl: Use GetterMayThrowException instead of

GetterMayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::stringToMode): Return an Optional instead of
using an ExceptionCode out argument, since this function just needs to
indicate failure, not actually throw an exception.
(WebCore::IDBTransaction::db): Tweaked code a bit.
(WebCore::IDBTransaction::error): Return a pointer instead of a RefPtr.
(WebCore::IDBTransaction::objectStore): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBTransaction::abortDueToFailedRequest): Call internalAbort.
(WebCore::IDBTransaction::abort): Return ExceptionOr instead of
using an ExceptionCodeWithMessage out argument.
(WebCore::IDBTransaction::internalAbort): Added a version that asserts
instead of throwing an exception for internal use.
(WebCore::IDBTransaction::stop): Call internalAbort.

  • Modules/indexeddb/IDBTransaction.h: Updated for above changes.
  • Modules/indexeddb/IDBTransaction.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::openDatabase): Updated to return
a Ref instead of a RefPtr, since the function can never return null.
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase): Ditto.

  • Modules/indexeddb/client/IDBConnectionProxy.h: Updated for above changes.
  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask): Updated
exception handling to use ExceptionOr instead of ExceptionCodeWithMessage.
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask): Ditto.

  • Modules/mediastream/MediaEndpointSessionDescription.cpp:

(WebCore::MediaEndpointSessionDescription::create): Ditto.

  • Modules/mediastream/MediaEndpointSessionDescription.h: Updated for above change.
  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException): Added overload for Exception.
(WebCore::throwDOMException): Deleted overload for ExceptionCodeWithMessage.
Updated code to call the new createDOMException function.
(WebCore::setDOMExceptionSlow): Ditto.
(WebCore::setDOMException): Ditto.

  • bindings/js/JSDOMBinding.h: Added overload of createDOMException that takes

an Exception. Deleted functions dealing with ExceptionCodeWithMessage. Fixed
interface of toJSNumber and toJSNullableNumber and implemented toJSNumber.

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DeferredPromise::reject): Added overload that takes an Exception.

  • bindings/js/JSDOMPromise.h: Updated for above change.
  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState): Use propagateException to deal with
ExceptionOr instead of ExceptionCodeWithMessage.
(WebCore::JSHistory::replaceState): Ditto.

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore): Use toJS and
to deal with ExceptionOr rather than setDOMException to deal
with ExceptionCodeWithMessage.

  • bindings/js/JSIDBRequestCustom.cpp:

(WebCore::JSIDBRequest::result): Use propagateException and
Exception rather than setDOMException and ExceptionCodeWithMessage.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Removed support for GetterMayThrowLegacyExceptionWithMessage,
SetterMayThrowLegacyExceptionWithMessage, and MayThrowLegacyExceptionWithMessage.
(GenerateReturnParameters): Ditto.
(GenerateImplementationFunctionCall): Ditto.
(GenerateConstructorDefinition): Ditto.

  • bindings/scripts/IDLAttributes.txt: Removed GetterMayThrowLegacyExceptionWithMessage,

SetterMayThrowLegacyExceptionWithMessage, and MayThrowLegacyExceptionWithMessage.

  • bindings/scripts/test/JS/JSTestObj.cpp: Regenerated.
  • bindings/scripts/test/TestObj.idl: Removed tests cases for now-removed attributes.
  • dom/CustomElementRegistry.idl: Use MayThrowException instead of

MayThrowLegacyExceptionWithMessage.

  • dom/ExceptionCode.h: Removed ExceptionCodeWithMessage. Also updated to use pragma

once, removed include of WTFString.h and switched to using instead of typedef.

  • history/HistoryItem.h: Return a pointer instead of a RefPtr from stateObject

to cut down a little on unnecessary reference count churn.

  • inspector/InspectorIndexedDBAgent.cpp: Updated all the code that uses IDB

classes to use the new versions rather than the old ExceptionCodeWithMessage versions.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::history): Pass a reference instead of a pointer.

  • page/History.cpp:

(WebCore::History::History): Take a reference instead of a pointer.
(WebCore::History::length): Tweaked to use a local variable.
(WebCore::History::state): Return a pointer instead of a PassRefPtr.
(WebCore::History::stateInternal): Ditto. Also use early return consistently.
(WebCore::History::isSameAsCurrentState): Updated for above change.
(WebCore::History::stateObjectAdded): Return ExceptionOr rather than taking an
ExceptionCodeWithMessage out argument.

  • page/History.h: Use pragma once. Removed some unneeded includes. Marked class final.

Updated for changes above.

  • page/History.idl: Use MayThrowException instead of MayThrowLegacyException.
7:03 PM Changeset in webkit [206975] by rniwa@webkit.org
  • 5 edits
    2 adds in trunk

REGRESSION(r165103): labels list doesn't get invalidated when other lists are invalidated at document level
https://bugs.webkit.org/show_bug.cgi?id=163145

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by Document::invalidateNodeListAndCollectionCaches removing all node lists regardless
of whether they have been invalidated or not.

Fixed the bug by removing only those node lists that got invalidated via LiveNodeList::invalidateCache.

Test: fast/dom/NodeList/form-labels-length.html

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::unregisterNodeListForInvalidation): Removed the conditional which allowed removal to
happen while m_listsInvalidatedAtDocument is empty inside invalidateNodeListAndCollectionCaches.

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Document::invalidateNodeListAndCollectionCaches): Just remove the node lists being invalidated via
LiveNodeList's invalidateCache, which calls unregisterNodeListForInvalidation, instead of removing them all.
We make a copy of the list of node lists into a local vector because mutating HashMap while iterating over it
is not a safe operation.

LayoutTests:

Added a regression test.

  • fast/dom/NodeList/form-labels-length-expected.txt: Added.
  • fast/dom/NodeList/form-labels-length.html: Added.
6:16 PM Changeset in webkit [206974] by Chris Dumez
  • 13 edits in trunk/Source/WebCore

Update generated bindings code so that dictionary structures no longer need explicit constructors
https://bugs.webkit.org/show_bug.cgi?id=163188

Reviewed by Darin Adler.

Update generated bindings code so that dictionary structures no longer
need explicit constructors. We now call the default constructor and
then initialize the members one by one.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):

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

(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):

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

(WebCore::convertDictionary<TestStandaloneDictionary>):

  • dom/ClipboardEvent.h:
  • dom/CustomEvent.h:
  • dom/EventInit.h:

(WebCore::EventInit::EventInit): Deleted.

  • dom/EventModifierInit.h:

(WebCore::EventModifierInit::EventModifierInit): Deleted.

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl:
  • dom/UIEventInit.h:

(WebCore::UIEventInit::UIEventInit): Deleted.

  • editing/Editor.cpp:

(WebCore::Editor::dispatchCPPEvent):

5:45 PM Changeset in webkit [206973] by Simon Fraser
  • 8 edits in trunk

Convert contributors.json to a flat list
https://bugs.webkit.org/show_bug.cgi?id=163183

Reviewed by Darin Adler.

Make contributors.json easier to maintain by eliminating the big groupings ("Committers", "Reviewers" etc)
and moving that data to a "status" property on each contributor.
Tools:

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.eq): Implement this to fix unit tests, now that load_json() is not @memoized.
(Contributor.as_dict): Include status in the dict.
(CommitterList.init): Clean up to make the testing code path more explicit.
(CommitterList.load_json):
(CommitterList.load_test_data):
(CommitterList.as_json):
(Contributor.unicode): Deleted.

  • Scripts/webkitpy/common/config/contributors.json:
  • Scripts/webkitpy/tool/bot/irc_command_unittest.py:

(IRCCommandTest.test_whois): The ordering here is now alphabetical.

Websites/bugs.webkit.org:

Fix script that does bugzilla autocomplete.

  • committers-autocomplete.js:

(statusToType):
(parseCommittersPy):
(parseType): Deleted.

Websites/webkit.org:

Fix script that generates webkit.org/team.

  • wp-content/themes/webkit/team.php:
5:38 PM Changeset in webkit [206972] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

[CMake] CMake does not support the dep files for implicit dependency
https://bugs.webkit.org/show_bug.cgi?id=161433

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-09
Reviewed by Brent Fulgham.

Created a Perl script to generate all IDL bindings for CMake.
This script can regenerate outdated bindings by based on the
supplemental dependency and dep files created by
'--write-dependencies' switch of generate-bindings.pl.

add_custom_target is used to invoke the script instead of
add_custom_command because Ninja deletes all output files before
executing the command in case of add_custom_command.

USES_TERMINAL option of add_custom_target has two effects:
1) Not buffering output of the command
2) Invoking the command in the special Ninja pool which inhibits parallel build
One needs to use CMake 3.2 or later to enable this feature.

.:

  • Source/cmake/WebKitMacros.cmake (GENERATE_BINDINGS): Included

ProcessorCount. Added a new argument 'target'. Use
add_custom_target instead of add_custom_command. Invoke the new
script.

Source/WebCore:

  • CMakeLists.txt: Specified target names for

GENERATE_BINDINGS. Added dependency for the targets.

  • bindings/scripts/generate-bindings-all.pl: Added.

Tools:

  • DumpRenderTree/CMakeLists.txt: Specified a target name for

GENERATE_BINDINGS. Added dependency for the target.

  • WebKitTestRunner/CMakeLists.txt: Ditto.
4:11 PM Changeset in webkit [206971] by Chris Dumez
  • 17 edits
    4 adds in trunk

Update KeyboardEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163176

Reviewed by Darin Adler.

Source/WebCore:

Update KeyboardEvent to stop using legacy [ConstructorTemplate=Event]
and use a proper constructor instead, like in the specification:

Also add support for passing modifierAltGraph / modifierCapsLock
in the inialization dictionary as we support those modifiers via
getModifierState().

No new tests, extended existing test.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventModifierInit.h: Added.

(WebCore::EventModifierInit::EventModifierInit):

  • dom/EventModifierInit.idl: Added.
  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::getModifierState):

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl:
  • dom/MouseRelatedEvent.cpp:

(WebCore::MouseRelatedEvent::MouseRelatedEvent):

  • dom/MouseRelatedEvent.h:
  • dom/UIEvent.cpp:

(WebCore::UIEvent::UIEvent):

  • dom/UIEvent.h:

(WebCore::UIEvent::create): Deleted.

  • dom/UIEventInit.h: Added.

(WebCore::UIEventInit::UIEventInit):

  • dom/UIEventInit.idl: Added.
  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::altGraphKey):
(WebCore::UIEventWithKeyState::capsLockKey):
(WebCore::UIEventWithKeyState::UIEventWithKeyState):
(WebCore::UIEventWithKeyState::ctrlKey): Deleted.
(WebCore::UIEventWithKeyState::shiftKey): Deleted.
(WebCore::UIEventWithKeyState::altKey): Deleted.
(WebCore::UIEventWithKeyState::metaKey): Deleted.

LayoutTests:

Rebaseline existing test now that the exception message is slightly
different in some cases. Also add test coverage for passing
modifierAltGraph / modifierCapsLock in initialization dictionary.

  • fast/events/constructors/keyboard-event-constructor-expected.txt:
  • fast/events/constructors/keyboard-event-constructor.html:
3:47 PM Changeset in webkit [206970] by Simon Fraser
  • 2 edits in trunk/Tools

Add support for canonicalizing contributors.json, and have check-webkit-style check the format.
https://bugs.webkit.org/show_bug.cgi?id=163177

Follow-up fix.

For unknown reasons, overriding Commiter.dict() caused mysterious test failures.
Rename it to as_dict().

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.as_dict):
(CommitterList._contributor_list_to_dict):
(Contributor.dict): Deleted.

1:47 PM Changeset in webkit [206969] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Miscellaneous unreviewed test gardening

  • platform/gtk/TestExpectations:
1:46 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
12:27 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
12:19 PM Changeset in webkit [206968] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Skip new custom elements tests, they're all failing

  • platform/gtk/TestExpectations:
9:34 AM Changeset in webkit [206967] by Simon Fraser
  • 5 edits
    1 add in trunk/Tools

Add support for canonicalizing contributors.json, and have check-webkit-style check the format.
https://bugs.webkit.org/show_bug.cgi?id=163177

Reviewed by Ryosuke Niwa.

Make it possible to round-trip contributors.json through CommitterList, so we can
support writing out contributors.json in canonical format. This requires saving
the case-preserved email and expertise in Contributor. CommitterList also needs
to be able to generate the "exclusive" lists, since it currently uses lists
that are the union of, say, committers and reviewers.

If contributors.json is malformed (invalid JSON), catch the Exception, report it
and exit rather than allowing the exception to propagate. With an invalid file,
an exception would be thrown before the JSON style checker reached this file, so
the error was not correctly reported.

Add style/checker/committer.py for checking that committers.json has the canonical format.

Add support to validate-committer-lists to dump out the canonical json (-d) or update
the file in-place (-c).

  • Scripts/validate-committer-lists:

(CommitterListFromGit._print_three_column_row):
(CommitterListFromGit.possibly_expired_committers):
(CommitterListFromGit):
(CommitterListFromGit.print_possibly_expired_committers):
(main):

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.init):
(Contributor.dict):
(Committer.init):
(Reviewer.init):
(CommitterList.load_json):
(CommitterList):
(CommitterList._contributor_list_to_dict):
(CommitterList.as_json):
(CommitterList.reformat_in_place):
(CommitterList._exclusive_contributors):
(CommitterList._exclusive_committers):
(Contributor.matches_glob): Deleted.
(CommitterList.contributors): Deleted.

  • Scripts/webkitpy/common/config/contributors.json:
  • Scripts/webkitpy/style/checker.py:

(CheckerDispatcher._create_checker):

  • Scripts/webkitpy/style/checkers/contributors.py: Added.

(ContributorsChecker):
(ContributorsChecker.init):
(ContributorsChecker.check):
(ContributorsChecker._unidiff_output):

12:34 AM Changeset in webkit [206966] by commit-queue@webkit.org
  • 9 edits in trunk

Promise attribute getters should reject promises in case of casted-this errors
https://bugs.webkit.org/show_bug.cgi?id=163167

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-09
Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test and binding test.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::throwGetterTypeError):
(WebCore::rejectPromiseWithGetterTypeError): Added to reject promises for attribute getters

  • bindings/js/JSDOMBinding.h:

(WebCore::BindingCaller::attribute): Introducing promise rejection for type cast errors.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestObj.cpp: Rebased test. As can be seen, only custom promise attributes are supported.

(WebCore::jsTestObjTestReadOnlyPromiseAttribute):
(WebCore::jsTestObjTestReadOnlyPromiseAttributeGetter):

  • bindings/scripts/test/TestObj.idl:

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:

Oct 8, 2016:

9:17 PM Changeset in webkit [206965] by Chris Dumez
  • 8 edits
    1 add
    7 deletes in trunk

Source/WebCore:
[Mac] Write WebArchive to the pasteboard when copying image in WebKit
https://bugs.webkit.org/show_bug.cgi?id=163100

Reviewed by Darin Adler.

Write WebArchive to the pasteboard when copying image in WebKit. This
fixes pasting such images to a content editable field in WebKit because
Web archives take priority over RTFD when reading from the pasteboard
in WebKit.

Using RTFD when pasting the image in WebKit was causing issues because:

  1. The pasted image would not be displayed because our RTFD import code is buggy.
  2. The pasted image URL was a webkit-fake-url://
  3. Formatting associated to the image (e.g. inline style) would be lost

No new tests, unskipped existing test on WebKit2.

  • editing/Editor.h:
  • editing/mac/EditorMac.mm:

(WebCore::Editor::imageInWebArchiveFormat):
(WebCore::Editor::writeImageToPasteboard):

  • platform/Pasteboard.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::writableTypesForImage):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::Pasteboard): Deleted.
(WebCore::Pasteboard::createForCopyAndPaste): Deleted.

LayoutTests:
[Mac] Write HTML to the pasteboard when copying image in WebKit
https://bugs.webkit.org/show_bug.cgi?id=163100

Reviewed by Darin Adler.

Convert editing/pasteboard/copy-standalone-image.html into a ref test
and unskip on WebKit2 now that it passes there as well. Before this
patch, the test would fail on WebKit2 (the pasted image would not be
displayed).

  • editing/pasteboard/copy-standalone-image-expected.html: Added.
  • editing/pasteboard/copy-standalone-image.html:
  • platform/gtk/editing/pasteboard/copy-standalone-image-expected.png: Removed.
  • platform/gtk/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
  • platform/ios-simulator-wk2/editing/pasteboard/copy-standalone-image-expected.png: Removed.
  • platform/ios-simulator/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
  • platform/mac/editing/pasteboard/copy-standalone-image-expected.png: Removed.
  • platform/mac/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
  • platform/win/editing/pasteboard/copy-standalone-image-expected.txt: Removed.
  • platform/wk2/TestExpectations:
8:46 PM Changeset in webkit [206964] by Chris Dumez
  • 13 edits in trunk

Update CustomEvent to stop using legacy [ConstructorTemplate=Event]
https://bugs.webkit.org/show_bug.cgi?id=163174

Reviewed by Darin Adler.

Source/WebCore:

Update CustomEvent to stop using legacy [ConstructorTemplate=Event] and
use an actual constructor instead, like in the specification:

There is a very minor behavior change when explictly passing undefined
as detail value in CustomEventInit. We used to initialize detail to
undefined but we now initialize it to null instead, which is its default
value. The new behavior matches the one of Chrome and Firefox.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):
(GenerateDictionaryImplementationContent):

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

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

  • bindings/scripts/test/TestObj.idl:
  • dom/CustomEvent.cpp:

(WebCore::CustomEvent::CustomEvent):

  • dom/CustomEvent.h:
  • dom/CustomEvent.idl:
  • dom/Document.cpp:

(WebCore::Document::createEvent):

  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:

LayoutTests:

Update existing layout test to reflect minor behavior change.

  • fast/events/constructors/custom-event-constructor-expected.txt:
  • fast/events/constructors/custom-event-constructor.html:
5:03 PM Changeset in webkit [206963] by Chris Dumez
  • 24 edits
    7 adds in trunk

Add support for ClipboardEvent
https://bugs.webkit.org/show_bug.cgi?id=163164

Reviewed by Darin Adler.

Source/WebCore:

Add support for ClipboardEvent:

Firefox and Chrome both already support this.

This gives us 5 more points on html5test.com.

Tests: editing/pasteboard/clipboard-event.html

fast/events/clipboard-event-constructor.html

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSEventCustom.cpp:

(WebCore::toJSNewlyCreated): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(WillConvertUndefinedToDefaultParameterValue):
We use [] as implicit default value for dictionary parameters. This change
is so we call convertDictionary<>() even if the parameter is undefined
because we want to pass a struct to the implementation initialized with
the default member values defined in the IDL.

  • dom/ClipboardEvent.cpp:

(WebCore::ClipboardEvent::ClipboardEvent):
(WebCore::ClipboardEvent::eventInterface):

  • dom/ClipboardEvent.h:
  • dom/ClipboardEvent.idl: Added.
  • dom/Event.cpp:

(WebCore::Event::Event):

  • dom/Event.h:
  • dom/Event.idl:
  • dom/EventInit.h: Added.
  • dom/EventInit.idl: Added.
  • dom/EventNames.in:
  • dom/MouseEvent.h:

(WebCore::MouseEvent::dataTransfer):

  • editing/Editor.cpp:

(WebCore::Editor::dispatchCPPEvent):

LayoutTests:

Extended layout test coverage.

  • editing/pasteboard/clipboard-event-expected.txt: Added.
  • editing/pasteboard/clipboard-event.html: Added.
  • fast/events/clipboard-event-constructor-expected.txt: Added.
  • fast/events/clipboard-event-constructor.html: Added.
  • fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
4:17 PM Changeset in webkit [206962] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking js/regress-141098.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=163046

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:12 PM Changeset in webkit [206961] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK] Drop redundant wl_display_flush_clients() call
https://bugs.webkit.org/show_bug.cgi?id=161904

Patch by Emanuele Aina <Emanuele Aina> on 2016-10-08
Reviewed by Michael Catanzaro.

The Wayland GSource::prepare() function already calls
wl_display_flush_clients() at every mainloop iteration, so there's no
need to further call it on Surface::commit().

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::commit):

  • UIProcess/gtk/WaylandCompositor.h:
4:01 PM Changeset in webkit [206960] by Darin Adler
  • 54 edits in trunk

Next step on moving to modern way to return DOM exceptions
https://bugs.webkit.org/show_bug.cgi?id=163016

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • Modules/fetch/FetchRequest.idl:

Added MayThrowException to initializeWith since it throws an exception.

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::invokeCallback):

  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):
(WebCore::reportCurrentException):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::JSNodeFilter::acceptNode):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):

  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::reportException):
Use JSC::Exception explicitly to avoid ambiguity with WebCore::Exception,
or in some cases use auto instead.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::hasUnpairedSurrogate): Factored this inline function out of valueToUSVString
for clarity.
(WebCore::createDOMException): Removed unused TRY_TO_CREATE_EXCEPTION macro.
(WebCore::propagateExceptionSlowPath): Added.
(WebCore::propagateException): Added.
(WebCore::setDOMException): Removed overload that takes an exception code and message
string separately; no longer needed.

  • bindings/js/JSDOMBinding.h: Include the ExceptionOr header

rather than forward declaring. Added more of the ExceptionOr handling
functions; some just declared and not yet defined. Updated for changes
to ExceptionOr interface. Removed the createDOMException function that takes
only an exception code; not needed outside JSDOMBinding.cpp.

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::send): Rewrote this to use ExceptionOr instead
of ExceptionCode. Added some FIXMEs as well.
(WebCore::JSXMLHttpRequest::responseText): Ditto.
(WebCore::JSXMLHttpRequest::retrieveResponse): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Fixed if statements to follow WebKit coding style
rather than using extra braces. Added call to propagateException for SetterMayThrowException.
(GenerateSerializerFunction): Fixed if statements as above.
(GenerateParametersCheck): Ditto. Also added call to propagateException for functions with
void return type and MayThrowException.
(GenerateReturnParameters): Tweaked coding style a bit.
(addIterableProperties): Fixed if statements as above.
(NativeToJSValue): Added code to handle various cases of GetterMayThrowException
and MayThrowException.
(GenerateConstructorDefinition): Used encodedJSValue() instead of
JSValue::encode(JSValue()), a longer way to say the same thing.

  • bindings/scripts/IDLAttributes.txt: Added GetterMayThrowException,

MayThrowException, and SetterMayThrowException.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:

Regenerated results.

  • bindings/scripts/test/TestObj.idl: Added some test cases.
  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocumentType): Tweaked formatting.
(WebCore::DOMImplementation::createDocument): Ditto.

  • dom/DOMImplementation.idl: Added MayThrowException to two functions since

I am abandoning, for now, the ability to throw exceptions without any extended
attribute in the IDL file. This feature may return at some point if we figure
out a way to do it for functions without return values as well as functions with.

  • dom/Document.cpp:

(WebCore::Document::exitPointerLock): Rewrote to streamline logic.
(WebCore::Document::pointerLockElement): Ditto.
(WebCore::Document::inputCursor): Added. No need for this to be inlined.
(WebCore::Document::setInputCursor): Changed to take Ref&&.
(WebCore::Document::getSelection): Added. Moved here from TreeScope.

  • dom/Document.h: Updated for above changes.
  • dom/Document.idl: Tweaked formatting.
  • dom/Exception.h: Merged the two constructors into one with a default

argument value, which should be equally efficient. Added releaseMessage function.
Added assertion that this is only created for actual exceptions with non-zero
ExceptionCode. Unlike ExceptionCode, which has a value of 0 which means no
exception, we do not create an Exception if there is no exception.

  • dom/ExceptionOr.h: Renamed takeReturnValue to releaseReturnValue. Replaced

exceptionCode and exceptionMessage with releaseException. Added ExceptionOr<void>
specialization.

  • dom/TreeScope.cpp:

(WebCore::TreeScope::~TreeScope): Removed code dealing with
m_selection, which is now in Document.
(WebCore::TreeScope::getSelection): Deleted.

  • dom/TreeScope.h: Removed DOMSelection.
  • page/DOMSelection.cpp:

(WebCore::selectionShadowAncestor): Changed to take a reference rather than
a guaranteed-non-null pointer.
(WebCore::DOMSelection::DOMSelection): Changed to take a Frame& instead of
of a TreeScope*.
(WebCore::DOMSelection::clearTreeScope): Deleted.
(WebCore::DOMSelection::isCollapsed): Updated call to selectionShadowAncestor.
(WebCore::DOMSelection::type): Took out obsolete uneeeded comment. Got rid
of case where this returns a null string. Use ASCIILiteral.
(WebCore::DOMSelection::rangeCount): Streamlined code.
(WebCore::DOMSelection::collapse): Removed redundant check of m_frame for
null which is already handled by the isValidForPosition function.
Removed non-helpful FIXME.
(WebCore::DOMSelection::collapseToEnd): Changed to use ExceptionOr instead of
ExceptionCode.
(WebCore::DOMSelection::collapseToStart): Ditto.
(WebCore::DOMSelection::setBaseAndExtent): Removed redundant check of m_frame
for null which is already handled by the isValidForPosition function. Removed
non-helpful FIXME.
(WebCore::DOMSelection::setPosition): Ditto.
(WebCore::DOMSelection::extend): Changed to use ExceptionOr instead of
ExceptionCode.
(WebCore::DOMSelection::getRangeAt): Ditto.
(WebCore::DOMSelection::isValidForPosition): Changed to return false when
m_frame is null rather than asserting is is non-null and having every caller
check m_frame before calling this.

  • page/DOMSelection.h: Use #pragma once. Fix indentation. Removed unneeded

comments. Use ExceptionOr rather than ExceptionCode.

  • page/DOMSelection.idl: Move from MayThrowLegacyException to MayThrowException.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::resetDOMWindowProperties): Sorted properties alphabetically
to make it more obvious if any are accidentally omitted or listed twice.
(WebCore::DOMWindow::getSelection): Changed ownership so that the window owns
the selection like all the other objects, rather than having it be owned by the
document instead.

  • page/DOMWindow.h: Added m_selection, sorted all the other related properties

alphabetically so it's easy to compare the list here with elsewhere.

  • replay/ReplayController.cpp:

(WebCore::ReplayController::frameNavigated): Updated to call setInputCursor
with a reference rather than a pointer.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::responseText): Use ExceptionOr rather than ExceptionCode.
(WebCore::XMLHttpRequest::responseXML): Ditto.
(WebCore::XMLHttpRequest::setTimeout): Ditto.
(WebCore::XMLHttpRequest::setResponseType): Ditto.
(WebCore::XMLHttpRequest::setWithCredentials): Ditto.
(WebCore::XMLHttpRequest::open): Ditto.
(WebCore::XMLHttpRequest::prepareToSend): Changed to return an
Optional<ExceptionOr> to reflect the three different states: an exception,
a value to return without sending, or "continue with the send algorithm".
The old code did this with a boolean plus an exception code. This sounds
confusing but is easy to read at the call sites, so probably OK to keep.
(WebCore::XMLHttpRequest::send): Use ExceptionOr rather than ExceptionCode.
(WebCore::XMLHttpRequest::sendBytesData): Ditto.
(WebCore::XMLHttpRequest::createRequest): Ditto.
(WebCore::XMLHttpRequest::overrideMimeType): Ditto.
(WebCore::XMLHttpRequest::setRequestHeader): Ditto.

  • xml/XMLHttpRequest.h: Updated for changes above.
  • xml/XMLHttpRequest.idl: Sorted interface extended attributes alphabetically.

Changed from MayThrowLegacyException to MayThrowException.

Source/WebKit/mac:

  • DOM/DOMDOMImplementation.mm:

(-[DOMImplementation createDocumentType:publicId:systemId:]): Updated for
name change from takeReturnValue to releaseReturnValue.
(-[DOMImplementation createDocument:qualifiedName:doctype:]): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:

(webkit_dom_dom_implementation_create_document_type): Updated for name change
from takeReturnValue to releaseReturnValue.
(webkit_dom_dom_implementation_create_document): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp:

(webkit_dom_dom_selection_collapse_to_end): Use ExceptionOr instead of ExceptionCode.
(webkit_dom_dom_selection_collapse_to_start): Ditto.
(webkit_dom_dom_selection_extend): Ditto.
(webkit_dom_dom_selection_get_range_at): Ditto.

Tools:

  • Scripts/do-webcore-rename: Add proposed name change of setDOMException

to propagateException, since this function is primarily used to take an
exception already effectively "thrown" by setting an ExceptionCode out
argument and propagate it into the JavaScript engine's exception machinery.

1:42 PM Changeset in webkit [206959] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit2

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

broke an API test (Requested by thorton on #webkit).

Reverted changeset:

"Share more code between iOS and macOS ViewGestureController"
https://bugs.webkit.org/show_bug.cgi?id=163158
http://trac.webkit.org/changeset/206950

1:14 PM Changeset in webkit [206958] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/media/track-in-band-hls-metadata.html as a flaky timeout on mac.
https://bugs.webkit.org/show_bug.cgi?id=140022

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:50 PM Changeset in webkit [206957] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/key-generator.html as flaky on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=161653

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:07 PM Changeset in webkit [206956] by weinig@apple.com
  • 22 edits
    4 deletes in trunk/Source/WebCore

Autogenerate passing union types as part of a functions variadic arguments
https://bugs.webkit.org/show_bug.cgi?id=162919

Reviewed by Darin Adler.

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

Remove deleted files.

  • bindings/generic/IDLTypes.h:

Switch to use std::reference_wrapper as it's implementation type. We may need more
granularity here in the future, but this will work for now.

  • bindings/js/JSCharacterDataCustom.cpp: Removed.
  • bindings/js/JSDocumentTypeCustom.cpp: Removed.
  • bindings/js/JSNodeOrString.cpp: Removed.
  • bindings/js/JSNodeOrString.h: Removed.
  • bindings/js/JSDOMBinding.h:

(WebCore::VariadicHelperBase::convert): Deleted.
(WebCore::toArguments): Deleted.
Moved to JSDOMConvert.h and renamed to convertVariadicArguments and make
it work in terms of IDLTypes.

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<IDLInterface<T>>::convert):
(WebCore::VariadicConverterBase::convert):
(WebCore::VariadicConverterBase<IDLInterface<T>>::convert):
(WebCore::convertVariadicArguments):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::prepend): Deleted.
(WebCore::JSDocument::append): Deleted.

  • bindings/js/JSDocumentFragmentCustom.cpp:

(WebCore::JSDocumentFragment::prepend): Deleted.
(WebCore::JSDocumentFragment::append): Deleted.

  • bindings/js/JSElementCustom.cpp:

(WebCore::JSElement::before): Deleted.
(WebCore::JSElement::after): Deleted.
(WebCore::JSElement::replaceWith): Deleted.
(WebCore::JSElement::prepend): Deleted.
(WebCore::JSElement::append): Deleted.
Remove now generated functions.

  • bindings/scripts/CodeGenerator.pm:

(assert):
Add assert to help debugging.

(ParseInterface):
Don't treat union types as interfaces.

(GetFlattenedMemberTypes):
(GetNumberOfNullableMemberTypes):
(GetIDLUnionMemberTypes):
Implement WebIDL algorithms for getting the flattened member list of union, and use it
to construct the c++ IDLType.

(GetBaseIDLType):
(GetIDLType):
Add helper to convert an parsed idlType to a c++ IDLType.

(IsWrapperType):
Don't treat union types as wrappers.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToImplIncludesForIDLType):
Add helper for adding #includes based on a parsed idlType. It recursively handles union types.

(GenerateParametersCheck):
Use the new convertVariadicArguments function to handle all variadic arguments, including
union types.

  • bindings/scripts/IDLParser.pm:

(parseDictionaryMember):
(parseAttributeRest):
(parseOptionalOrRequiredArgument):
(parseExceptionField):
Add an idlType to domSignature and populate it.

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

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod13):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethod):

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

(WebCore::constructJSTestOverloadedConstructors5):

  • bindings/scripts/test/TestObj.idl:

Add and update tests.

  • dom/ChildNode.idl:
  • dom/ParentNode.idl:

Remove Custom extended attribute.

  • dom/ContainerNode.cpp:
  • dom/ContainerNode.h:
  • dom/Node.cpp:
  • dom/Node.h:

Switch to using std::reference_wrapper instead of Ref<> for passed in parameters.

11:32 AM Changeset in webkit [206955] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

HasIndexedProperty clobberize rule is wrong for Array::ForceOSRExit
https://bugs.webkit.org/show_bug.cgi?id=159942
<rdar://problem/27328836>

Reviewed by Filip Pizlo.

When HasIndexedProperty has a ForceOSRExit array mode, it should
report to write to side state, like the ForceOSRExit node, and the
other nodes with ForceOSRExit array mode.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

7:49 AM Changeset in webkit [206954] by commit-queue@webkit.org
  • 10 edits in trunk

[Fetch API] Request constructor should provide exception messages
https://bugs.webkit.org/show_bug.cgi?id=162382

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-08
Reviewed by Darin Adler.

No change of behavior, except that exceptions now have error messages.

Added support of exception messages to ExceptionOr.
Making use of ExceptionOr for Request constructor parameter checking.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::setReferrerPolicy):
(WebCore::setMode):
(WebCore::setCredentials):
(WebCore::setCache):
(WebCore::setRedirect):
(WebCore::setMethod):
(WebCore::setReferrer):
(WebCore::buildOptions):
(WebCore::FetchRequest::initializeOptions):
(WebCore::FetchRequest::initializeWith):

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • bindings/js/JSDOMBinding.cpp:

(WebCore::setDOMException):

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • dom/Exception.h:

(WebCore::Exception::code):
(WebCore::Exception::message):
(WebCore::Exception::Exception):

  • dom/ExceptionOr.h:

(WebCore::ExceptionOr<ReturnType>::exceptionMessage):

LayoutTests:

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

  • fetch/fetch-url-serialization-expected.txt: Rebasing test expectation.
6:09 AM Changeset in webkit [206953] by commit-queue@webkit.org
  • 27 edits in trunk/Source/WebCore

Refactor binding generated casted-this checks
https://bugs.webkit.org/show_bug.cgi?id=162677

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-08
Reviewed by Darin Adler.

No change of behavior.

Split the attribute getter function in two, one with the signature expected by JSCore and one used after casted-this checks.

The second function takes directly a JSXX object and returns a JSValue instead of an EncodedJSValue.
In the future, the second function should only take references.

Introducing BindingCaller as a way to templatize binding code used to cast thisValue with the desired JSXX value.
This allows implementing the first function using the second function as template parameter.

Introducing JSClass::castForAttribute as a way to encapsulate differences in the way to handle thisValue access.

  • bindings/js/JSDOMBinding.h:

(WebCore::BindingCaller::attribute):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.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:
4:54 AM Changeset in webkit [206952] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

Missing include in MediaDescription
https://bugs.webkit.org/show_bug.cgi?id=162873

Reviewed by Xabier Rodriguez-Calvar.

Added missing header.

  • platform/MediaDescription.h:
1:42 AM Changeset in webkit [206951] by Antti Koivisto
  • 24 edits in trunk/Source/WebCore

Move StyleResolver ownership from Document/ShadowRoot to Style::Scope
https://bugs.webkit.org/show_bug.cgi?id=163148

Reviewed by Andreas Kling.

Reduce duplication between Document and ShadowRoot.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::didMutateRules):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::matchHostPseudoClassRules):
(WebCore::ElementRuleCollector::matchSlottedPseudoElementRules):

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::documentElementUserAgentStyle):

  • css/StyleMedia.cpp:

(WebCore::StyleMedia::matchMedium):

  • css/parser/SizesAttributeParser.cpp:

(WebCore::SizesAttributeParser::mediaConditionMatches):

  • dom/Document.cpp:

(WebCore::Document::~Document):
(WebCore::Document::childrenChanged):
(WebCore::Document::isPageBoxVisible):
(WebCore::Document::pageSizeAndMarginsInPixels):
(WebCore::Document::userAgentShadowTreeStyleResolver):
(WebCore::Document::fontsNeedUpdate):
(WebCore::Document::didClearStyleResolver):
(WebCore::Document::updateViewportUnitsOnResize):
(WebCore::Document::createStyleResolver): Deleted.
(WebCore::Document::clearStyleResolver): Deleted.

  • dom/Document.h:

(WebCore::Document::styleResolverIfExists): Deleted.
(WebCore::Document::ensureStyleResolver): Deleted.

  • dom/Element.cpp:

(WebCore::Element::styleResolver):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::styleResolver): Deleted.
(WebCore::ShadowRoot::styleResolverIfExists): Deleted.
(WebCore::ShadowRoot::resetStyleResolver): Deleted.

  • dom/ShadowRoot.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::getMatchedCSSRules):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

  • page/Page.cpp:

(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):

  • page/PrintContext.cpp:

(WebCore::PrintContext::pageProperty):

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseCriticalMemory):

  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::mayBeAffectedByHostStyle):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::mayBeAffectedByHostStyle):

  • style/IdChangeInvalidation.cpp:

(WebCore::Style::mayBeAffectedByHostStyle):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::resolverIfExists):
(WebCore::Style::Scope::clearResolver):
(WebCore::Style::Scope::analyzeStyleSheetChange):
(WebCore::Style::Scope::updateActiveStyleSheets):
(WebCore::Style::Scope::updateStyleResolver):
(WebCore::Style::Scope::styleResolver): Deleted.
(WebCore::Style::Scope::styleResolverIfExists): Deleted.

  • style/StyleScope.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::resolve):
(WebCore::Style::SharingResolver::canShareStyleWithElement):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::resolve):

1:31 AM Changeset in webkit [206950] by timothy_horton@apple.com
  • 8 edits in trunk/Source/WebKit2

Share more code between iOS and macOS ViewGestureController
https://bugs.webkit.org/show_bug.cgi?id=163158

Reviewed by Simon Fraser.

Share canSwipeInDirection() and the (unused on Mac) alternate back-forward list mechanism.
Make ViewGestureController operate in terms of WebPageProxy, not WKWebView,
because it shouldn't know anything about WKWebView.
Refactor scrollEventCanBecomeSwipe a bit to be less repetitive.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setAllowsBackForwardNavigationGestures:]):

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::setAlternateBackForwardListSourcePage):
(WebKit::ViewGestureController::canSwipeInDirection):
(WebKit::ViewGestureController::gestureControllerForPage): Deleted.

  • UIProcess/Cocoa/ViewGestureController.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::createWeakPtr):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::setAlternateBackForwardListSourceView): Deleted.
(WebKit::ViewGestureController::canSwipeInDirection): Deleted.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::PendingSwipeTracker::PendingSwipeTracker):
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::PendingSwipeTracker::tryToStartSwipe):

Oct 7, 2016:

8:31 PM Changeset in webkit [206949] by Chris Dumez
  • 8 edits in trunk

window.navigator.language incorrectly returns all lowercase string
https://bugs.webkit.org/show_bug.cgi?id=163096

Reviewed by Darin Adler.

Source/WebCore:

Update navigator.language so that it no longer returns an all lowercase
string (e.g. 'en-us' -> 'en-US'). This matches the behavior of other
browsers and the specification which indicate we should return a
BCP 47 language tag:

The other call sites relying on userPreferredLanguages() use case
insensitive comparison so they will not break.

No new tests, updated existing test.

  • platform/Language.h:

Source/WTF:

Update platformUserPreferredLanguages() so that it no longer lowercases
the string it returns. On Mac, we rely on CFLocale which returns
BCP-47 language tags as per:

  • wtf/PlatformUserPreferredLanguagesMac.mm:

(WTF::httpStyleLanguageCode):

  • wtf/PlatformUserPreferredLanguagesUnix.cpp:

(WTF::platformLanguage):

LayoutTests:

Update existing test so that it does not lowercase navigator.language
before checking it. This way, we can make sure it returns en-US and
not en-us.

  • js/dom/navigator-language-expected.txt:
  • js/dom/navigator-language.html:
8:20 PM Changeset in webkit [206948] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

Object.freeze() and seal() should throw if PreventExtensions() fails.
https://bugs.webkit.org/show_bug.cgi?id=163160

Reviewed by Saam Barati.

JSTests:

  • stress/object-freeze-with-proxy-preventExtensions.js: Added.
  • stress/object-seal-with-proxy-preventExtensions.js: Added.

Source/JavaScriptCore:

See https://tc39.github.io/ecma262/#sec-object.freeze,
https://tc39.github.io/ecma262/#sec-object.seal, and
https://tc39.github.io/ecma262/#sec-setintegritylevel. We need to call
preventExtensions first before proceeding to freeze / seal the object. If
preventExtensions fails, we should throw a TypeError.

  • runtime/ObjectConstructor.cpp:

(JSC::setIntegrityLevel):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):

7:07 PM Changeset in webkit [206947] by Yusuke Suzuki
  • 2 edits in trunk/LayoutTests

REGRESSION (r206853?): LayoutTest js/regress-141098.html failing
https://bugs.webkit.org/show_bug.cgi?id=163046

Reviewed by Saam Barati.

This is attempt-to-fix patch since I cannot reproduce this flakiness.
We reduce the number of frames to back off from the stack overflow to
catch the closer frame limit to the actual stack limit.

  • js/script-tests/regress-141098.js:
5:23 PM Changeset in webkit [206946] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, mark a test as failing on iOS simulator

This was intended to be a part of r206944.

  • platform/ios-simulator/TestExpectations:
5:20 PM Changeset in webkit [206945] by Simon Fraser
  • 4 edits in trunk/Source/WebKit/mac

[WK1 Mac] Fix repaints of fixed-background elements in layer-backed WebViews
https://bugs.webkit.org/show_bug.cgi?id=163154
rdar://problem/28674216

Reviewed by Tim Horton.

r55159 added code to counteract AppKit's adjustment of dirty regions during scrolling,
by offsetting the dirty rect in -setNeedsDisplayInRect: if the call happens during
the NSViewBoundsDidChangeNotification handling.

However, AppKit only does dirty region adjustment in the code path that blits ("copy
on scroll"), so r55159 produces incorrect behavior in, for example, layer-backed views.

Fix by overriding -[NSClipView _canCopyOnScrollForDeltaX:deltaY:] to know if a single
scroll is going to blit, and only do adjustments in -setNeedsDisplayInRect: if it is.

  • WebView/WebClipView.h:
  • WebView/WebClipView.mm:

(-[WebClipView _immediateScrollToPoint:]):
(-[WebClipView _canCopyOnScrollForDeltaX:deltaY:]):
(-[WebClipView currentScrollIsBlit]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView setNeedsDisplayInRect:]):
(-[WebHTMLView drawRect:]):

4:47 PM Changeset in webkit [206944] by Wenson Hsieh
  • 18 edits
    6 adds in trunk

Support onbeforeinput event handling for the new InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163021
<rdar://problem/28658073>

Reviewed by Darin Adler.

Source/WebCore:

Adds support for parsing the onbeforeinput attribute, and for sending default-preventable
beforeinput InputEvents to the page. To do this, we introduce two new virtual methods:
willApplyCommand and didApplyCommand on the CompositeEditCommand that are called before and
after CompositeEditCommand::doApply, respectively. willApplyCommand indicates whether or not
the composite editor command should proceed with applying the command.

Tweaks existing layout tests and adds new tests.

Tests: fast/events/before-input-events-different-start-end-elements.html

fast/events/before-input-events-prevent-default-in-textfield.html
fast/events/before-input-events-prevent-default.html

  • dom/Document.idl:
  • dom/Element.idl:
  • dom/EventNames.h:
  • dom/Node.cpp:

(WebCore::Node::dispatchInputEvent):
(WebCore::Node::defaultEventHandler):

Currently, we fire input events in Node in response to dispatching a webkitEditableContentChangedEvent. After
some discussion, Ryosuke and I believe that it will be ok to instead directly dispatch the input event where we
would normally dispatch a webkitEditableContentChangedEvent.

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):

Added calls to Editor::willUnapplyEditing and Editor::willReapplyEditing.

(WebCore::CompositeEditCommand::willApplyCommand):
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::didApplyCommand):

Added new virtual functions, willApplyCommand and didApplyCommand, that surround a call to
CompositeEditCommand::doApply. By default, they call willApplyEditing and appliedEditing on the editor, but may
be overridden in special cases, such as in TypingCommand, where we invoke appliedEditing after adding a new
typing command to the last open command.

If willApplyCommand returns false, CompositeEditCommand::apply will bail and not proceed with the command.

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::dispatchInputEvents):
(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::willUnapplyEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::willReapplyEditing):
(WebCore::Editor::reappliedEditing):
(WebCore::Editor::computeAndSetTypingStyle):
(WebCore::dispatchEditableContentChangedEvents): Deleted.

  • editing/Editor.h:
  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::willApplyCommand):
(WebCore::TypingCommand::didApplyCommand):
(WebCore::TypingCommand::willAddTypingToOpenCommand):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::deleteSelection):

These now invoke willAddTypingToOpenCommand before proceeding with creating the command and applying it. The
flow is now:

  • willAddTypingToOpenCommand
  • create and apply a new command
  • typingAddedToOpenCommand
  • editing/TypingCommand.h:

(WebCore::TypingCommand::preservesTypingStyle): Deleted.
(WebCore::TypingCommand::shouldRetainAutocorrectionIndicator): Deleted.
(WebCore::TypingCommand::setShouldRetainAutocorrectionIndicator): Deleted.
(WebCore::TypingCommand::shouldStopCaretBlinking): Deleted.

  • html/HTMLAttributeNames.in:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

Tweak an existing test to hook into the 'input' event instead of 'webkitEditableContentChanged', as well as
tests added in r206843 to verify that onbeforeinput handlers are invoked with InputEvents. Also introduces
new unit tests verifying that calling preventDefault on InputEvents fired by onbeforeinput correctly prevent
text from being inserted or deleted.

  • editing/undo/undo-after-event-edited.html:
  • fast/events/before-input-events-different-start-end-elements-expected.txt: Added.
  • fast/events/before-input-events-different-start-end-elements.html: Added.
  • fast/events/before-input-events-prevent-default-expected.txt: Added.
  • fast/events/before-input-events-prevent-default-in-textfield-expected.txt: Added.
  • fast/events/before-input-events-prevent-default-in-textfield.html: Added.
  • fast/events/before-input-events-prevent-default.html: Added.
  • fast/events/input-events-fired-when-typing-expected.txt:
  • fast/events/input-events-fired-when-typing.html:
  • platform/ios-simulator/TestExpectations:
4:30 PM Changeset in webkit [206943] by n_wang@apple.com
  • 13 edits
    2 adds in trunk

AX: <figcaption> should be AXTitleUIElement for other content inside the <figure>
https://bugs.webkit.org/show_bug.cgi?id=108996

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed the figcaption element to be the AXTitleUIElement for the figure element. And used
the figcaption's content as the accessible name of the figure. Also, updated the figure element's
role description on Mac.
Accessible name and description calculation for figure elements:
https://w3c.github.io/html-aam/#figure-and-figcaption-elements

Test: accessibility/mac/figure-element.html

  • English.lproj/Localizable.strings:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::captionForFigure):
(WebCore::AccessibilityNodeObject::alternativeText):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isFigure):
(WebCore::AccessibilityObject::isSuperscriptStyleGroup): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::exposesTitleUIElement):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXFigureText):

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXFigureText):

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXFigureText):

LayoutTests:

  • accessibility/mac/figure-element-expected.txt: Added.
  • accessibility/mac/figure-element.html: Added.
4:06 PM Changeset in webkit [206942] by achristensen@apple.com
  • 4 edits in trunk

Non-special URL fragments should percent-encode non-ASCII characters
https://bugs.webkit.org/show_bug.cgi?id=163153

Reviewed by Tim Horton.

Source/WebCore:

This is needed to keep compatibility with data URLs with non-ASCII characters after a '#'
which works in Chrome, Firefox, and Safari, while maintaining compatibility with Chrome, IE, and Edge
which keep non-ASCII characters in the fragments of special URLs.
This was proposed to the spec in https://github.com/whatwg/url/issues/150

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::syntaxViolation):
Removed assertion because we now have fragments that need percent encoding but are all ASCII.
(WebCore::URLParser::fragmentSyntaxViolation):
(WebCore::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

3:59 PM Changeset in webkit [206941] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

EventHandler functions that need to guarantee event handler lifetime need to use Ref<Frame>
https://bugs.webkit.org/show_bug.cgi?id=98617
<rdar://problem/12778649>

Reviewed by Daniel Bates.

Improve stability by ensuring that the Frame holding an active EventHandler is kept
alive while in the process of handling events and executing JavaScript.

No new tests since there is no change in behavior.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick): Protect the Frame with a Ref<>.
(WebCore::EventHandler::handleMousePressEvent): Ditto.
(WebCore::EventHandler::handleMouseDraggedEvent): Ditto.
(WebCore::EventHandler::eventMayStartDrag): Ditto.
(WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
(WebCore::EventHandler::hitTestResultAtPoint): Ditto.
(WebCore::EventHandler::scrollRecursively): Ditto.
(WebCore::EventHandler::logicalScrollRecursively): Ditto.
(WebCore::EventHandler::selectCursor): Ditto.
(WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
(WebCore::EventHandler::mouseMoved): Ditto.
(WebCore::EventHandler::handleMouseMoveEvent): Ditto.
(WebCore::EventHandler::handleMouseForceEvent): Ditto.
(WebCore::EventHandler::dispatchDragEvent): Ditto.
(WebCore::EventHandler::updateDragAndDrop): Ditto.
(WebCore::EventHandler::cancelDragAndDrop): Ditto.
(WebCore::EventHandler::performDragAndDrop): Ditto.
(WebCore::EventHandler::prepareMouseEvent): Ditto.
(WebCore::EventHandler::updateMouseEventTargetNode): Ditto.
(WebCore::EventHandler::dispatchMouseEvent): Ditto.
(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.
(WebCore::EventHandler::handleWheelEvent): Ditto.
(WebCore::EventHandler::defaultWheelEventHandler): Ditto.
(WebCore::EventHandler::sendContextMenuEvent): Ditto.
(WebCore::EventHandler::sendContextMenuEventForKey): Ditto.
(WebCore::EventHandler::hoverTimerFired): Ditto.
(WebCore::EventHandler::keyEvent): Ditto.
(WebCore::EventHandler::defaultKeyboardEventHandler): Ditto.
(WebCore::EventHandler::handleDrag): Ditto.
(WebCore::EventHandler::handleTextInputEvent): Ditto.
(WebCore::EventHandler::defaultSpaceEventHandler): Ditto.
(WebCore::EventHandler::defaultTabEventHandler): Ditto.
(WebCore::EventHandler::sendScrollEvent): Ditto.
(WebCore::EventHandler::handleTouchEvent): Ditto.

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView): Ditto.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.

3:17 PM Changeset in webkit [206940] by Jonathan Bedard
  • 3 edits in trunk/Tools

Build fix for “Move functionality common to Darwin ports into a base class”
https://bugs.webkit.org/show_bug.cgi?id=160709

Unreviewed build fix.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort._get_crash_log): Added iOS implementation.

  • Scripts/webkitpy/port/mac.py:

(MacPort._get_crash_log): Added Mac implementation.

3:14 PM Changeset in webkit [206939] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/debugger/stepping tests as flaky.
https://bugs.webkit.org/show_bug.cgi?id=161951

Unreviewed test gardening.

2:25 PM Changeset in webkit [206938] by cpugh@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Added myself to the list of committers.

  • Scripts/webkitpy/common/config/contributors.json:
2:20 PM Changeset in webkit [206937] by andersca@apple.com
  • 8 edits
    4 deletes in trunk/Source/WebKit2

Get rid of API::Session and WKSessionRef
https://bugs.webkit.org/show_bug.cgi?id=163140

Reviewed by Tim Horton.

This API is no longer used.

  • CMakeLists.txt:
  • Shared/API/APIObject.h:
  • Shared/API/c/WKSharedAPICast.h:
  • UIProcess/API/APISession.cpp: Removed.

(API::generateID): Deleted.
(API::Session::defaultSession): Deleted.
(API::Session::Session): Deleted.
(API::Session::createEphemeral): Deleted.
(API::Session::isEphemeral): Deleted.
(API::Session::getID): Deleted.
(API::Session::~Session): Deleted.

  • UIProcess/API/APISession.h: Removed.
  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/C/WKSessionRef.cpp: Removed.

(WKSessionCreate): Deleted.
(WKSessionGetTypeID): Deleted.
(WKSessionIsEphemeral): Deleted.

  • UIProcess/API/C/WKSessionRef.h: Removed.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
2:11 PM Changeset in webkit [206936] by timothy_horton@apple.com
  • 3 edits
    3 moves in trunk/Source/WebKit2

Move ViewGestureController files to more accurate locations
https://bugs.webkit.org/show_bug.cgi?id=163141

Reviewed by Anders Carlsson.

  • PlatformMac.cmake:
  • UIProcess/Cocoa/ViewGestureController.cpp: Renamed from UIProcess/ViewGestureController.cpp.
  • UIProcess/Cocoa/ViewGestureController.h: Renamed from UIProcess/mac/ViewGestureController.h.
  • UIProcess/Cocoa/ViewGestureController.messages.in: Renamed from UIProcess/mac/ViewGestureController.messages.in.
  • WebKit2.xcodeproj/project.pbxproj:
2:06 PM Changeset in webkit [206935] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

js/function-apply-aliased.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=127860

Reviewed by Darin Adler.

This test no longer times out. Reintegrating into test suites.

2:06 PM Changeset in webkit [206934] by Jonathan Bedard
  • 10 edits
    1 copy
    2 adds in trunk/Tools

Move functionality common to Darwin ports into a base class
https://bugs.webkit.org/show_bug.cgi?id=160709

Reviewed by Darin Adler.

  • Scripts/webkitpy/port/apple.py:

(ApplePort.determine_full_port_name): Specific iOS port check.
(ApplePort.init): Move leak detector to DarwinPort.
(ApplePort._make_leak_detector): Moved to DarwinPort.
(ApplePort.supports_per_test_timeout): Moved to Port.
(ApplePort.check_for_leaks): Moved to DarwinPort.
(ApplePort.print_leaks_summary): Moved to DarwinPort.
(ApplePort._path_to_webcore_library): Moved to DarwinPort.
(ApplePort.show_results_html_file): Moved to DarwinPort.
(ApplePort._merge_crash_logs): Moved to DarwinPort.
(ApplePort._look_for_all_crash_logs_in_log_dir): Moved to DarwinPort.
(ApplePort._get_crash_log): Moved to DarwinPort.
(ApplePort.look_for_new_crash_logs): Moved to DarwinPort.
(ApplePort.sample_process): Moved to DarwinPort.
(ApplePort.sample_file_path): Moved to DarwinPort.
(ApplePort.look_for_new_samples): Moved to DarwinPort.

  • Scripts/webkitpy/port/base.py:

(Port.supports_per_test_timeout): Return true for all ports.

  • Scripts/webkitpy/port/darwin.py: Added.

(DarwinPort): Shared iOS and Mac functions.

  • Scripts/webkitpy/port/darwin_testcase.py: Added.

(DarwinTest): Shared iOS and Mac testing.

  • Scripts/webkitpy/port/efl.py:

(EflPort):
(EflPort.supports_per_test_timeout): Moved to Port.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._driver_class):
(GtkPort):
(GtkPort.supports_per_test_timeout): Moved to Port.

  • Scripts/webkitpy/port/ios.py:

(IOSPort):
(IOSPort.operating_system):
(IOSSimulatorPort):
(IOSSimulatorPort.init): Inherits from DarwinPort.
(IOSSimulatorPort._port_specific_expectations_files): Moved to DarwinPort.
(IOSSimulatorPort._get_crash_log): Deleted.
(IOSSimulatorPort.xcrun_find): Deleted.

  • Scripts/webkitpy/port/ios_unittest.py: Added.

(iosTest): Unit tests for the iOS port.

  • Scripts/webkitpy/port/mac.py:

(MacPort):
(MacPort.init): Inherits from DarwinPort.
(MacPort._port_specific_expectations_files): Moved to DarwinPort.
(MacPort.make_command): Moved to DarwinPort.
(MacPort._get_crash_log): Moved to DarwinPort.
(MacPort.nm_command): Moved to DarwinPort.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest):
(MacTest.test_sdk_name): Added test.
(MacTest.test_xcrun): Added test.
(MacTest.assert_skipped_file_search_paths): Moved to DarwinTest.
(MacTest.test_default_timeout_ms): Moved to DarwinTest.
(MacTest.assert_name): Moved to DarwinTest.
(MacTest.test_helper_starts): Moved to DarwinTest.
(MacTest.test_helper_fails_to_start): Moved to DarwinTest.
(MacTest.test_helper_fails_to_stop): Moved to DarwinTest.
(MacTest.test_spindump): Moved to DarwinTest.
(MacTest.test_sample_process): Moved to DarwinTest.
(MacTest.test_sample_process_exception): Moved to DarwinTest.

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase):
(PortTestCase.test_diff_image): Added is_simulator flag.
(PortTestCase.test_diff_image): Skip test if on a simulator.
(PortTestCase.test_diff_image_crashed): Skip test if on a simulator.

  • Scripts/webkitpy/port/win.py:

(WinPort):
(WinPort.look_for_new_samples): Used default, ApplePort no longer implements.
(WinPort.sample_process): Ditto.
(WinPort._make_leak_detector): Ditto.
(WinPort.check_for_leaks): Ditto.
(WinPort.print_leaks_summary): Ditto.
(WinPort._path_to_webcore_library): Ditto.

1:56 PM Changeset in webkit [206933] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-603.1.8.1

Remove tag.

1:51 PM Changeset in webkit [206932] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking inspector/console/addInspectedNode.html as flaky on mac-debug.
https://bugs.webkit.org/show_bug.cgi?id=155138

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:46 PM Changeset in webkit [206931] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/cache/disk-cache/memory-cache-revalidation-updates-disk-cache.html as flaky on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=162975

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:25 PM Changeset in webkit [206930] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit2

Adopt BlockPtr in ViewGestureController
https://bugs.webkit.org/show_bug.cgi?id=163132

Reviewed by Anders Carlsson.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setDidMoveSwipeSnapshotCallback):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent):

  • UIProcess/mac/ViewGestureController.h:

(WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback):
(WebKit::ViewGestureController::m_didMoveSwipeSnapshotCallback): Deleted.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::platformTeardown):
(WebKit::ViewGestureController::setDidMoveSwipeSnapshotCallback): Deleted.

1:04 PM Changeset in webkit [206929] by andersca@apple.com
  • 8 edits in trunk

Get rid of WKPageSetSession
https://bugs.webkit.org/show_bug.cgi?id=163129

Reviewed by Tim Horton.

Source/WebKit2:

This function is no longer used.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetSession): Deleted.

  • UIProcess/API/C/WKPage.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setSessionID): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::sessionID):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Rewrite this test to use WKPageConfigurationRef and WKWebsiteDataStoreRef.

  • TestWebKitAPI/Tests/WebKit2/EphemeralSessionPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

12:56 PM Changeset in webkit [206928] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.8.1

New tag.

12:43 PM Changeset in webkit [206927] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/loading/basic-auth-load-URL-with-consecutive-slashes.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=163139

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:37 PM Changeset in webkit [206926] by Chris Dumez
  • 6 edits in trunk

Regression(r201970): productSub / vendor / vendorSub should not be exposed on WorkerNavigator
https://bugs.webkit.org/show_bug.cgi?id=163124

Reviewed by Ryosuke Niwa.

Source/WebCore:

productSub / vendor / vendorSub should not be exposed on WorkerNavigator:

Test case:

Note that the specification also restricts NavigatorID's appCodeName and
product attributes to Window. However, it seems the HTML specification is
about to get updated so that these get exposed to workers:

No new tests, updated existing test.

  • bindings/scripts/generate-bindings.pl:

(shouldPropertyBeExposed):

  • page/NavigatorID.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/workers/resources/worker-navigator.js:
  • fast/workers/worker-navigator-expected.txt:
12:03 PM Changeset in webkit [206925] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/auth-reject-protection-space.html as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=163136

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:03 PM Changeset in webkit [206924] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Disable URLParser logs by default in all builds
https://bugs.webkit.org/show_bug.cgi?id=163135

Reviewed by Brady Eidson.

In debug builds with the URLParser enabled, some tests time out because
parameters to generate log strings are being evaluated for each character of each URL
and then not being used if URLParser logs are disabled. Generating these unused parameters
is too slow even for debug builds. Let's only generate them if they are to be used.

No change in behaviour.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
(WebCore::URLParser::allValuesEqual):

11:55 AM Changeset in webkit [206923] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/key-type-array.html as flaky on mac-debug.
https://bugs.webkit.org/show_bug.cgi?id=161720

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:55 AM Changeset in webkit [206922] by akling@apple.com
  • 4 edits
    3 adds in trunk

[WK2] didRemoveFrameFromHierarchy callback doesn't fire for subframes when evicting from PageCache.
<https://webkit.org/b/163098>
<rdar://problem/28663488>

Reviewed by Antti Koivisto.

Source/WebCore:

Fix a bug where WK2 didRemoveFrameFromHierarchy callbacks wouldn't fire for subframes that were getting
kicked out of PageCache. The problem was happening because CachedFrame would disconnect the Frame from
its Page just before calling FrameLoader::detachViewsAndDocumentLoader() where the callbacks are fired.
Without a Page, the WebFrame on WK2 side can't find its WebPage, and so it can't fire its callbacks.

The fix is just to switch the order of those two lines.

This bug was causing frequent DOM and window object leaks in some clients *cough* Safari *cough* that
were relying on didRemoveFrameFromHierarchy to release their isolated worlds.

Test: WebKit2.DidRemoveFrameFromHiearchyInPageCache

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::destroy):

Tools:

Add an API test that puts a 10-subframe page into the page cache, then loads other pages
until the first page gets kicked out. The test succeeds if we receive didRemoveFrameFromHierarchy
callbacks for all the subframes.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didReceivePageMessageFromInjectedBundle):
(TestWebKitAPI::setInjectedBundleClient):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache_Bundle.cpp: Added.

(TestWebKitAPI::didRemoveFrameFromHierarchyCallback):
(TestWebKitAPI::DidRemoveFrameFromHiearchyInPageCacheTest::DidRemoveFrameFromHiearchyInPageCacheTest):
(TestWebKitAPI::DidRemoveFrameFromHiearchyInPageCacheTest::didCreatePage):

  • TestWebKitAPI/Tests/WebKit2/many-iframes.html: Added.
10:44 AM Changeset in webkit [206921] by n_wang@apple.com
  • 8 edits
    2 adds in trunk

AX: AXRoleDescription for details and summary elements
https://bugs.webkit.org/show_bug.cgi?id=163094

Reviewed by Chris Fleizach.

Source/WebCore:

details and summary elements should have AXRoleDescription that is consistent with other
elements that have custom AXSubRole.

Test: accessibility/mac/details-summary-role-description.html

  • English.lproj/Localizable.strings:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXDetailsText):
(WebCore::AXSummaryText):

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXDetailsText):
(WebCore::AXSummaryText):

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXDetailsText):
(WebCore::AXSummaryText):

LayoutTests:

  • accessibility/mac/details-summary-role-description-expected.txt: Added.
  • accessibility/mac/details-summary-role-description.html: Added.
10:26 AM Changeset in webkit [206920] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Fix the Windows build after r206917.

Unreviewed build fix.

  • dom/DOMAllInOne.cpp:
10:15 AM Changeset in webkit [206919] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/blink/storage/indexeddb/blob-valid-after-deletion.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=163122

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:04 AM Changeset in webkit [206918] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Replace bug URL placeholders independently of the short desc one
https://bugs.webkit.org/show_bug.cgi?id=161684

Patch by Emanuele Aina <Emanuele Aina> on 2016-10-07
Reviewed by Darin Adler.

Instead of adding the bug URL when replacing the short description
placeholder and then ignoring the bug URL placeholder, use the former
to set the short description and the latter for the bug URL.
This means that developers can fully prepare the changelog with short
and long description before submission leaving the bug placeholder in
place, and the changelog machinery will make sure to replace the
latter with the URL of the newly created bug while submitting.

Note that this also means that the short description placeholder alone
no longer causes the bug URL to be added.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLog.set_short_description_and_bug_url):

  • Scripts/webkitpy/common/checkout/changelog_unittest.py:

(test_set_short_description_and_bug_url):

9:55 AM Changeset in webkit [206917] by Antti Koivisto
  • 30 edits
    2 moves in trunk/Source

Rename AuthorStyleSheets to Style::Scope
https://bugs.webkit.org/show_bug.cgi?id=163108

Reviewed by Andreas Kling.

It represents the style scope in DOM.
Also move the file under style/.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::styleSheetScope):

  • css/CSSStyleSheet.h:
  • css/InspectorCSSOMWrappers.cpp:

(WebCore::InspectorCSSOMWrappers::getWrapperForRuleInSheets):

  • css/InspectorCSSOMWrappers.h:
  • css/StyleSheetList.cpp:

(WebCore::StyleSheetList::styleSheets):
(WebCore::StyleSheetList::detachFromDocument):

  • dom/AuthorStyleSheets.cpp: Removed.
  • dom/AuthorStyleSheets.h: Removed.
  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::setContentLanguage):
(WebCore::Document::recalcStyle):
(WebCore::Document::needsStyleRecalc):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayoutIgnorePendingStylesheets):
(WebCore::Document::createStyleResolver):
(WebCore::Document::didRemoveAllPendingStylesheet):
(WebCore::Document::usesStyleBasedEditability):
(WebCore::Document::processHttpEquiv):
(WebCore::Document::preferredStylesheetSet):
(WebCore::Document::selectedStylesheetSet):
(WebCore::Document::setSelectedStylesheetSet):
(WebCore::Document::haveStylesheetsLoaded):

  • dom/Document.h:

(WebCore::Document::styleScope):
(WebCore::Document::authorStyleSheets): Deleted.

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::clearPageUserSheet):
(WebCore::ExtensionStyleSheets::updatePageUserSheet):
(WebCore::ExtensionStyleSheets::invalidateInjectedStyleSheetCache):
(WebCore::ExtensionStyleSheets::addUserStyleSheet):
(WebCore::ExtensionStyleSheets::addAuthorStyleSheetForTesting):
(WebCore::ExtensionStyleSheets::styleResolverChangedTimerFired):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::insertedIntoDocument):
(WebCore::InlineStyleSheetOwner::removedFromDocument):
(WebCore::InlineStyleSheetOwner::clearDocumentData):
(WebCore::InlineStyleSheetOwner::createSheet):
(WebCore::InlineStyleSheetOwner::sheetLoaded):
(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):

  • dom/InlineStyleSheetOwner.h:

(WebCore::InlineStyleSheetOwner::styleScope):
(WebCore::InlineStyleSheetOwner::styleSheetScope): Deleted.

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::~ProcessingInstruction):
(WebCore::ProcessingInstruction::checkStyleSheet):
(WebCore::ProcessingInstruction::sheetLoaded):
(WebCore::ProcessingInstruction::insertedInto):
(WebCore::ProcessingInstruction::removedFrom):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::styleResolver):
(WebCore::ShadowRoot::styleScope):
(WebCore::ShadowRoot::updateStyle):
(WebCore::ShadowRoot::authorStyleSheets): Deleted.

  • dom/ShadowRoot.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::~HTMLLinkElement):
(WebCore::HTMLLinkElement::setDisabledState):
(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::insertedInto):
(WebCore::HTMLLinkElement::removedFrom):
(WebCore::HTMLLinkElement::addPendingSheet):
(WebCore::HTMLLinkElement::removePendingSheet):

  • html/HTMLStyleElement.cpp:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::collectAllDocumentStyleSheets):
(WebCore::InspectorCSSAgent::forcePseudoState):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::resetPseudoStates):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setEmulatedMedia):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::getMatchedCSSRules):

  • page/Frame.cpp:

(WebCore::Frame::setPrinting):

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::setPagination):
(WebCore::FrameView::setViewportSizeForCSSViewportUnits):

  • page/Page.cpp:

(WebCore::Page::setViewMode):
(WebCore::Page::setNeedsRecalcStyleInAllFrames):
(WebCore::Page::invalidateInjectedStyleSheetCacheInAllFrames):

  • style/StyleScope.cpp: Copied from dom/AuthorStyleSheets.cpp.

(WebCore::Style::Scope::Scope):
(WebCore::Style::Scope::styleResolver):
(WebCore::Style::Scope::styleResolverIfExists):
(WebCore::Style::Scope::forNode):
(WebCore::Style::Scope::removePendingSheet):
(WebCore::Style::Scope::addStyleSheetCandidateNode):
(WebCore::Style::Scope::removeStyleSheetCandidateNode):
(WebCore::Style::Scope::collectActiveStyleSheets):
(WebCore::Style::Scope::analyzeStyleSheetChange):
(WebCore::Style::Scope::updateActiveStyleSheets):
(WebCore::Style::Scope::updateStyleResolver):
(WebCore::Style::Scope::activeStyleSheetsForInspector):
(WebCore::Style::Scope::activeStyleSheetsContains):
(WebCore::Style::Scope::flushPendingUpdate):
(WebCore::Style::Scope::clearPendingUpdate):
(WebCore::Style::Scope::scheduleActiveSetUpdate):
(WebCore::Style::Scope::didChangeCandidatesForActiveSet):
(WebCore::Style::Scope::didChangeContentsOrInterpretation):
(WebCore::Style::Scope::pendingUpdateTimerFired):
(WebCore::AuthorStyleSheets::AuthorStyleSheets): Deleted.
(WebCore::AuthorStyleSheets::styleResolver): Deleted.
(WebCore::AuthorStyleSheets::styleResolverIfExists): Deleted.
(WebCore::AuthorStyleSheets::forNode): Deleted.
(WebCore::AuthorStyleSheets::removePendingSheet): Deleted.
(WebCore::AuthorStyleSheets::addStyleSheetCandidateNode): Deleted.
(WebCore::AuthorStyleSheets::removeStyleSheetCandidateNode): Deleted.
(WebCore::AuthorStyleSheets::collectActiveStyleSheets): Deleted.
(WebCore::AuthorStyleSheets::analyzeStyleSheetChange): Deleted.
(WebCore::AuthorStyleSheets::updateActiveStyleSheets): Deleted.
(WebCore::AuthorStyleSheets::updateStyleResolver): Deleted.
(WebCore::AuthorStyleSheets::activeStyleSheetsForInspector): Deleted.
(WebCore::AuthorStyleSheets::activeStyleSheetsContains): Deleted.
(WebCore::AuthorStyleSheets::flushPendingUpdate): Deleted.
(WebCore::AuthorStyleSheets::clearPendingUpdate): Deleted.
(WebCore::AuthorStyleSheets::scheduleActiveSetUpdate): Deleted.
(WebCore::AuthorStyleSheets::didChangeCandidatesForActiveSet): Deleted.
(WebCore::AuthorStyleSheets::didChangeContentsOrInterpretation): Deleted.
(WebCore::AuthorStyleSheets::pendingUpdateTimerFired): Deleted.

  • style/StyleScope.h: Copied from dom/AuthorStyleSheets.h.
  • style/StyleTreeResolver.cpp:
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::rebuildFontFace):
(WebCore::SVGFontFaceElement::removedFrom):

  • xml/XMLTreeViewer.cpp:

(WebCore::XMLTreeViewer::transformDocumentToTreeView):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::end):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::doEnd):

9:41 AM Changeset in webkit [206916] by Alan Bujtas
  • 4 edits
    2 adds in trunk

https://vuldb.com/?cvssv3.2012 takes long time to load.
https://bugs.webkit.org/show_bug.cgi?id=162994
<rdar://problem/28593746>

Reviewed by Darin Adler.

Source/WebCore:

Stop visiting cousins when we hit the style sharing search threshold.

In addition to mistakenly ignoring the threshold at SharingResolver::findSibling(), we
continued on searching for cousin elements.

Test: fast/selectors/slow-style-sharing-with-long-cousin-list.html

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::resolve):
(WebCore::Style::SharingResolver::findSibling):
(WebCore::Style::SharingResolver::locateCousinList):

LayoutTests:

It takes ~100 seconds to run this test case without the fix (300ms with the fix).
Surely it will timeout if it gets regressed.

  • fast/selectors/slow-style-sharing-with-long-cousin-list-expected.txt: Added.
  • fast/selectors/slow-style-sharing-with-long-cousin-list.html: Added.
  • platform/mac/TestExpectations: Skip perf test in debug.
9:39 AM Changeset in webkit [206915] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

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

Caused most of GTK layout tests to crash (Requested by KaL on
#webkit).

Reverted changeset:

"[GTK] UIProcess crashes when using Japanese IM"
https://bugs.webkit.org/show_bug.cgi?id=163011
http://trac.webkit.org/changeset/206909

9:35 AM Changeset in webkit [206914] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking contentextensions tests as flaky on mac-wk2.
https://bugs.webkit.org/show_bug.cgi?id=162942

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:32 AM Changeset in webkit [206913] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

Network Session: Allow NetworkDataTask decide what to do when override is allowed for a download
https://bugs.webkit.org/show_bug.cgi?id=163010

Reviewed by Alex Christensen.

Current code always deletes the file before starting a download when allow override is True. In soup backend we
use glib API that takes care of it and tries to ensure that the original file is not deleted if the new file
creation fails for whatever reason.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::continueDecidePendingDownloadDestination): Pass allowOverride to setPendingDownloadLocation().

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::setPendingDownloadLocation): Delete the destination file if exists and allowOverride
is True.

8:10 AM Changeset in webkit [206912] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Readable Streams API] Implement generic reader functions
https://bugs.webkit.org/show_bug.cgi?id=163003

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

Implements reader generic functions defined by spec in order to prepare BYOBReader integration.
Generic functions factorize some code that is used by both DefaultReader and BYOBReader.

No change in behaviour.

  • Modules/streams/ReadableStreamDefaultReader.js:

(cancel): Rely on readableStreamReaderGenericCancel.
(releaseLock): Rely on readableStreamReaderGenericRelease.

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultReader): Rely on readableStreamReaderGenericInitialize.
(readableStreamReaderGenericInitialize): Added.
(readableStreamReaderGenericCancel): Added.
(readableStreamReaderGenericRelease): Added.

8:00 AM Changeset in webkit [206911] by Jonathan Bedard
  • 3 edits in trunk/Tools

Style Checking Error when Objective C Blocks passed as Argument
https://bugs.webkit.org/show_bug.cgi?id=162463

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(regex_for_lambdas_and_blocks): Consider case where block is passed as a function argument.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest.test_objective_c_block_as_argument): Test case where block is passed as a function argument.

5:50 AM Changeset in webkit [206910] by adam.bergkvist@ericsson.com
  • 3 edits in trunk/LayoutTests

WebRTC: Test gardening
https://bugs.webkit.org/show_bug.cgi?id=163106

Reviewed by Philippe Normand.

  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:

Update expected results to include webkit prefix on RTCPeerConnection name. (Not GTK+
specific.)

  • platform/gtk/TestExpectations:

Skip some tests since the GTK+ MediaPlayer, used with MediaStreams, isn't capable enough.

5:04 AM Changeset in webkit [206909] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK] UIProcess crashes when using Japanese IM
https://bugs.webkit.org/show_bug.cgi?id=163011

We have to reference the current GdkEventKey before we try process it
as later when the lambda body is reached the event could be already
freed.

Patch by Tomas Popela <tpopela@redhat.com> on 2016-10-07
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):

  • UIProcess/gtk/InputMethodFilter.h:

Use non-copyable Function so we can use WTFMove to pass the event to
lambda.

4:57 AM Changeset in webkit [206908] by adam.bergkvist@ericsson.com
  • 7 edits in trunk/Source/WebCore

WebRTC: Misc gardening: Use typedefs consistently and remove unused code
https://bugs.webkit.org/show_bug.cgi?id=163104

Reviewed by Philippe Normand.

Miscellaneous WebRTC gardening. See file list below for details.

Testing: No change in behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:
  • Modules/mediastream/MediaEndpointPeerConnection.h:

Move NotImplemented include to cpp-file.

  • platform/mediastream/MediaEndpoint.h:

Use MediaPayloadVector typedef (instead of Vector<RefPtr<MediaPayload>>).

  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::source): Deleted.
(WebCore::PeerMediaDescription::setSource): Deleted.
Sources are passed to updateSendConfiguration() via a source map and not added to each
PeerMediaDescription anymore. Remove unused code.

  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::getDefaultAudioPayloads):
(WebCore::MockMediaEndpoint::getDefaultVideoPayloads):
Use MediaPayloadVector typedef.

  • platform/mock/MockMediaEndpoint.h:

Use MediaPayloadVector typedef.

4:45 AM Changeset in webkit [206907] by yoon@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] Remove unneeded creation of TextureMapperPlatformLayerProxy
https://bugs.webkit.org/show_bug.cgi?id=163101

Reviewed by Žan Doberšek.

Covered by existing tests.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::ImageBufferData): Modified not to create
TextureMapperPlatformLayerProxy if it is not created for the
accelerated 2d canvas.

2:28 AM Changeset in webkit [206906] by Michael Catanzaro
  • 4 edits in trunk/Source/WebKit2

[GTK] Expose WebKitDOMHTMLInputElement APIs for form autofill
https://bugs.webkit.org/show_bug.cgi?id=163082

Reviewed by Darin Adler.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:

(webkit_dom_html_input_element_get_auto_filled): Added.
(webkit_dom_html_input_element_set_auto_filled): Added.
(webkit_dom_html_input_element_set_editing_value): Added.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
1:20 AM Changeset in webkit [206905] by Philippe Normand
  • 2 edits in trunk/Tools

[GTK] Docs build failure
https://bugs.webkit.org/show_bug.cgi?id=163102

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules: Bump to gtk-doc 1.25 to fix build errors on Debian Testing.
12:56 AM Changeset in webkit [206904] by commit-queue@webkit.org
  • 15 edits in trunk

Use 'use lib $FindBin::Bin' to append Perl module include path
https://bugs.webkit.org/show_bug.cgi?id=162256

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-07
Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/WebKitMacros.cmake: Removed '-I' options from

invocation of Perl.

Source/WebCore:

Some Perl scripts are needed to be executed with '-I' switch to
explicitly append Perl module include path. Use 'use lib' as well
as other Perl scripts do.

  • CMakeLists.txt: Removed '-I' options from invocation of Perl.
  • DerivedSources.make: Ditto.
  • bindings/scripts/generate-bindings.pl: Use 'use lib'.
  • bindings/scripts/preprocess-idls.pl: Ditto.
  • css/make-css-file-arrays.pl: Ditto.
  • css/makegrammar.pl: Ditto.
  • css/makeprop.pl: Ditto.
  • css/makevalues.pl: Ditto.
  • dom/make_dom_exceptions.pl: Ditto.
  • dom/make_event_factory.pl: Ditto.
  • dom/make_names.pl: Ditto.
  • page/make_settings.pl: Ditto.
12:02 AM Changeset in webkit [206903] by commit-queue@webkit.org
  • 45 edits in trunk/Source/WebCore

Refactor CachedResourceClient::notifyFinished
https://bugs.webkit.org/show_bug.cgi?id=162060

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-07
Reviewed by Darin Adler.

No change of behavior.

Making CachedResourceClient and CachedRawResourceClient callbacks take CachedResource references and not pointers.
In most cases, the CachedResource parameter is only used for assertions.
Removing that parameter might be contemplated in the future.
The only real case is in RenderImage.

Removed the CachedResource parameter from ContentFilter methods as code was calling these methods with null values.

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::notifyFinished):

  • dom/LoadableClassicScript.h:
  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::notifyFinished):

  • html/HTMLImageLoader.h:
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::continueAfterResponseReceived):
(WebCore::ContentFilter::continueAfterDataReceived):
(WebCore::ContentFilter::continueAfterNotifyFinished):
(WebCore::ContentFilter::deliverResourceData):

  • loader/ContentFilter.h:
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::notifyFinished):

  • loader/CrossOriginPreflightChecker.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::handleSubstituteDataLoadNow):
(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::dataReceived):

  • loader/DocumentLoader.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::dataSent):
(WebCore::DocumentThreadableLoader::responseReceived):
(WebCore::DocumentThreadableLoader::dataReceived):
(WebCore::DocumentThreadableLoader::notifyFinished):

  • loader/DocumentThreadableLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • loader/ImageLoader.h:
  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::triggerEvents):
(WebCore::LinkLoader::notifyFinished):

  • loader/LinkLoader.h:
  • loader/LinkPreloadResourceClients.cpp:

(WebCore::LinkPreloadResourceClient::triggerEvents):

  • loader/LinkPreloadResourceClients.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived):
(WebCore::MediaResource::shouldCacheResponse):
(WebCore::MediaResource::redirectReceived):
(WebCore::MediaResource::dataSent):
(WebCore::MediaResource::dataReceived):
(WebCore::MediaResource::notifyFinished):
(WebCore::MediaResource::getOrCreateReadBuffer):

  • loader/MediaResourceLoader.h:
  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):
(WebCore::TextTrackLoader::deprecatedDidReceiveCachedResource):
(WebCore::TextTrackLoader::notifyFinished):

  • loader/TextTrackLoader.h:
  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::notifyClientsDataWasReceived):
(WebCore::CachedRawResource::didAddClient):
(WebCore::CachedRawResource::redirectReceived):
(WebCore::CachedRawResource::responseReceived):
(WebCore::CachedRawResource::shouldCacheResponse):
(WebCore::CachedRawResource::didSendData):

  • loader/cache/CachedRawResourceClient.h:

(WebCore::CachedRawResourceClient::dataSent):
(WebCore::CachedRawResourceClient::responseReceived):
(WebCore::CachedRawResourceClient::shouldCacheResponse):
(WebCore::CachedRawResourceClient::dataReceived):
(WebCore::CachedRawResourceClient::redirectReceived):
(WebCore::CachedRawResourceClient::getOrCreateReadBuffer):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::checkNotify):
(WebCore::CachedResource::didAddClient):

  • loader/cache/CachedResourceClient.h:

(WebCore::CachedResourceClient::notifyFinished):
(WebCore::CachedResourceClient::deprecatedDidReceiveCachedResource):

  • loader/cache/CachedTextTrack.cpp:

(WebCore::CachedTextTrack::updateData):

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::notifyFinished):

  • loader/icon/IconLoader.h:
  • loader/soup/CachedRawResourceSoup.cpp:
  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::responseReceived):
(WebCore::WebCoreAVCFResourceLoader::dataReceived):
(WebCore::WebCoreAVCFResourceLoader::notifyFinished):
(WebCore::WebCoreAVCFResourceLoader::fulfillRequestWithResource):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h:
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::responseReceived):
(WebCore::WebCoreAVFResourceLoader::dataReceived):
(WebCore::WebCoreAVFResourceLoader::notifyFinished):
(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::notifyFinished):

  • rendering/RenderImage.h:
  • rendering/RenderLayerFilterInfo.cpp:

(WebCore::RenderLayer::FilterInfo::setRenderer):
(WebCore::RenderLayer::FilterInfo::notifyFinished):

  • rendering/RenderLayerFilterInfo.h:
  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::notifyFinished):

  • svg/SVGFEImageElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::notifyFinished):

  • svg/SVGUseElement.h:
  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::notifyFinished):

  • xml/parser/XMLDocumentParser.h:
Note: See TracTimeline for information about the timeline view.