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

Timeline



Sep 27, 2018:

11:55 PM Changeset in webkit [236593] by Basuke Suzuki
  • 3 edits
    3 adds in trunk

[Curl] Fix priority issue with multiple cookies with different level of path.
https://bugs.webkit.org/show_bug.cgi?id=189920

Reviewed by Fujii Hironori.

Source/WebCore:

When multiple cookies are stored in the database for same site, the priority of
multiple cookies which matches path criteria was not defined. The backend
implementation sqlite then returns the first matching result, which is the one
stored earlier.

Test: http/tests/cookies/cookie-with-multiple-level-path.html

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):

LayoutTests:

  • http/tests/cookies/cookie-with-multiple-level-path-expected.txt: Added.
  • http/tests/cookies/cookie-with-multiple-level-path.html: Added.
  • http/tests/cookies/resources/cookie-with-multiple-level-path.php: Added.
11:40 PM Changeset in webkit [236592] by mark.lam@apple.com
  • 7 edits in branches/safari-606-branch

Cherry-pick r236587. rdar://problem/44855118

2018-09-27 Mark Lam <mark.lam@apple.com>

ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

  • bytecode/ByValInfo.h: (JSC::ByValInfo::ByValInfo):
  • jit/JIT.cpp: (JSC::JIT::link):
  • jit/JITOpcodes.cpp: (JSC::JIT::privateCompileHasIndexedProperty):
  • jit/JITOpcodes32_64.cpp: (JSC::JIT::privateCompileHasIndexedProperty):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompileGetByVal): (JSC::JIT::privateCompileGetByValWithCachedId): (JSC::JIT::privateCompilePutByVal): (JSC::JIT::privateCompilePutByValWithCachedId):
11:08 PM Changeset in webkit [236591] by mark.lam@apple.com
  • 7 edits in branches/safari-606-branch

Cherry-pick r236576. rdar://problem/44855116

2018-09-27 Mark Lam <mark.lam@apple.com>

DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

  • dfg/DFGJITCode.h: (JSC::DFG::JITCode::appendOSREntryData):
  • dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::noticeOSREntry):
  • dfg/DFGOSREntry.cpp: (JSC::DFG::OSREntryData::dumpInContext const): (JSC::DFG::prepareOSREntry):
  • dfg/DFGOSREntry.h:
  • runtime/JSCPtrTag.h:
10:47 PM Changeset in webkit [236590] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration for Mojave queues
https://bugs.webkit.org/show_bug.cgi?id=190068

Reviewed by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/builders.jsonp:
10:34 PM Changeset in webkit [236589] by sbarati@apple.com
  • 15 edits in trunk

Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>

Reviewed by Mark Lam.

JSTests:

  • stress/regress-189132.js:

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::ARM64Assembler):
(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::unlinkedCode): Deleted.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::fillNops):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::unlinkedCode): Deleted.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::hash const):
(JSC::ARM64EHash::randomSeed const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putShort):
(JSC::AssemblerBuffer::putIntUnchecked):
(JSC::AssemblerBuffer::putInt):
(JSC::AssemblerBuffer::hash const):
(JSC::AssemblerBuffer::data const):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::fillNops):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::jumpsToLink):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::unlinkedCode): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::jumpsToLink):
(JSC::MacroAssemblerARMv7::unlinkedCode): Deleted.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::fillNops):

Source/WTF:

  • wtf/PtrTag.h:

(WTF::tagInt):

10:07 PM Changeset in webkit [236588] by sbarati@apple.com
  • 5 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236585. rdar://problem/44848947

DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>


Reviewed by Mark Lam.


dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):


dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.


dfg/DFGOSRExit.h:
dfg/DFGOSRExitCompilationInfo.h:

10:07 PM Changeset in webkit [236587] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

9:58 PM Changeset in webkit [236586] by sbarati@apple.com
  • 4 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236584. rdar://problem/44848936

Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>


Reviewed by Mark Lam.


bytecode/InlineAccess.cpp:
(JSC::linkCodeInline):


bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):


jit/JITInlineCacheGenerator.cpp:
(JSC::JITInlineCacheGenerator::finalize):

9:46 PM Changeset in webkit [236585] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>

Reviewed by Mark Lam.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.

  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilationInfo.h:
9:27 PM Changeset in webkit [236584] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>

Reviewed by Mark Lam.

  • bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::finalize):

9:22 PM Changeset in webkit [236583] by rniwa@webkit.org
  • 29 edits in trunk/Source

Use enum class in createMarkup arguments
https://bugs.webkit.org/show_bug.cgi?id=190028

Reviewed by Wenson Hsieh.

Source/WebCore:

Replaced enums used by createMarkup with equivalent enum classes: EChildrenOnly with SerializedNodes,
EAbsoluteURLs with ResolveURLs, and EFragmentSerialization with SerializationSyntax.

Also replaced the boolean convertBlocksToInlines with an enum class of the same name.

Finally, renamed the createMarkup variant which doesn't serialize style and used for innerHTML and XMLSerializer
to serializeFragment.

  • dom/Element.cpp:

(WebCore::Element::innerHTML const):
(WebCore::Element::outerHTML const):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::innerHTML const):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/HTMLInterchange.h:

(WebCore::AnnotateForInterchange): Renamed from EAnnotateForInterchange.

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::MarkupAccumulator):
(WebCore::MarkupAccumulator::serializeNodes):
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::resolveURLIfNeeded const):

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::inXMLFragmentSerialization const):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::willApplyCommand):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::inputEventDataTransfer const):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentMarkupReader::readRTFD):
(WebCore::WebContentMarkupReader::readRTF):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeImageToPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::highestAncestorToWrapMarkup):
(WebCore::createMarkupInternal):
(WebCore::createMarkup):
(WebCore::sanitizedMarkupForFragmentInDocument):
(WebCore::serializeFragment): Renamed from createMarkup. This is used for innerHTML and XMLSerializer,
which faithfully serializes the fragment without any computed style as inline styles.
(WebCore::documentTypeString):
(WebCore::createFullMarkup): Deleted two varinats used in WebKitLegacy.

  • editing/markup.h:

(WebCore::ResolveURLs): Renamed from EAbsoluteURLs.
(WebCore::ConvertBlocksToInlines): Added.
(WebCore::SerializedNodes): Renamed from EChildrenOnly.
(WebCore::SerializationSyntax): Renamed from EFragmentSerialization.

  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • inspector/DOMEditor.cpp:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::getOuterHTML):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator):
(WebCore::PageSerializer::serializeFrame):

  • page/win/DragControllerWin.cpp:

(WebCore::DragController::declareAndWriteDragImage):

  • Source/WebCore/platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeRangeToDataObject):
(WebCore::Pasteboard::writeSelection):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

  • xml/XMLSerializer.cpp:

(WebCore::XMLSerializer::serializeToString):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::xsltStylesheetPointer):
(WebCore::xmlDocPtrFromNode):

Source/WebKit:

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMNode markupString]): Moved the code from WebCore/editing/markup.cpp
(-[DOMRange markupString]): Ditto.

8:22 PM Changeset in webkit [236582] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as failing.
6:34 PM Changeset in webkit [236581] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Unreviewed infrastructure fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Remove trigger, update bot assignment.
6:25 PM Changeset in webkit [236580] by Ryan Haddad
  • 4 edits in trunk/Tools

Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
5:50 PM Changeset in webkit [236579] by Ryan Haddad
  • 2 edits in trunk/Tools

Increase the timeout for iOS Simulator data migration
https://bugs.webkit.org/show_bug.cgi?id=190059

Reviewed by Aakash Jain.

3 minutes isn't always enough time for the data migrator to complete
when booting up multiple iOS Simulators. Change the timeout to 10 minutes.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager): Create a constant for the default timeout.
(SimulatedDeviceManager.initialize_devices): Use new constant.
(SimulatedDeviceManager.swap): Ditto.
(SimulatedDeviceManager.wait_until_data_migration_is_done): Ditto.

5:23 PM Changeset in webkit [236578] by wilander@apple.com
  • 5 edits
    2 adds in trunk

Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics
https://bugs.webkit.org/show_bug.cgi?id=190055
<rdar://problem/44843460>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Corrects legacy statistics for frames and triggers a re-classification.

Source/WebKit:

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

Bumped the statisticsModelVersion to 14 to be able to
correct legacy statistics.

(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):

Now skips capture if it's the main frame.

LayoutTests:

  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-expected.txt: Added.
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html: Added.
3:37 PM Changeset in webkit [236577] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed watchOS build fix; Fix declaration for ports which USE(ENCRYPTED_MEDIA) but don't
HAVE(AVCONTENTKEYSESSION).

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3:33 PM Changeset in webkit [236576] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

  • dfg/DFGJITCode.h:

(JSC::DFG::JITCode::appendOSREntryData):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dumpInContext const):
(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:
  • runtime/JSCPtrTag.h:
3:29 PM Changeset in webkit [236575] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove duplicate CSS Properties and Values feature on status page
https://bugs.webkit.org/show_bug.cgi?id=189909

Patch by Justin Michaud <Justin Michaud> on 2018-09-27
Reviewed by Simon Fraser.

Update CSS properties and values api feature in features.json

  • features.json:
3:15 PM Changeset in webkit [236574] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.103

Tag Safari-606.2.103.

2:57 PM Changeset in webkit [236573] by Chris Dumez
  • 2 edits
    1 add
    10 deletes in trunk/LayoutTests

Regression(r236512): fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html and editing/pasteboard/emacs-ctrl-a-k-y.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=190048

Reviewed by Ryosuke Niwa.

Update editing/pasteboard/emacs-ctrl-a-k-y.html to address flakiness:

  • Stop dumping editing callbacks as some of them may get logged in a slightly different order due to IPC ordering, and those are not needed to determine that the test passes.
  • Dump the test as text to avoid needing platform-specific results.
  • editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
  • editing/pasteboard/emacs-ctrl-a-k-y.html:
  • platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/ios-wk1/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/win/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/wincairo/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Removed.
2:41 PM Changeset in webkit [236572] by jer.noble@apple.com
  • 18 edits in trunk/Source

MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
https://bugs.webkit.org/show_bug.cgi?id=189951

Reviewed by Eric Carlson.

Source/WebCore:

In order to implement the "Resume Playback" section of EME, part 4, we need to be able
to query whether the MediaPlayer is still waiting for a key after attemptToDecrypt()
has been called. Currently this involves no behavioral changes, as all modern EME ports
will still just notify the media element that they no longer need keys after one has
been added, but future ports may be able to wait for multiple keys before reporting
that it is no longer waiting for keys.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerWaitingForKeyChanged):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::mediaPlayerWaitingForKey): Deleted.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::waitingForKeyChanged):
(WebCore::MediaPlayer::waitingForKey const):
(WebCore::MediaPlayer::waitingForKey): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerWaitingForKeyChanged):
(WebCore::MediaPlayerClient::mediaPlayerWaitingForKey): Deleted.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::waitingForKey const):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::attemptToDecryptWithInstance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKey const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKeyChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::setWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::waitingForKey const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptSinkEventHandler):

Source/WTF:

Templated functions should take r-value references, as they have perfect type deduction for
all parameter types; references, l-value references, and r-value references in template function
parameters have special type deduction semantics.
See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>

Previously, const reference parameters would be copied when passed into anyOf(), and containers
of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
with r-value reference types in template parameters, a const reference is mapped to a const reference,
a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
an r-value reference.

  • wtf/Algorithms.h:

(WTF::forEach):
(WTF::anyOf):
(WTF::allOf):

2:27 PM Changeset in webkit [236571] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow access to VoiceServices features needed for accessibility
https://bugs.webkit.org/show_bug.cgi?id=190019
<rdar://problem/43621111>

Reviewed by Chris Fleizach.

Revise the sandbox to allow access to relevant WebSpeech features.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:04 PM Changeset in webkit [236570] by aestes@apple.com
  • 17 edits
    2 moves
    1 add in trunk/LayoutTests

[Payment Request] Update web platform tests
https://bugs.webkit.org/show_bug.cgi?id=190049

Reviewed by Youenn Fablet.

Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.

LayoutTests/imported/w3c:

  • web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt:
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html:
  • web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log:
  • web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html:
  • web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html:
  • web-platform-tests/payment-request/historical.https-expected.txt:
  • web-platform-tests/payment-request/historical.https.html:
  • web-platform-tests/payment-request/idlharness.https.window.js:
  • web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html.
  • web-platform-tests/payment-request/payment-response/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:04 PM Changeset in webkit [236569] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Disable test without LLInt on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=190037

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-09-27
Reviewed by Mark Lam.

Test runs out of executable memory on ARMv7, do not run
this test without LLInt enabled.

  • stress/regress-169445.js:
2:01 PM Changeset in webkit [236568] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Fix IOSMAC build
https://bugs.webkit.org/show_bug.cgi?id=190021

Reviewed by Alex Christensen.

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

1:14 PM Changeset in webkit [236567] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.8/Source/WebKit

Revert r236281. rdar://problem/44840699

1:10 PM Changeset in webkit [236566] by aboya@igalia.com
  • 3 edits
    2 adds in trunk

[MSE] Fix unwanted sample erase from the decode queue
https://bugs.webkit.org/show_bug.cgi?id=180643

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-append-acb-no-frame-lost.html

This bug reproduced when unordered appends were made. For instance, if
the application appended [0, 10) and then [20, 30), the frame at 20
would be wrongly discarded from the decode queue.

Later the application could append [10, 20) and the gap at [20, 21)
would persist in the decode queue, even if the frame remained in the
track buffer table.

Thanks to Daniel Zhang for reporting the issue.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

LayoutTests:

Added a test case for the fixed bug.

  • media/media-source/media-source-append-acb-no-frame-lost.html: Added.
1:05 PM Changeset in webkit [236565] by achristensen@apple.com
  • 16 edits in trunk

URLParser should use TextEncoding through an abstract class
https://bugs.webkit.org/show_bug.cgi?id=190027

Reviewed by Andy Estes.

Source/WebCore:

URLParser uses TextEncoding for one call to encode, which is only used for encoding the query of URLs in documents with non-UTF encodings.
There are 3 call sites that specify the TextEncoding to use from the Document, and even those call sites use a UTF encoding most of the time.
All other URL parsing is done using a well-optimized path which assumes UTF-8 encoding and uses macros from ICU headers, not a TextEncoding.
Moving the logic in this way breaks URL and URLParser's dependency on TextEncoding, which makes it possible to use in a lower-level project
without also moving TextEncoding, TextCodec, TextCodecICU, ThreadGlobalData, and the rest of WebCore and JavaScriptCore.

There is no observable change in behavior. There is now one virtual function call in a code path in URLParser that is not performance-sensitive,
and TextEncodings now have a vtable, which uses a few more bytes of memory total for WebKit.

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContext::completeURL const):

  • css/parser/CSSParserIdioms.cpp:

(WebCore::completeURL):

  • dom/Document.cpp:

(WebCore::Document::completeURL const):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::href const):
Move the call to encodingForFormSubmission from the URL constructor to the 3 call sites that specify the encoding from the Document.

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::encodingForURLParsing):

  • loader/TextResourceDecoder.h:
  • platform/URL.cpp:

(WebCore::URL::URL):

  • platform/URL.h:

(WebCore::URLTextEncoding::~URLTextEncoding):

  • platform/URLParser.cpp:

(WebCore::URLParser::encodeNonUTF8Query):
(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::URLParser::encodeQuery): Deleted.
A pointer replaces the boolean isUTF8Encoding and the TextEncoding& which had a default value of UTF8Encoding.
Now the pointer being null means that we use UTF8, and the pointer being non-null means we use that encoding.

  • platform/URLParser.h:

(WebCore::URLParser::URLParser):

  • platform/text/TextEncoding.cpp:

(WebCore::UTF7Encoding):
(WebCore::TextEncoding::encodingForFormSubmissionOrURLParsing const):
(WebCore::ASCIIEncoding):
(WebCore::Latin1Encoding):
(WebCore::UTF16BigEndianEncoding):
(WebCore::UTF16LittleEndianEncoding):
(WebCore::UTF8Encoding):
(WebCore::WindowsLatin1Encoding):
(WebCore::TextEncoding::encodingForFormSubmission const): Deleted.
Use NeverDestroyed because TextEncoding now has a virtual destructor.

  • platform/text/TextEncoding.h:

Rename encodingForFormSubmission to encodingForFormSubmissionOrURLParsing to make it more clear that we are intentionally using it for both.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):

12:44 PM Changeset in webkit [236564] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, make fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html more deterministic to address flakiness.

  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
12:40 PM Changeset in webkit [236563] by wilander@apple.com
  • 15 edits
    2 moves in trunk

Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups
https://bugs.webkit.org/show_bug.cgi?id=189980
<rdar://problem/44780645>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

Most of these changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
(WebCore::ResourceLoadObserver::logWindowCreation): Deleted.

  • loader/ResourceLoadObserver.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Now no longer logs anything to ResourceLoadObserver.

Source/WebKit:

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

These changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):

  • UIProcess/ResourceLoadStatisticsMemoryStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

LayoutTests:

This test was for the temporary compatibility fix in:
https://bugs.webkit.org/show_bug.cgi?id=183620. This change makes it into a
test that the compatibility fix is no longer there.

  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-expected.txt.
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener.html.
  • platform/ios-wk2/TestExpectations:

Removed comment and entry since https://bugs.webkit.org/show_bug.cgi?id=183714 was fixed long ago.

  • platform/ios/TestExpectations:

Changed test name.

  • platform/mac-wk2/TestExpectations:

Changed test name.

12:00 PM Changeset in webkit [236562] by Ryan Haddad
  • 2 edits in trunk/Tools

iOS Simulator bots should pass '--dedicated-simulators' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=190042

Reviewed by Aakash Jain.

To make iOS Simulator bots resilient to issues that can arise from reusing
existing simulators, ensure that dedicated simulators are created for each test run.

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

(IOSSimulatorWK2Port.run_webkit_tests_command):

11:29 AM Changeset in webkit [236561] by Ryan Haddad
  • 26 edits
    2 adds
    53 deletes in trunk

Unreviewed, rolling out r236557.

Really roll out r236557 this time because it breaks internal
builds.

Reverted changeset:

"Add VP8 support to WebRTC"
https://bugs.webkit.org/show_bug.cgi?id=189976
https://trac.webkit.org/changeset/236557

11:15 AM Changeset in webkit [236560] by Chris Dumez
  • 4 edits in trunk

Fragment should be stripped from document URL during document.open() URL propagation
https://bugs.webkit.org/show_bug.cgi?id=189374
<rdar://problem/44282736>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window-expected.txt:

Source/WebCore:

Strip the Document URL fragment during document.open() URL propagation if the entry document
is not the current document, as per:

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::open):

10:50 AM Changeset in webkit [236559] by Ryan Haddad
  • 1 edit
    14 adds in trunk/Source/ThirdParty/libwebrtc

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

236557 Broke internal builds (Requested by ryanhaddad on

#webkit).

Reverted changeset:

"Unreviewed build fix, remove *.o files that were committed in
r236557."
https://trac.webkit.org/changeset/236558

Patch by Commit Queue <commit-queue@webkit.org> on 2018-09-27

10:42 AM Changeset in webkit [236558] by Ryan Haddad
  • 1 edit
    14 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed build fix, remove *.o files that were committed in r236557.

  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse3.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/dequantize_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/iwalsh_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/mfqe_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_ssse3.asm.o: Removed.
10:16 AM Changeset in webkit [236557] by youenn@apple.com
  • 26 edits
    53 adds
    2 deletes in trunk

Add VP8 support to WebRTC
https://bugs.webkit.org/show_bug.cgi?id=189976

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:

Source/ThirdParty/libwebrtc:

Add support for conditional VP8 support for both encoding and decoding.
This boolean is used by WebCore based on the new VP8 runtime flag.

Compilation is done without using SSE4/AVX2 optimizations.

  • Configurations/libvpx.xcconfig: Added.
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Source/third_party/libvpx/run_yasm_webkit.py: Added.
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add a runtime flag to control activation of VP8 codec.
Bind this runtime flag to the video codec factories.
Test: webrtc/video-mute-vp8.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Enable VP8 codec for tests.

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • webrtc/audio-peer-connection-g722.html:
  • webrtc/routines.js:
  • webrtc/video-mute-vp8-expected.txt: Added.
  • webrtc/video-mute-vp8.html: Added.
10:06 AM Changeset in webkit [236556] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::deleteCookiesForHostnames()
https://bugs.webkit.org/show_bug.cgi?id=190040
<rdar://problem/38020368>

Reviewed by Alex Christensen.

Update NetworkStorageSession::deleteCookiesForHostnames() to properly deal with the fact
that NSHTTPCookie.domain can return nil.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

10:03 AM Changeset in webkit [236555] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

LayoutTest webrtc/video-unmute.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=172879
<rdar://problem/32548738>

Reviewed by Eric Carlson.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webrtc/video-unmute.html:

Resort on routines.js black frame routine.
Reenable test in mac and ios.

9:58 AM Changeset in webkit [236554] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

9:45 AM Changeset in webkit [236553] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use kCVPixelFormatType_420YpCbCr8Planar for capturing frames
https://bugs.webkit.org/show_bug.cgi?id=190014

Reviewed by Eric Carlson.

On Mac, rely on the monoplanar format which can be displayed without any issue.
Once rendering is fixed, we should change it back to biplanar as it is closer to what libwebrtc consumes.
Covered by manual testing.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::avVideoCapturePixelBufferFormat):
(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

9:44 AM Changeset in webkit [236552] by aestes@apple.com
  • 17 edits
    6 copies
    4 adds in trunk

[Apple Pay] Support granular errors in PaymentDetailsUpdate
https://bugs.webkit.org/show_bug.cgi?id=189938

Reviewed by Youenn Fablet.

Source/WebCore:

Implemented the shippingAddressErrors, payerErrors, and paymentMethodErrors properties on
PaymentDetailsUpdate, as specified in the Payment Request API W3C Editor's Draft of
26 September 2018.

When these errors are specified in a PaymentDetailsUpdate, map them to PaymentErrors. For
shippingAddressErrors and payerErrors, we use the "shippingContactInvalid" code and a
contact field that matches the shippingAddressError or payerError property specified.

For paymentMethodErrors, we interpret this as a sequence of ApplePayErrors, which are
converted to PaymentErrors as in Apple Pay JS.

Tests: http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html

http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html

  • DerivedSources.make: Removed some tabs and added new .idl files.
  • Modules/applepay/ApplePayError.idl: Moved ApplePayErrorCode and ApplePayErrorContactField

into their own .idl files so they can be used in MockPaymentError.

  • Modules/applepay/ApplePayErrorCode.h: Added.
  • Modules/applepay/ApplePayErrorCode.idl: Added.
  • Modules/applepay/ApplePayErrorContactField.h: Added.
  • Modules/applepay/ApplePayErrorContactField.idl: Added.
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::appendShippingContactInvalidError): Appended a "shippingContactInvalid"
PaymentError to errors if the message is non-null.
(WebCore::ApplePayPaymentHandler::computeErrors const):
(WebCore::ApplePayPaymentHandler::detailsUpdated):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated): Computed a vector of PaymentErrors
based on shippingAddressErrors, payerErrors, and paymentMethodErrors.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/paymentrequest/PaymentDetailsUpdate.h:
  • Modules/paymentrequest/PaymentDetailsUpdate.idl: Defined shippingAddressErrors,

payerErrors, and paymentMethodErrors.

  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::settleDetailsPromise): Passed shippingAddressErrors, payerErrors,
and paymentMethodErrors to the payment handler.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completeShippingContactSelection): Stored errors in m_errors.

  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.idl: Added an errors attribute.
  • testing/MockPaymentError.h: Added.
  • testing/MockPaymentError.idl: Added.

LayoutTests:

  • http/tests/resources/payment-request.js:

(validPaymentDetails):
(updateDetailsOnShippingAddressChange):

  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html: Added.
  • platform/mac-wk2/TestExpectations:
9:34 AM Changeset in webkit [236551] by achristensen@apple.com
  • 4 edits in trunk

URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=189979

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLWithUserTypedString):
(WebCore::dataForURLComponentType):
(WebCore::URLByRemovingComponentAndSubsequentCharacter):
(WebCore::URLByCanonicalizingURL):
(WebCore::originalURLData):
(WebCore::userVisibleString):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:

(TestWebKitAPI::originalDataAsString):
(TestWebKitAPI::TEST):

9:31 AM Changeset in webkit [236550] by Chris Dumez
  • 8 edits in trunk

document.open() should not propagate URLs to non-fully active documents
https://bugs.webkit.org/show_bug.cgi?id=189375
<rdar://problem/44282755>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window-expected.txt:

Source/WebCore:

Update our document.open() to not propagate URLs to non-fully active documents, as per:

A "fully active" document is defined by at:

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::isFullyActive const):

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

LayoutTests:

Update existing test to reflect behavior change. I have verified that this test was
failing in Firefox and is now passing in Firefox.

  • fast/dom/resource-locations-in-created-html-document.html:
9:27 AM Changeset in webkit [236549] by Basuke Suzuki
  • 8 edits in trunk/Tools

[Win][WebKit] Implement authentication dialog on MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=189846

Reviewed by Fujii Hironori.

It was implemented for WebKitLegacy, but not for WebKit.
Also added text field to display Realm information.

  • MiniBrowser/win/Common.cpp:

(authDialogProc):
(askCredential):
(displayAuthDialog): Deleted.

  • MiniBrowser/win/Common.h:
  • MiniBrowser/win/MiniBrowserLib.rc:
  • MiniBrowser/win/MiniBrowserLibResource.h:
  • MiniBrowser/win/ResourceLoadDelegate.cpp:

(ResourceLoadDelegate::didReceiveAuthenticationChallenge):

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createString):
(createUTF8String):
(createWKString):
(createWKURL):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didReceiveAuthenticationChallenge):
(toNullTerminatedUTF8): Deleted.

  • MiniBrowser/win/WebKitBrowserWindow.h:
9:08 AM Changeset in webkit [236548] by youenn@apple.com
  • 3 edits in trunk/Tools

Enable getUserMedia in mini browser
https://bugs.webkit.org/show_bug.cgi?id=190012

Reviewed by Eric Carlson.

Enable MediaDevices and mock capture devices.
Grant mock devices access to any getUserMedia call.
Covered by manual testing.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[WK2BrowserWindowController _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):

9:03 AM Changeset in webkit [236547] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Use sentinel buffer to detect end of append
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Philippe Normand.

This patch introduces a new mechanism to detect when an append has
been consumed completely by the demuxer. It takes advantage of the
fact that buffer pushing is synchronous: both the appsrc and the
demuxer live in the same streaming thread. When appsrc pushes a
buffer, it's actually making a qtdemux function call (it calls its
"chain" function). The demuxer will return from that call when it has
finished processing that buffer; only then the control returns to
appsrc, that can push the next buffer.

By pushing an additional buffer and capturing it in a probe we can
detect reliably when the previous buffer has been processed.
Because the pipeline only has one thread, at this point no more frames
can arrive to the appsink.

This replaces the old method of detecting end of append which relied
on the need-data event, which is more difficult to handle correctly
because it fires whenever the appsrc is empty (or below a given
level), which also happens when a buffer has not been pushed yet or
in response to a flush.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::EndOfAppendMeta::init):
(WebCore::EndOfAppendMeta::transform):
(WebCore::EndOfAppendMeta::free):
(WebCore::AppendPipeline::staticInitialization):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived): Deleted.:
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::checkEndOfAppend): Deleted.
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived): Deleted.
(WebCore::appendPipelineAppsrcDataLeaving): Deleted.
(WebCore::appendPipelineAppsrcNeedData): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
8:57 AM Changeset in webkit [236546] by Chris Dumez
  • 28 edits
    2 deletes in trunk

The WebContent process should not process incoming IPC while waiting for a sync IPC reply
https://bugs.webkit.org/show_bug.cgi?id=184183
<rdar://problem/36800576>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop test infrastructure for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption
given that this SendOption was removed from this patch.

  • page/ChromeClient.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

In recent years, we have experienced re-entrancy bugs/crashes in WebCore due to the WebContent process
processing unrelated incoming synchronous IPC when waiting for a reply to one of its synchronous IPC
to another process. In order to deal with this, we introduced a DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which we used on sendSync() calls where we knew re-entering would be unsafe. However,
it turns out to be needed for a lot of the WebProcess's sync IPC and it is error-prone. In order to
address the issue, we've decided to update the WebContent process behavior so that it processes all its
IPC in order (not matter if synchronous or not) and thus so that we never dispatch unrelated synchronous
IPC while waiting for a synchronous IPC reply, expect in cases where it would cause a deadlock.

As a result, this patch also drops support for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which is no longer needed and has some code complexity.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendSync):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::WebProcessConnection):

  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::StorageToWebProcessConnection):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionWillOpen):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::postSynchronousMessage):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier):

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::destroy):
(WebKit::PluginProxy::supportsSnapshotting const):

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::rootViewToScreen):

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

LayoutTests:

Drop test for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption as it was
removed in this patch. This SendOption is no longer useful because it is now the default behavior
for the WebContent process.

  • fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply-expected.txt: Removed.
  • fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply.html: Removed.
6:30 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
5:51 AM Changeset in webkit [236545] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK Ubuntu LTS build fix attempt after r236396.

  • platform/graphics/gstreamer/GStreamerCommon.h:
5:46 AM Changeset in webkit [236544] by Philippe Normand
  • 6 edits in trunk/LayoutTests

Unreviewed GTK WebAudio rebaseline.

This time from the 64-bit Release bot...

  • platform/gtk/webaudio/oscillator-custom-expected.wav:
  • platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
  • platform/gtk/webaudio/oscillator-sine-expected.wav:
  • platform/gtk/webaudio/oscillator-square-expected.wav:
  • platform/gtk/webaudio/oscillator-triangle-expected.wav:
5:14 AM Changeset in webkit [236543] by Philippe Normand
  • 3 edits in trunk/LayoutTests

Unreviewed GTK WebAudio rebaselines

  • platform/gtk/TestExpectations: webaudio/audioprocessingevent.html doesn't fail.
  • platform/gtk/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Rebaselined.
5:12 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:51 AM Changeset in webkit [236542] by Philippe Normand
  • 7 edits
    1 delete in trunk/LayoutTests

[GTK] Several tests are failing since r217598
https://bugs.webkit.org/show_bug.cgi?id=172809

Unreviewed, GTK platform test expectations rebaseline.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/xmlhttprequest/cache-override-expected.txt: Removed.
  • platform/gtk/webaudio/oscillator-custom-expected.wav:
  • platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
  • platform/gtk/webaudio/oscillator-sine-expected.wav:
  • platform/gtk/webaudio/oscillator-square-expected.wav:
  • platform/gtk/webaudio/oscillator-triangle-expected.wav:
2:49 AM Changeset in webkit [236541] by graouts@webkit.org
  • 206 edits
    8 deletes in trunk

[Web Animations] Turn Web Animations with CSS integration on
https://bugs.webkit.org/show_bug.cgi?id=184819
<rdar://problem/39597337>

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

  • css-animations/test_animation-cancel.html:
  • css-animations/test_animation-computed-timing.html:
  • css-animations/test_animation-currenttime.html:
  • css-animations/test_animation-finish.html:
  • css-animations/test_animation-finished.html:
  • css-animations/test_animation-id.html:
  • css-animations/test_animation-pausing.html:
  • css-animations/test_animation-playstate.html:
  • css-animations/test_animation-ready.html:
  • css-animations/test_animation-reverse.html:
  • css-animations/test_animation-starttime.html:
  • css-animations/test_animations-dynamic-changes.html:
  • css-animations/test_cssanimation-animationname.html:
  • css-animations/test_document-get-animations.html:
  • css-animations/test_effect-target.html:
  • css-animations/test_element-get-animations.html:
  • css-animations/test_event-dispatch.html:
  • css-animations/test_event-order.html:
  • css-animations/test_keyframeeffect-getkeyframes.html:
  • css-animations/test_pseudoElement-get-animations.html:
  • css-animations/test_setting-effect.html:
  • css-transitions/test_animation-cancel.html:
  • css-transitions/test_animation-computed-timing.html:
  • css-transitions/test_animation-currenttime.html:
  • css-transitions/test_animation-finished.html:
  • css-transitions/test_animation-pausing.html:
  • css-transitions/test_animation-ready.html:
  • css-transitions/test_animation-starttime.html:
  • css-transitions/test_csstransition-transitionproperty.html:
  • css-transitions/test_document-get-animations.html:
  • css-transitions/test_effect-target.html:
  • css-transitions/test_element-get-animations.html:
  • css-transitions/test_event-dispatch.html:
  • css-transitions/test_keyframeeffect-getkeyframes.html:
  • css-transitions/test_pseudoElement-get-animations.html:
  • css-transitions/test_setting-effect.html:

LayoutTests/imported/w3c:

  • web-platform-tests/css-timing-1/frames-timing-functions-output.html:
  • web-platform-tests/css/css-logical/animation-003.tentative.html:
  • web-platform-tests/css/css-scoping/keyframes-001.html:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html:
  • web-platform-tests/web-animations/interfaces/Animatable/animate.html:
  • web-platform-tests/web-animations/timing-model/animations/current-time.html:

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

Tools:

  • DumpRenderTree/TestOptions.h:

LayoutTests:

  • TestExpectations:
  • animations/3d/matrix-transform-type-animation.html:
  • animations/3d/replace-filling-transform.html:
  • animations/3d/transform-origin-vs-functions.html:
  • animations/3d/transform-perspective.html:
  • animations/additive-transform-animations.html:
  • animations/animation-border-overflow.html:
  • animations/animation-callback-timestamp.html:
  • animations/animation-controller-drt-api.html:
  • animations/animation-direction-alternate-reverse-expected.txt:
  • animations/animation-direction-alternate-reverse.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/animation-direction-reverse-hardware-opacity.html:
  • animations/animation-direction-reverse-hardware.html:
  • animations/animation-direction-reverse-non-hardware.html:
  • animations/animation-direction-reverse-timing-functions-hardware.html:
  • animations/animation-direction-reverse-timing-functions.html:
  • animations/animation-direction.html:
  • animations/animation-followed-by-transition.html:
  • animations/animation-hit-test-transform.html:
  • animations/animation-hit-test.html:
  • animations/animation-internals-api-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes.html: Removed.
  • animations/animation-internals-api.html: Removed.
  • animations/animation-offscreen-to-onscreen.html:
  • animations/animation-playstate-paused-style-resolution.html:
  • animations/big-rotation-expected.txt:
  • animations/big-rotation.html:
  • animations/change-completed-animation-transform.html:
  • animations/change-keyframes.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/duplicate-keys-expected.html:
  • animations/duplicate-keys.html:
  • animations/duplicated-keyframes-name.html:
  • animations/fill-forwards-end-state.html:
  • animations/fill-mode-forwards-zero-duration-expected.txt:
  • animations/fill-mode-forwards-zero-duration.html:
  • animations/fill-mode-removed.html:
  • animations/font-variations/font-stretch.html:
  • animations/font-variations/font-style.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • animations/font-variations/font-weight.html:
  • animations/generic-from-to.html:
  • animations/import.html:
  • animations/keyframe-multiple-timing-functions-transform.html:
  • animations/keyframe-timing-functions-transform.html:
  • animations/keyframe-timing-functions.html:
  • animations/keyframe-timing-functions2.html:
  • animations/keyframes-comma-separated.html:
  • animations/keyframes-dynamic.html:
  • animations/keyframes-infinite-iterations.html:
  • animations/keyframes-invalid-keys.html:
  • animations/keyframes-out-of-order.html:
  • animations/keyframes.html:
  • animations/leak-document-with-css-animation.html:
  • animations/lineheight-animation.html:
  • animations/longhand-timing-function.html:
  • animations/matrix-anim.html:
  • animations/missing-from-to-transforms.html:
  • animations/missing-from-to.html:
  • animations/missing-keyframe-properties-repeating.html:
  • animations/missing-keyframe-properties-timing-function.html:
  • animations/missing-keyframe-properties.html:
  • animations/missing-values-first-keyframe.html:
  • animations/missing-values-last-keyframe.html:
  • animations/multiple-animations-timing-function.html:
  • animations/multiple-animations.html:
  • animations/multiple-keyframes.html:
  • animations/negative-delay.html:
  • animations/pause-crash.html:
  • animations/play-state-start-paused.html:
  • animations/resources/animation-leak-iframe.html:
  • animations/simultaneous-start-left.html:
  • animations/simultaneous-start-transform.html:
  • animations/spring-function.html:
  • animations/stacking-context-unchanged-while-running.html:
  • animations/stop-animation-on-suspend.html:
  • animations/suspend-resume-animation-events.html:
  • animations/timing-functions.html:
  • animations/transition-and-animation-1.html:
  • animations/transition-and-animation-2.html:
  • animations/transition-and-animation-3.html:
  • animations/trigger-container-scroll-boundaries.html:
  • animations/trigger-container-scroll-empty.html:
  • animations/trigger-container-scroll-simple.html:
  • animations/unanimated-style.html:
  • animations/unprefixed-keyframes.html:
  • animations/width-using-ems.html:
  • compositing/animation/animated-composited-inside-hidden.html:
  • compositing/animation/computed-style-during-delay.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/backing/backface-visibility-flip.html:
  • compositing/backing/transform-transition-from-outside-view.html:
  • compositing/contents-scale/animating.html:
  • compositing/layer-creation/animation-overlap-with-children.html:
  • compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
  • compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
  • compositing/layer-creation/mismatched-transform-transition-overlap.html:
  • compositing/layer-creation/multiple-keyframes-animation-overlap.html:
  • compositing/layer-creation/overlap-animation-clipping.html:
  • compositing/layer-creation/overlap-animation-container.html:
  • compositing/layer-creation/overlap-animation.html:
  • compositing/layer-creation/scale-rotation-animation-overlap.html:
  • compositing/layer-creation/scale-rotation-transition-overlap.html:
  • compositing/layer-creation/translate-animation-overlap.html:
  • compositing/layer-creation/translate-scale-animation-overlap.html:
  • compositing/layer-creation/translate-scale-transition-overlap.html:
  • compositing/layer-creation/translate-transition-overlap.html:
  • compositing/overflow/overflow-positioning.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • compositing/reflections/nested-reflection-transition.html:
  • compositing/scrolling/touch-scroll-to-clip.html:
  • compositing/transitions/scale-transition-no-start.html:
  • compositing/transitions/singular-scale-transition.html:
  • compositing/visible-rect/animated-from-none.html:
  • compositing/visible-rect/animated.html:
  • css3/calc/transitions-dependent.html:
  • css3/calc/transitions.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/animation/css-animation-resuming-when-visible-with-style-change.html:
  • fast/animation/css-animation-resuming-when-visible-with-style-change2.html:
  • fast/animation/css-animation-resuming-when-visible.html:
  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/height-auto-transition-computed-value.html:
  • fast/css-generated-content/pseudo-animation.html:
  • fast/css-generated-content/pseudo-transition.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • http/wpt/css/css-animations/start-animation-001.html:
  • imported/blink/transitions/transition-not-interpolable.html:
  • imported/blink/transitions/unprefixed-transform.html:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • transitions/remove-transition-style.html:
  • transitions/transition-drt-api-delay-expected.txt: Removed.
  • transitions/transition-drt-api-delay.html: Removed.
  • transitions/transition-drt-api-expected.txt: Removed.
  • transitions/transition-drt-api.html: Removed.
  • transitions/zero-duration-with-non-zero-delay-end.html:

Sep 26, 2018:

11:24 PM Changeset in webkit [236540] by Devin Rousso
  • 24 edits
    2 copies
    3 deletes in trunk

Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
https://bugs.webkit.org/show_bug.cgi?id=182406
<rdar://problem/37131512>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints"
section, including all the various "+" buttons for creating different types of breakpoints.

Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable,
and can be re-added via the "+" button of the "Breakpoints" section. Deletable global
breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while
disabled, and will only be hidden when the user specifically deletes them.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Controllers/DOMBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/EventBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/XHRBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added.
(WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added.
(WI.DebuggerManager.prototype.isBreakpointRemovable):
(WI.DebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DebuggerManager.prototype.isBreakpointEditable):
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WI.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted.
(WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted.
Always fire add/remove events, including for special breakpoints, so that any listeners will
be able to adjust accordingly. Even though special breakpoints don't get stored in the lists
held by each manager, we are still able to enable/disable them, and that should be reported.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype.closed):
(WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
(WI.DebuggerSidebarPanel.prototype._addBreakpoint):
(WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
(WI.DebuggerSidebarPanel.prototype._mainResourceDidChange):
(WI.DebuggerSidebarPanel.prototype._breakpointRemoved):
(WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
(WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElement): Added.
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added.
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted.
(WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted.
(WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
Unify the logic for adding/removing breakpoints of all types.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement):
(WI.BreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMNodeTreeElement.js:

(WI.DOMNodeTreeElement):
(WI.DOMNodeTreeElement.prototype.ondelete):
(WI.DOMNodeTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/XHRBreakpointTreeElement.js:

(WI.XHRBreakpointTreeElement):
(WI.XHRBreakpointTreeElement.prototype.ondelete):
(WI.XHRBreakpointTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/XHRBreakpointTreeElement.css: Added.

(.breakpoint.xhr .subtitle):
Add/remove checks for whether the associated breakpoint can be deleted.

  • UserInterface/Views/DOMNodeTreeElement.css: Added.

(.tree-outline .item.dom-node .titles):
(.tree-outline .item.dom-node .icon):
(.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):
(WI.appendContextMenuItemsForDOMNodeBreakpoints): Added.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._statusImageContextmenu):

  • UserInterface/Views/XHRBreakpointPopover.js:

(WI.XHRBreakpointPopover):
(WI.XHRBreakpointPopover.prototype.get breakpoint): Added.
(WI.XHRBreakpointPopover.prototype.show):
(WI.XHRBreakpointPopover.prototype.dismiss): Added.
(WI.XHRBreakpointPopover.prototype._createEditor):
(WI.XHRBreakpointPopover.prototype._updateEditor):
(WI.XHRBreakpointPopover.prototype.get result): Deleted.
(WI.XHRBreakpointPopover.prototype.get type): Deleted.
(WI.XHRBreakpointPopover.prototype.get value): Deleted.
Drive-by: remove the erroneous usage of WI.InputPopover.Result.

LayoutTests:

  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
  • inspector/debugger/break-on-uncaught-exception.html:
  • inspector/debugger/breakpoints-disabled-expected.txt:
  • inspector/debugger/breakpoints-disabled.html:
  • inspector/debugger/pause-reason.html:
  • inspector/debugger/setPauseOnAssertions.html:
  • inspector/worker/debugger-pause.html:
11:09 PM Changeset in webkit [236539] by Devin Rousso
  • 12 edits in trunk

Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
https://bugs.webkit.org/show_bug.cgi?id=189860

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Base/Utilities.js:
  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.prototype.process.getContent):
(WI.RecordingAction.prototype.process):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement.prototype.onattach):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype._updateImageGrid):
Drive-by: don't attempt to show the image grid if we haven't called initialized yet.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the WI.RecordingContentView is showing before applying the action.

LayoutTests:

  • inspector/unit-tests/array-utilities-expected.txt:
  • inspector/unit-tests/array-utilities.html:
9:36 PM Changeset in webkit [236538] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Options::useSeparatedWXHeap() should always be false when ENABLE(FAST_JIT_PERMISSIONS) && CPU(ARM64E).
https://bugs.webkit.org/show_bug.cgi?id=190022
<rdar://problem/44800928>

Reviewed by Saam Barati.

  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

7:00 PM Changeset in webkit [236537] by Justin Fan
  • 9 edits in trunk/LayoutTests

WebGL 2: updated passing test expectations for deqp/primitiverestart
https://bugs.webkit.org/show_bug.cgi?id=189981

Reviewed by Jon Lee.

Test-expectation updates for trac.webkit.org/changeset/236490; these are still to be skipped on ews.

  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt:
6:42 PM Changeset in webkit [236536] by commit-queue@webkit.org
  • 6 edits in trunk

Video track clone cannot preserve original property
https://bugs.webkit.org/show_bug.cgi?id=189872
<rdar://problem/44706579>

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-26
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt:

Source/WebCore:

Fix the issue that the cloned track created by canvas.captureStream().getVideoTracks() cannot keep some attributes, such as enabled.
Updated a testcase expected result:
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):
(WebCore::CanvasCaptureMediaStreamTrack::create):
(WebCore::CanvasCaptureMediaStreamTrack::clone):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.h:
6:24 PM Changeset in webkit [236535] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.8

Tag Safari-607.1.8.

5:14 PM Changeset in webkit [236534] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Assert that performJITMemcpy() is always called with instruction size aligned addresses on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=190016
<rdar://problem/44802875>

Reviewed by Saam Barati.

Also assert in performJITMemcpy() that the entire buffer to be copied will fit in
JIT memory.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::replaceWithVMHalt):
(JSC::ARM64Assembler::replaceWithJump):
(JSC::ARM64Assembler::replaceWithLoad):
(JSC::ARM64Assembler::replaceWithAddressComputation):
(JSC::ARM64Assembler::setPointer):
(JSC::ARM64Assembler::repatchInt32):
(JSC::ARM64Assembler::repatchCompact):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

4:35 PM Changeset in webkit [236533] by achristensen@apple.com
  • 8 edits in trunk

Unreviewed, rolling out r236524.

Broke API tests

Reverted changeset:

"URLWithUserTypedString should return nil for URLs deemed to
be invalid by WebCore::URL"
https://bugs.webkit.org/show_bug.cgi?id=189979
https://trac.webkit.org/changeset/236524

4:23 PM Changeset in webkit [236532] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: new watch expression popover has light background
https://bugs.webkit.org/show_bug.cgi?id=190013
<rdar://problem/44810000>

Reviewed by Matt Baker.

Make the background dark to match the CodeMirror editor background.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(@media (prefers-dark-interface)):
(.watch-expression-editor):

4:10 PM Changeset in webkit [236531] by pvollan@apple.com
  • 24 edits
    3 adds in trunk

WebVTT cue alignment broken
https://bugs.webkit.org/show_bug.cgi?id=190004

Reviewed by Eric Carlson.

Source/WebCore:

If the position of the queue is unspecified, the default value of 50 was used, which is incorrect.
This patch also updates the API according to https://w3c.github.io/webvtt/#the-vttcue-interface.
The position attribute should not be a double, but either a double or the "auto" keyword. Parts
of this patch is inspired by the associated code in the Chromium project.

Test: media/track/track-cue-left-align.html

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::setPosition):

  • html/track/TextTrackCueGeneric.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::initialize):
(WebCore::VTTCue::position const):
(WebCore::VTTCue::setPosition):
(WebCore::VTTCue::textPositionIsAuto const):
(WebCore::VTTCue::calculateComputedTextPosition const):
(WebCore::VTTCue::calculateDisplayParameters):
(WebCore::VTTCue::toJSON const):

  • html/track/VTTCue.h:

(WebCore::VTTCue::position const): Deleted.

  • html/track/VTTCue.idl:

LayoutTests:

  • media/track/captions-webvtt/left-align.vtt: Added.
  • media/track/track-add-remove-cue-expected.txt:
  • media/track/track-add-remove-cue.html:
  • media/track/track-cue-left-align-expected-mismatch.html: Added.
  • media/track/track-cue-left-align.html: Added.
  • media/track/track-cue-mutable-expected.txt:
  • media/track/track-cue-mutable.html:
  • media/track/track-vttcue-expected.txt:
  • media/track/track-vttcue.html:
  • media/track/track-webvtt-tc013-settings-expected.txt:
  • media/track/track-webvtt-tc013-settings.html:
  • media/track/track-webvtt-tc015-positioning-expected.txt:
  • media/track/track-webvtt-tc015-positioning.html:
  • media/track/track-webvtt-tc016-align-positioning-expected.txt:
  • media/track/track-webvtt-tc016-align-positioning.html:
  • media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
  • media/track/track-webvtt-tc018-align-text-line-position.html:
  • media/track/track-webvtt-tc021-valign-expected.txt:
  • media/track/track-webvtt-tc021-valign.html:
  • media/video-test.js:

(testCues):

3:31 PM Changeset in webkit [236530] by commit-queue@webkit.org
  • 16 edits
    4 adds in trunk

Allow override of viewport configuration.
https://bugs.webkit.org/show_bug.cgi?id=188772.
<rdar://problem/43538892>.

Patch by James Savage <James Savage> on 2018-09-26
Reviewed by Simon Fraser.

Source/WebCore:

  • page/Settings.yaml:
  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::nativeWebpageParameters): Provide a viewport configuration
similar to width=device-width, with initial scale set to 1.

  • page/ViewportConfiguration.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setShouldIgnoreMetaViewport:]):
(-[WKPreferences _shouldIgnoreMetaViewport]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::viewportPropertiesDidChange): If we are ignoring the
<meta> viewport, short circuit calling setViewportArguments() and do not
do any updates.
(WebKit::WebPage::didCommitLoad): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetViewportDefaultConfiguration): Select the default
configuration based on UIProcess setting.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader): Parse new test option key from comments.

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest): Handle new test option by
modifying the web view's preferences accordingly.

LayoutTests:

Add test proving that a document without a meta viewport specifying
width=device-width still gets a layout when this setting is enabled. I also
added a baseline case to prove that without this setting we do not layout
at device width.

  • fast/viewport/ios/ipad/empty-viewport-expected.txt: Added.
  • fast/viewport/ios/ipad/empty-viewport.html: Added.
  • fast/viewport/ios/ipad/meta-viewport-disabled-expected.txt: Added.
  • fast/viewport/ios/ipad/meta-viewport-disabled.html: Added.
3:18 PM Changeset in webkit [236529] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r236512): WKWebViewCandidateTests.SoftSpaceReplacementAfterCandidateInsertionWithoutReplacement API test is failing
https://bugs.webkit.org/show_bug.cgi?id=190007

Reviewed by Alex Christensen.

Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption from EditorStateChanged IPC calls to restore
pre-r236512 behavior. Before r236512, this option had no effect on IPC from the WebContent to the UIProcess
because the m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage flag was set
on that IPC::Connection. However, after r236512, m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage
is no longer set on the connection, and the DispatchMessageEvenWhenWaitingForSyncReply SendOption was
causing this message to get processed out of order with regards to other async IPC, thus causing the
API test failure.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::sendPartialEditorStateAndSchedulePostLayoutUpdate):

2:58 PM Changeset in webkit [236528] by achristensen@apple.com
  • 4 edits in trunk

URLs with mismatched surrogate pairs in the host should fail to parse
https://bugs.webkit.org/show_bug.cgi?id=190005

Reviewed by Chris Dumez.

Source/WebCore:

Elsewhere in the URLParser, when we encounter mismatched surrogate pairs we use the replacement character,
but that just fails later on in domainToASCII, so we may as well just fail.
This behavior matches Chrome, but is unclear in the spec. There are no valid uses of hosts containing mismatched surrogate pairs.
Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parseHostAndPort):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

2:56 PM Changeset in webkit [236527] by achristensen@apple.com
  • 5 edits in trunk

uidna_nameToASCII only needs a buffer capacity of 64
https://bugs.webkit.org/show_bug.cgi?id=190006

Reviewed by Chris Dumez.

Source/WebCore:

This is specified in https://www.unicode.org/reports/tr46/#ToASCII
This is how Chrome and Firefox also behave with long unicode hosts.

  • platform/URLParser.cpp:

(WebCore::URLParser::domainToASCII):

LayoutTests:

  • fast/dom/DOMURL/parsing.html:
2:53 PM Changeset in webkit [236526] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.7.3/Source/WebCore/PAL

Cherry-pick r236366. rdar://problem/44808777

Unreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.

  • pal/spi/mac/AVFoundationSPI.h:

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

2:53 PM Changeset in webkit [236525] by Kocsen Chung
  • 4 edits in tags/Safari-607.1.7.3/Source/WebCore

Cherry-pick r236350. rdar://problem/44808777

Move AVVideoPerformanceMetrics into AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=189842

Reviewed by Jon Lee.

Source/WebCore:

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

Source/WebCore/PAL:

  • pal/spi/mac/AVFoundationSPI.h:

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

2:52 PM Changeset in webkit [236524] by achristensen@apple.com
  • 4 edits in trunk

URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=189979
<rdar://problem/44119696>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by an API test.

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLWithData):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

2:48 PM Changeset in webkit [236523] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix UAF after r236463
https://bugs.webkit.org/show_bug.cgi?id=190011

Reviewed by Chris Dumez.

I had removed an early return in NetworkResourceLoader::continueDidReceiveResponse.
Reading the (probably) null m_responseCompletionHandler was reading after the object had been destroyed.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueDidReceiveResponse):

1:33 PM Changeset in webkit [236522] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Selection should work across shadow boundary when initiated by a mouse drag
https://bugs.webkit.org/show_bug.cgi?id=151380
<rdar://problem/24363872>

Revert the change that I said I would from r236519.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):

1:31 PM Changeset in webkit [236521] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

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

It is breaking some WebRTC tests (Requested by youenn on
#webkit).

Reverted changeset:

"[MediaStream] Clean up RealtimeMediaSource settings change
handling"
https://bugs.webkit.org/show_bug.cgi?id=189998
https://trac.webkit.org/changeset/236511

1:04 PM Changeset in webkit [236520] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Move Symbol API to SPI
https://bugs.webkit.org/show_bug.cgi?id=189946

Reviewed by Michael Saboff.

Some of the property access methods on JSValue needed to be moved
to a category so that SPI overloads don't result in a compiler
error for internal users.

Additionally, this patch does not move the new enum entry for
Symbols in the JSType enumeration.

  • API/JSObjectRef.h:
  • API/JSObjectRefPrivate.h:
  • API/JSValue.h:
  • API/JSValuePrivate.h:
  • API/JSValueRef.h:
1:02 PM Changeset in webkit [236519] by rniwa@webkit.org
  • 16 edits
    18 adds in trunk

Selection should work across shadow boundary when initiated by a mouse drag
https://bugs.webkit.org/show_bug.cgi?id=151380
<rdar://problem/24363872>

Source/WebCore:

Reviewed by Antti Koivisto and Wenson Hsieh.

This patch adds the basic support for selecting content across shadow DOM boundaries to VisibleSelection,
which is enough to allow users to select content across shadow DOM boundaries via a mouse drag.

This is the first step in allowing users to select, copy and paste content across shadow DOM boundaries,
which is a serious user experience regression right now. The new behavior is disabled by default under
an interal debug feature flag: selectionAcrossShadowBoundariesEnabled.

Like Chrome, we are not going to support selecting editable content across shadow DOM boundaries since
we'd have to generalize every editing commands to make that work, and there aren't any HTML editors that
use shadow DOM boundaries within an editable region yet. For simplicity, we also don't support extending
a selection out of a shadow root which resides inside an editing region.

The keyboard based navigation & manipulation of selection as well as allowing copy & paste of content
across shadow DOM boundaries will be implemented by separate patches. DOMSelection will not expose this new
behavior either. This is tracked in the spec as https://github.com/w3c/webcomponents/issues/79

Tests: editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html

editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html
editing/selection/selection-across-shadow-boundaries-readonly-1.html
editing/selection/selection-across-shadow-boundaries-readonly-2.html
editing/selection/selection-across-shadow-boundaries-readonly-3.html
editing/selection/selection-across-shadow-boundaries-user-select-all-1.html

  • editing/VisibleSelection.cpp:

(WebCore::isInUserAgentShadowRootOrHasEditableShadowAncestor): Added.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): When the feature is enabled,
allow crossing shadow DOM boundaries except when either end is inside an user agent shadow root, or one of
its shadow includign ancestor is inside an editable region. The latter check is needed to disallow
an extension of a selection starting in a shadow tree inside a non-editable region inside an editable region
to outside the editable region. The rest of the editing code is not ready to deal with selection like that.

  • page/Settings.yaml: Added an internal debug feature to enable this new behavior.

Source/WebKit:

Reviewed by Antti Koivisto.

Added SelectionAcrossShadowBoundariesEnabled as an internal debug feature,
and moved CSSCustomPropertiesAndValuesEnabled to where other experimental features are located.

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

Reviewed by Wenson Hsieh.

Added selectionAcrossShadowBoundariesEnabled as a preference to be used in DumpRenderTree.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences selectionAcrossShadowBoundariesEnabled]):
(-[WebPreferences setSelectionAcrossShadowBoundariesEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

Reviewed by Wenson Hsieh.

Added the support for internal:selectionAcrossShadowBoundariesEnabled test option.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
(setWebPreferencesForTestOptions):

LayoutTests:

Reviewed by Antti Koivisto and Wenson Hsieh.

Added regression tests using ref tests since getSelection() doesn't expose any node inside a shadow tree.

  • editing/selection/selection-across-shadow-boundaries-mixed-editability-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-2-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-3-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-4-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-5-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-1.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-2-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-2.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-3-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-3.html: Added.
  • editing/selection/selection-across-shadow-boundaries-user-select-all-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-user-select-all-1.html: Added.
12:47 PM Changeset in webkit [236518] by rniwa@webkit.org
  • 2 edits in trunk/Tools

MiniBrowser doesn't respect default enabled-ness of experimental and internal debug features
https://bugs.webkit.org/show_bug.cgi?id=189989

Reviewed by Simon Fraser.

When the preference isn't found in user defaults, use the default value of each feature's enabledness.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

12:29 PM Changeset in webkit [236517] by Chris Dumez
  • 4 edits in trunk

Ignore-opens-during-unload counter of a parent should apply to its children during beforeunload event
https://bugs.webkit.org/show_bug.cgi?id=189376
<rdar://problem/44282754>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline existing test now that one more check is passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window-expected.txt:

Source/WebCore:

Make sure the Ignore-opens-during-unload counter of a parent stays incremented while we are firing the
beforeunload event for its descendants, as per:

No new tests, rebaselined existing tests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

12:16 PM Changeset in webkit [236516] by Justin Fan
  • 2 edits in trunk/Source/WebCore

WebGL 2: Adding logging to in-progress features
https://bugs.webkit.org/show_bug.cgi?id=189978

Reviewed by Jon Lee.

Logging will allow us to better identify the most in-demand WebGL 2 features and prioritize our efforts.

No tests as no change in WebGL functionality.

  • html/canvas/WebGL2RenderingContext.cpp: Added logging statement to every function not yet implemented.

(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::framebufferTextureLayer):
(WebCore::WebGL2RenderingContext::invalidateFramebuffer):
(WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
(WebCore::WebGL2RenderingContext::readBuffer):
(WebCore::WebGL2RenderingContext::texStorage3D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::copyTexSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage2D):
(WebCore::WebGL2RenderingContext::compressedTexImage3D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage3D):
(WebCore::WebGL2RenderingContext::getFragDataLocation):
(WebCore::WebGL2RenderingContext::uniform1ui):
(WebCore::WebGL2RenderingContext::uniform2ui):
(WebCore::WebGL2RenderingContext::uniform3ui):
(WebCore::WebGL2RenderingContext::uniform4ui):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::vertexAttribI4i):
(WebCore::WebGL2RenderingContext::vertexAttribI4iv):
(WebCore::WebGL2RenderingContext::vertexAttribI4ui):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::vertexAttribIPointer):
(WebCore::WebGL2RenderingContext::drawRangeElements):
(WebCore::WebGL2RenderingContext::createQuery):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::createSampler):
(WebCore::WebGL2RenderingContext::deleteSampler):
(WebCore::WebGL2RenderingContext::isSampler):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::samplerParameteri):
(WebCore::WebGL2RenderingContext::samplerParameterf):
(WebCore::WebGL2RenderingContext::getSamplerParameter):
(WebCore::WebGL2RenderingContext::fenceSync):
(WebCore::WebGL2RenderingContext::isSync):
(WebCore::WebGL2RenderingContext::deleteSync):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::waitSync):
(WebCore::WebGL2RenderingContext::getSyncParameter):
(WebCore::WebGL2RenderingContext::createTransformFeedback):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::isTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::pauseTransformFeedback):
(WebCore::WebGL2RenderingContext::resumeTransformFeedback):
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::bindBufferRange):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):

12:13 PM Changeset in webkit [236515] by aboya@igalia.com
  • 3 edits
    5 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=190002

11:57 AM Changeset in webkit [236514] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

We should zero unused property storage when rebalancing array storage.
https://bugs.webkit.org/show_bug.cgi?id=188151

Reviewed by Michael Saboff.

JSTests:

  • stress/splice-should-zero-property-storage-when-rebalancing.js: Added.

Source/JavaScriptCore:

In unshiftCountSlowCase we sometimes will move property storage to the right even when net adding elements.
This can happen because we "balance" the pre/post-capacity in that code so we need to zero the unused
property storage.

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):

11:45 AM Changeset in webkit [236513] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, apply post-landing review comments after r236512.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):

11:38 AM Changeset in webkit [236512] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
https://bugs.webkit.org/show_bug.cgi?id=189927

Reviewed by Geoffrey Garen.

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
in order to avoid deadlocks. This is not an issue currently because the WebProcess does process
incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future
in order to avoid bugs caused by re-entering WebCore at unsafe times.

The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing
a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame /
DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync
IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about
the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial
about:blank and fragment navigations.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption when sending the
DidCreateMainFrame / DidCreateSubframe IPC. Previously, this SendOption has
no effect because the IPC::Connection would have the
m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage
flag set to true. However, now that we stop setting this flag on the IPC
connection from the WebProcess to the UIProcess, it would lead to those
IPC messages getting processed out of order with regards to the
DecidePolicyForNavigationAsync asynchronous IPC. DidCreateMainFrame would
sometimes get processed *after* the DecidePolicyForNavigationAsync IPC
and we would not know about the frameID yet.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

11:21 AM Changeset in webkit [236511] by eric.carlson@apple.com
  • 8 edits in trunk/Source/WebCore

[MediaStream] Clean up RealtimeMediaSource settings change handling
https://bugs.webkit.org/show_bug.cgi?id=189998
<rdar://problem/44797884>

Reviewed by Youenn Fablet.

No new tests, no change in functionality.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
(WebCore::RealtimeMediaSource::setSize):
(WebCore::RealtimeMediaSource::setFrameRate):
(WebCore::RealtimeMediaSource::setAspectRatio):
(WebCore::RealtimeMediaSource::setFacingMode):
(WebCore::RealtimeMediaSource::setVolume):
(WebCore::RealtimeMediaSource::setSampleRate):
(WebCore::RealtimeMediaSource::setSampleSize):
(WebCore::RealtimeMediaSource::setEchoCancellation):
(WebCore::RealtimeMediaSource::settingsDidChange): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::settingsDidChange):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::settingsDidChange):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::settingsDidChange):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::settingsDidChange):

11:20 AM Changeset in webkit [236510] by bshafiei@apple.com
  • 3 edits
    2 adds in tags/Safari-607.1.7.3

Cherry-pick r236288. rdar://problem/43659749

Release assert under RenderView::pageOrViewLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=189798
<rdar://problem/43659749>

Reviewed by Simon Fraser.

Source/WebCore:

Only the mainframe's render view is sized to the page while printing.
Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize.

Test: printing/crash-while-formatting-subframe-for-printing.html

  • rendering/RenderView.cpp: (WebCore::RenderView::pageOrViewLogicalHeight const):

LayoutTests:

  • printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
  • printing/crash-while-formatting-subframe-for-printing.html: Added.

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

11:20 AM Changeset in webkit [236509] by bshafiei@apple.com
  • 2 edits in tags/Safari-607.1.7.3/Source/WebCore

Cherry-pick r236254. rdar://problem/44182860

Fix crash under FontCache::purgeInactiveFontData() when a memory warning fires
https://bugs.webkit.org/show_bug.cgi?id=189722
rdar://problem/44182860

Reviewed by Myles C. Maxfield.

Hashing of FontPlatformData for cachedFonts() is somewhat broken because CFEqual() on CTFont
can return false when the fonts are actually the same, and have the same CFHash(). This
can result in multiple entries in cachedFonts() with the same Font.

Then in FontCache::purgeInactiveFontData(), the loop that appends fonts to fontsToDelete
gets the value by reference, and WTFMoves it into fontsToDelete. This nulls out all
the entries sharing the same value, leaving null entries in the hash table.
We later crash at font->hasOneRef() when using one of those null entries.

Fix by making a copy of the RefPtr<Font> in the loop, so the WTFMove doesn't nuke
the hash table entries. The entries will get removed at cachedFonts().remove() lower down.

  • platform/graphics/FontCache.cpp: (WebCore::FontCache::purgeInactiveFontData):

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

11:16 AM Changeset in webkit [236508] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.7.3/Source

Versioning.

11:14 AM Changeset in webkit [236507] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.7.3

Tag Safari-607.1.7.3.

10:44 AM Changeset in webkit [236506] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 66

Added a tag for Safari Technology Preview release 66.

9:12 AM Changeset in webkit [236505] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add scope verification handling
https://bugs.webkit.org/show_bug.cgi?id=189780

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

9:12 AM Changeset in webkit [236504] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Marking two more media-fragments/ tests as flakey after the iOS12 update
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

  • platform/ios/TestExpectations:
8:59 AM Changeset in webkit [236503] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak] Bump to apr 1.6.5

Version 1.6.3 is no longer available on Apache's website.

Rubber-stamped by Michael Catanzaro.

  • flatpak/org.webkit.WebKit.yaml:
8:48 AM Changeset in webkit [236502] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed, rolling out r236498.

This wasn't intentionally committed

Reverted changeset:

"Import libvpx source code"
https://bugs.webkit.org/show_bug.cgi?id=189954
https://trac.webkit.org/changeset/236498

7:34 AM Changeset in webkit [236501] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

[Web Animations] Ensure renderers with accelerated animations have layers
https://bugs.webkit.org/show_bug.cgi?id=189990
<rdar://problem/44791222>

Reviewed by Zalan Bujtas.

We have done some work already in webkit.org/b/189784 to prevent never-ending calls to DocumentTimeline::updateAnimations(). This was due to
the change made for webkit.org/b/186930 where we queued calls to updateAnimations() in KeyframeEffectReadOnly::applyPendingAcceleratedActions()
while we were waiting for a renderer with a layer backing for a given animation target. Instead of doing this, we now ensure renderers always
have a layer when they have an accelerated animation applied.

No new tests, this is already covered by webanimations/accelerated-animation-with-delay.html and webanimations/opacity-animation-yields-compositing-span.html
which respectively check that we can apply an accelerated animation to a non-positioned block and an inline element.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const): This method should have been marked const all along and it is
now required so it can be called through RenderBox::requiresLayer() and RenderInline::requiresLayer().
(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated): Deleted.

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Stop enqueuing the accelerated actions in case we're lacking a composited renderer
since this situation should no longer arise.

  • rendering/RenderBox.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations.
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const): Query the document timeline, if it exists, to check that this renderer's element
has accelerated animations applied.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations.
5:06 AM Changeset in webkit [236500] by Antti Koivisto
  • 14 edits in trunk/Source/WebKit

REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on iOS
https://bugs.webkit.org/show_bug.cgi?id=189695
<rdar://problem/44551146>

Reviewed by Simon Fraser.

Freeze the layers on UI process side during process swap.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processWillChange]):

Shared work of _processWillSwap and _processDidExit.

(-[WKWebView _processWillSwap]):
(-[WKWebView _processDidExit]):

Split into two functions. Don't reset scroll position and similar when doing navigation swap.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::detachRemoteLayerTreeHost):

Add to way to detach RemoteLayerTreeHost from the drawing area. Inert RemoteLayerTreeHost will host
the frozen layers.

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilAnyUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::prepareForAppSuspension):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hasVisibleContent const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::animationDidStart):
(WebKit::RemoteLayerTreeHost::animationDidEnd):
(WebKit::RemoteLayerTreeHost::detachFromDrawingArea):

Clear the DrawingArea backpointer.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::resetState):

Detach and save the current RemoteLayerTreeHost on navigation swap.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::processWillSwap):

Avoid reseting the scroll position.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):

Drop the frozen layers after setting the new root layer.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):

For completeness do this also on Mac (where remote layers are currently not used).

3:45 AM Changeset in webkit [236499] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] offlineasm parser should handle CRLF in asm files
https://bugs.webkit.org/show_bug.cgi?id=189949

Patch by Koby Boyango <koby.b@mce.systems> on 2018-09-26
Reviewed by Mark Lam.

  • offlineasm/parser.rb:
Note: See TracTimeline for information about the timeline view.