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

Timeline



May 4, 2017:

11:37 PM Changeset in webkit [216235] by BJ Burg
  • 2 edits in trunk/Tools

lldb_webkit.py should provide a type summary for WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=171670

Reviewed by Jer Noble.

Just print out the underlying string using the WTFString provider.

  • lldb/lldb_webkit.py:

(lldb_init_module):
(WebCoreURL_SummaryProvider):
(WebCoreURLProvider):
(WebCoreURLProvider.
init):
(WebCoreURLProvider.to_string):

10:37 PM Changeset in webkit [216234] by commit-queue@webkit.org
  • 64 edits
    6 copies
    73 adds in trunk

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

Multiple LayoutTests crashing in Document::page() (Requested
by ap on #webkit).

Reverted changeset:

"Remove support for legacy Notifications"
https://bugs.webkit.org/show_bug.cgi?id=171487
http://trac.webkit.org/changeset/216206

10:09 PM Changeset in webkit [216233] by Chris Dumez
  • 37 edits in trunk/Source/WebCore

Drop remaining uses of PassRefPtr from CompositeEditCommand
https://bugs.webkit.org/show_bug.cgi?id=171645

Reviewed by Darin Adler.

Drop remaining uses of PassRefPtr from CompositeEditCommand.

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
(WebCore::ApplyBlockElementCommand::endOfNextParagraphSplittingTextNodesIfNeeded):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement):
(WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes):
(WebCore::ApplyStyleCommand::removeImplicitlyStyledElement):
(WebCore::ApplyStyleCommand::removeCSSStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
(WebCore::ApplyStyleCommand::splitTextAtStart):
(WebCore::ApplyStyleCommand::splitTextAtEnd):
(WebCore::ApplyStyleCommand::splitTextElementAtStart):
(WebCore::ApplyStyleCommand::splitTextElementAtEnd):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::addBlockStyle):
(WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
(WebCore::ApplyStyleCommand::joinChildTextNodes):

  • editing/BreakBlockquoteCommand.cpp:

(WebCore::BreakBlockquoteCommand::doApply):

  • editing/CompositeEditCommand.cpp:

(WebCore::applyCommand):
(WebCore::CompositeEditCommand::insertNodeAt):
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::removeNode):
(WebCore::CompositeEditCommand::removeNodePreservingChildren):
(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors):
(WebCore::CompositeEditCommand::moveRemainingSiblingsToNewParent):
(WebCore::CompositeEditCommand::replaceElementWithSpanPreservingChildrenAndAttributes):
(WebCore::CompositeEditCommand::prune):
(WebCore::CompositeEditCommand::splitTextNode):
(WebCore::CompositeEditCommand::splitElement):
(WebCore::CompositeEditCommand::mergeIdenticalElements):
(WebCore::CompositeEditCommand::splitTextNodeContainingElement):
(WebCore::CompositeEditCommand::positionOutsideTabSpan):
(WebCore::CompositeEditCommand::removeNodeAttribute):
(WebCore::CompositeEditCommand::setNodeAttribute):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::removePlaceholderAt):
(WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
(WebCore::CompositeEditCommand::pushAnchorElementDown):
(WebCore::CompositeEditCommand::cleanupAfterDeletion):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete):
(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::removePreviouslySelectedEmptyTableRows):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):

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

(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::handleAcceptedCandidate):

  • editing/EditorCommand.cpp:

(WebCore::executeFormatBlock):

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::outdentParagraph):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::fixOrphanedListChild):
(WebCore::InsertListCommand::doApplyForSingleParagraph):
(WebCore::InsertListCommand::unlistifyParagraph):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::insertTab):

  • editing/ModifySelectionListLevel.cpp:

(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore):
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter):
(WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange):
(WebCore::DecreaseSelectionListLevelCommand::doApply):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
(WebCore::RemoveNodePreservingChildrenCommand::doApply):

  • editing/RemoveNodePreservingChildrenCommand.h:

(WebCore::RemoveNodePreservingChildrenCommand::create):

  • editing/ReplaceNodeWithSpanCommand.cpp:

(WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand):
(WebCore::ReplaceNodeWithSpanCommand::doApply):
(WebCore::ReplaceNodeWithSpanCommand::doUnapply):
(WebCore::ReplaceNodeWithSpanCommand::getNodesInCommand):

  • editing/ReplaceNodeWithSpanCommand.h:

(WebCore::ReplaceNodeWithSpanCommand::create):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::removeNodePreservingChildren):
(WebCore::ReplacementFragment::removeInterchangeNodes):
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
(WebCore::handleStyleSpansBeforeInsertion):
(WebCore::ReplaceSelectionCommand::handleStyleSpans):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
(WebCore::ReplaceSelectionCommand::insertAsListItems):
(WebCore::ReplaceSelectionCommand::performTrivialReplace):

  • editing/SetNodeAttributeCommand.cpp:

(WebCore::SetNodeAttributeCommand::SetNodeAttributeCommand):
(WebCore::SetNodeAttributeCommand::getNodesInCommand):

  • editing/SetNodeAttributeCommand.h:

(WebCore::SetNodeAttributeCommand::create):

  • editing/SimplifyMarkupCommand.cpp:

(WebCore::SimplifyMarkupCommand::doApply):
(WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove):

  • editing/SimplifyMarkupCommand.h:
  • editing/SplitElementCommand.cpp:

(WebCore::SplitElementCommand::SplitElementCommand):
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::getNodesInCommand):

  • editing/SplitElementCommand.h:

(WebCore::SplitElementCommand::create):

  • editing/SplitTextNodeCommand.cpp:

(WebCore::SplitTextNodeCommand::SplitTextNodeCommand):
(WebCore::SplitTextNodeCommand::doApply):
(WebCore::SplitTextNodeCommand::doUnapply):
(WebCore::SplitTextNodeCommand::doReapply):
(WebCore::SplitTextNodeCommand::insertText1AndTrimText2):

  • editing/SplitTextNodeCommand.h:

(WebCore::SplitTextNodeCommand::create):

  • editing/SplitTextNodeContainingElementCommand.cpp:

(WebCore::SplitTextNodeContainingElementCommand::SplitTextNodeContainingElementCommand):
(WebCore::SplitTextNodeContainingElementCommand::doApply):

  • editing/SplitTextNodeContainingElementCommand.h:

(WebCore::SplitTextNodeContainingElementCommand::create):

  • editing/TextInsertionBaseCommand.cpp:

(WebCore::TextInsertionBaseCommand::applyTextInsertionCommand):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::makeEditableRootEmpty):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

9:04 PM Changeset in webkit [216232] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix misspelled word "interrupt" as pointed out by Darin Adler
in <https://bugs.webkit.org/show_bug.cgi?id=171577>.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted):

8:24 PM Changeset in webkit [216231] by mark.lam@apple.com
  • 2 edits in trunk/Tools

API test WTF.StaticStringImpl crashing in TestWebKitAPI::WTF_StaticStringImpl_Test::TestBody() + 3188
https://bugs.webkit.org/show_bug.cgi?id=171702

Reviewed by Filip Pizlo.

The test was supposed to use the MAKE_STATIC_STRING_IMPL macro. I had previously
changed it to instantiate an automatic StaticStringImpl (i.e. stack allocated) to
confirm that the test will detect a regression. Unfortunately, I forgot to
change it back to using MAKE_STATIC_STRING_IMPL before I landed the test.
This patch fixes that.

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::neverDestroyedString):

8:20 PM Changeset in webkit [216230] by Ryan Haddad
  • 2 edits in trunk/Tools

Disable failing API test WebKit2.ResizeWithHiddenContentDoesNotHang.
https://bugs.webkit.org/show_bug.cgi?id=170195

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

(TEST):

7:32 PM Changeset in webkit [216229] by commit-queue@webkit.org
  • 4 edits in trunk/Source

UIColor +whiteColor and +clearColor are ambiguous and need to be casted when soft linked.
https://bugs.webkit.org/show_bug.cgi?id=171704

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-04
Reviewed by Jer Noble.

Source/WebCore:

No new tests because no behavior change.

Fix build by casting result of +clearColor to UIColor.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(clearUIColor):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture):

Source/WebKit/mac:

Fix build by casting result of +whiteColor to UIColor.

  • WebView/WebView.mm:

(-[WebView _createImageWithPlatterForImage:boundingRect:contentScaleFactor:clippingRects:]):

7:19 PM Changeset in webkit [216228] by Chris Dumez
  • 3 edits
    2 adds in trunk

Element.slot should be marked as [Unscopable]
https://bugs.webkit.org/show_bug.cgi?id=171683

Reviewed by Darin Adler.

Source/WebCore:

Element.slot should be marked as [Unscopable]:

Test: fast/shadow-dom/Element-slot-unscopable.html

  • dom/Element.idl:

LayoutTests:

Add layout test coverage. This test is passing in Firefox and Chrome.

  • fast/shadow-dom/Element-slot-unscopable-expected.txt: Added.
  • fast/shadow-dom/Element-slot-unscopable.html: Added.
7:11 PM Changeset in webkit [216227] by commit-queue@webkit.org
  • 24 edits in trunk

[Win] Remove redundant macros that are set in the CMake config
https://bugs.webkit.org/show_bug.cgi?id=171571

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-04
Reviewed by Brent Fulgham.

.:

  • Source/cmake/OptionsWin.cmake:

Source/JavaScriptCore:

  • config.h:

Source/ThirdParty/ANGLE:

  • CMakeLists.txt:

Source/WebCore:

No new tests. No change in behavior.

  • WebCorePrefix.h:
  • config.h:
  • platform/win/COMPtr.h:
  • platform/win/WindowsTouch.h:
  • testing/js/WebCoreTestSupportPrefix.h:

Source/WebCore/PAL:

No new tests. No change in behavior.

  • config.h:

Source/WebKit/win:

  • COMEnumVariant.h:
  • COMPropertyBag.h:
  • WebKitPrefix.h:

Source/WTF:

  • config.h:

Tools:

  • DumpRenderTree/config.h:
  • MiniBrowser/win/stdafx.h:
  • TestWebKitAPI/config.h:
7:07 PM Changeset in webkit [216226] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk/Source/WebCore

[Mac] Modernize image for dragged link
https://bugs.webkit.org/show_bug.cgi?id=171701
<rdar://problem/31978818>

Reviewed by Simon Fraser.

  • WebCore.xcodeproj/project.pbxproj:
  • page/mac/DragControllerMac.mm:
  • platform/mac/DragImageMac.mm:

(WebCore::dragImageSize):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::LinkImageLayout::layOutText):
(WebCore::LinkImageLayout::addLine):
(WebCore::createDragImageForLink):
(WebCore::fontFromNSFont): Deleted.
(WebCore::canUseFastRenderer): Deleted.
(WebCore::widthWithFont): Deleted.
(WebCore::drawAtPoint): Deleted.
(WebCore::drawDoubledAtPoint): Deleted.

  • platform/spi/cocoa/LinkPresentationSPI.h: Added.

Improve the design of URL drag images.
The margins are increased, the background is now white, the text is
not drawn doubled-up, the title will now wrap to two lines, and the
domain name will appear simplified and de-punycoded.

Much of the implementation of text painting is borrowed from
<attachment> for now, but we should figure out how to generalize
it for UI-like parts of WebKit in the future.

6:53 PM Changeset in webkit [216225] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Change the asynchronous image decoding tests to use the event webkitImageFrameReady
https://bugs.webkit.org/show_bug.cgi?id=171634

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-04
Reviewed by Simon Fraser.

To test the async image decoding reliably we need to do the following:

-- Make sure to load the image before setting its src to the element.
-- Call document.body.offsetHeight to force layout.
-- Call testRunner.display() to force the first paint.
-- Use the webkitImageFrameReady to reliably know when an image frame is ready.
-- When webkitImageFrameReady is fired call testRunner.notifyDone(). This

will force the second paint.

  • fast/images/async-image-background-image-repeated.html:
  • fast/images/async-image-background-image.html:
  • fast/images/sprite-sheet-image-draw.html:
6:42 PM Changeset in webkit [216224] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

not quite ready (Requested by thorton on #webkit).

Reverted changeset:

"[Mac] Modernize image for dragged link"
https://bugs.webkit.org/show_bug.cgi?id=171701
http://trac.webkit.org/changeset/216223

6:36 PM Changeset in webkit [216223] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Modernize image for dragged link
https://bugs.webkit.org/show_bug.cgi?id=171701
<rdar://problem/31978818>

Reviewed by Simon Fraser.

  • page/mac/DragControllerMac.mm:
  • platform/mac/DragImageMac.mm:

(WebCore::dragImageSize):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::LinkImageLayout::addLine):
(WebCore::createDragImageForLink):
(WebCore::fontFromNSFont): Deleted.
(WebCore::canUseFastRenderer): Deleted.
(WebCore::widthWithFont): Deleted.
(WebCore::drawAtPoint): Deleted.
(WebCore::drawDoubledAtPoint): Deleted.
Improve the design of URL drag images.
The margins are increased, the background is now white, the text is
not drawn doubled-up, the title will now wrap to two lines, and the
domain name will appear simplified and de-punycoded.

Much of the implementation of text painting is borrowed from
<attachment> for now, but we should figure out how to generalize
it for UI-like parts of WebKit in the future.

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

Mark webrtc/libwebrtc/descriptionGetters.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171703

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-04

  • platform/mac-wk2/TestExpectations:
5:57 PM Changeset in webkit [216221] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use if instead of return early for 13 places in WebAVPlayerController
https://bugs.webkit.org/show_bug.cgi?id=171692

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-04
Reviewed by Jer Noble.

No new tests because no behavior change.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController play:]):
(-[WebAVPlayerController pause:]):
(-[WebAVPlayerController togglePlayback:]):
(-[WebAVPlayerController beginScrubbing:]):
(-[WebAVPlayerController endScrubbing:]):
(-[WebAVPlayerController seekToTime:]):
(-[WebAVPlayerController beginScanningForward:]):
(-[WebAVPlayerController endScanningForward:]):
(-[WebAVPlayerController beginScanningBackward:]):
(-[WebAVPlayerController endScanningBackward:]):
(-[WebAVPlayerController seekToBeginning:]):
(-[WebAVPlayerController seekToEnd:]):
(-[WebAVPlayerController toggleMuted:]):

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

Gardening: Build fix for Windows after r216217.
https://bugs.webkit.org/show_bug.cgi?id=171586

Not reviewed.

  • shell/PlatformWin.cmake:
5:06 PM Changeset in webkit [216219] by commit-queue@webkit.org
  • 8 edits in trunk/Tools

Add testRunner.display() to force displaying the web page for testing
https://bugs.webkit.org/show_bug.cgi?id=171694

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-04
Reviewed by Simon Fraser.

Unlike testRunner.displayAndTrackRepaints(), this new function forces
drawing the web page but without track repaints.

  • DumpRenderTree/TestRunner.cpp:

(displayCallback):
(TestRunner::staticFunctions):

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::display):

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::display):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::display):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
4:37 PM Changeset in webkit [216218] by fpizlo@apple.com
  • 19 edits
    4 adds in trunk/Source

JSC::Heap should expose a richer API for requesting GCs
https://bugs.webkit.org/show_bug.cgi?id=171690

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


I want to stop WebCore from requesting synchronous GCs. But various parts of that work
may cause regressions, so I'd like to land it separately from the functionality that is
needed on the JSC side. This change is mostly a JSC-side refactoring that does not
change behavior. In the future I'll land the behavior changes (i.e. not requesting sync
GCs).

This change allows you to enumerate over synchronousness, so that we can make all APIs
take synchronousness as an argument. It replaces the collectAllGarbage API with a
collectNow(Synchronousness, GCRequest) API. GCRequest is a new concept, which subsumes
std::optional<CollectionScope> and gives us the ability to register callbacks along
with a GC. So, you can ask for an async GC and get a callback when it's done.

Also adds ability to request that fastMalloc memory be released after the incremental
sweeper finishes.

  • API/JSBase.cpp:

(JSSynchronousGarbageCollectForDebugging):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):

  • heap/FullGCActivityCallback.h:
  • heap/GCRequest.cpp: Added.

(JSC::GCRequest::subsumedBy):
(JSC::GCRequest::dump):

  • heap/GCRequest.h: Added.

(JSC::GCRequest::GCRequest):

  • heap/Heap.cpp:

(JSC::Heap::collect):
(JSC::Heap::collectNow):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::runBeginPhase):
(JSC::Heap::runEndPhase):
(JSC::Heap::requestCollection):
(JSC::Heap::willStartCollection):
(JSC::Heap::sweeper):
(JSC::Heap::collectNowFullIfNotDoneRecently):
(JSC::Heap::shouldDoFullCollection):
(JSC::Heap::collectAllGarbage): Deleted.
(JSC::Heap::collectAllGarbageIfNotDoneRecently): Deleted.

  • heap/Heap.h:
  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::buildSnapshot):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doSweep):

  • heap/IncrementalSweeper.h:

(JSC::IncrementalSweeper::freeFastMallocMemoryAfterSweeping):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::doTestCollectionsIfNeeded):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::sweep):

  • heap/Synchronousness.cpp: Added.

(WTF::printInternal):

  • heap/Synchronousness.h: Added.
  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::gc):

  • jsc.cpp:

(functionGCAndSweep):
(runJSC):

  • tools/JSDollarVMPrototype.cpp:

(JSC::JSDollarVMPrototype::gc):

  • wasm/WasmMemory.cpp:

Source/WebCore:

No new tests because this is just a refactoring.

Change some function calls now that some JSC::Heap APIs got renamed.

  • bindings/js/GCController.cpp:

(WebCore::collect):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::garbageCollectNowIfNotDoneRecently):

4:24 PM Changeset in webkit [216217] by mark.lam@apple.com
  • 71 edits
    2 adds in trunk

NeverDestroyed<String>(ASCIILiteral(...)) is not thread safe.
https://bugs.webkit.org/show_bug.cgi?id=171586
<rdar://problem/31873190>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

JavaScriptCore allows multiple VMs to be instantiated, and each of these should
be able to run concurrently on different threads. There is code in the VM that
allocates NeverDestroyed<String>(ASCIILiteral(...)) to defined immortal strings
meant to be shared by all VMs.

However, NeverDestroyed<String>(ASCIILiteral(...)) is not thread-safe because
each thread will ref and deref the underlying StringImpl. Since this ref and
deref is not done in a thread-safe way, the NeverDestroyed<String> may get
destroyed due to the ref/deref races. Additionally, each thread may modify the
StringImpl by setting its hash and also twiddling its flags.

The fix is to use the StaticStringImpl class which is safe for ref/derefing
concurrently from different threads. StaticStringImpl is also pre-set with a
hash on construction, and its flags are set in such a way as to prevent twiddling
at runtime. Hence, we will be able to share a NeverDestroyed<String> between
VMs, as long as it is backed by a StaticStringImpl.

An alternative solution would be to change all the uses of NeverDestroyed<String>
to use per-VM strings. However, this solution is cumbersome, and makes it harder
to allocate the intended shared string. It also uses more memory and takes more
CPU time because it requires allocating the same string for each VM instance.
The StaticStringImpl solution wins out because it is more efficient and is easier
to use.

The StaticStringImpl solution also can be used in WTF without a layer violation.
See Source/WTF/wtf/text/icu/TextBreakIteratorICU.h for an example.

Also added the MultithreadedMultiVMExecutionTest which runs multiple VMs in
multiple threads, all banging on the BuiltinExecutable's baseConstructorCode
NeverDestroyed<String>. The test will manifest the issue reliably (before this
fix) if run on an ASAN build.

  • API/tests/MultithreadedMultiVMExecutionTest.cpp: Added.

(threadsList):
(startMultithreadedMultiVMExecutionTest):
(finalizeMultithreadedMultiVMExecutionTest):

  • API/tests/MultithreadedMultiVMExecutionTest.h: Added.
  • API/tests/testapi.c:

(main):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::objectGroupForBreakpointAction):

  • replay/scripts/CodeGeneratorReplayInputsTemplates.py:
  • replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::SavedMouseButton>::type):

  • replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::SavedMouseButton>::type):

  • replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::HandleWheelEvent>::type):

  • replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::FormCombo>::type):

  • replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::GetCurrentTime>::type):
(JSC::InputTraits<Test::SetRandomSeed>::type):

  • replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ArrayOfThings>::type):
(JSC::InputTraits<Test::SavedHistory>::type):

  • replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ScalarInput1>::type):
(JSC::InputTraits<Test::ScalarInput2>::type):

  • replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp:

(JSC::InputTraits<Test::ScalarInput>::type):
(JSC::InputTraits<Test::MapInput>::type):

  • runtime/IntlObject.cpp:

(JSC::numberingSystemsForLocale):

Source/WebCore:

No new tests because we're just converting uses of ASCIILiteral (in the
instantiation of NeverDestroyed<String> and NeverDestroyed<const String>) to
MAKE_STATIC_STRING_IMPL.

The correctness of using MAKE_STATIC_STRING_IMPL is tested in the newly added
API test in this patch.

Also changed "static NeverDestroyed<ASCIILiteral>" instances in
SQLiteIDBBackingStore.cpp to "static const char* const" because they are only
ever used to get the underlying const char*.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):

  • Modules/mediastream/MediaEndpointSessionDescription.cpp:
  • Modules/mediastream/RTCRtpTransceiver.cpp:
  • Modules/mediastream/SDPProcessor.cpp:
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::customHandlersStateString):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):

  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::boundaryEventOccurred):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaControl::controlTypeName):
(WebCore::AccessibilityMediaControl::title):
(WebCore::AccessibilityMediaControlsContainer::elementTypeName):
(WebCore::AccessibilityMediaTimeline::helpText):
(WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::eventParameterName):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::displayNoneCSSRule):

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::screenEval):
(WebCore::printEval):

  • css/MediaList.cpp:

(WebCore::addResolutionWarningMessageToConsole):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):

  • dom/Document.cpp:

(WebCore::Document::readyState):

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::notifyFinished):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::pseudoElementNameForEvents):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::shouldAddNamespaceElement):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::dataDetectorURLProtocol):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::styleNodeCloseTag):
(WebCore::createMarkupInternal):

  • html/FormController.cpp:

(WebCore::formStateSignature):

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::appendFormData):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::realizeSaves):
(WebCore::CanvasRenderingContext2D::getImageData):

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):

  • html/track/VTTCue.cpp:

(WebCore::startKeyword):
(WebCore::middleKeyword):
(WebCore::endKeyword):
(WebCore::leftKeyword):
(WebCore::rightKeyword):
(WebCore::verticalGrowingLeftKeyword):
(WebCore::verticalGrowingRightKeyword):
(WebCore::VTTCue::determineTextDirection):
(WebCore::VTTCue::markFutureAndPastNodes):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::computePseudoClassMask):

  • inspector/InspectorIndexedDBAgent.cpp:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::sourceMapURLForResource):

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::corsPolicyPreventedLoad):

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::defaultDatabaseFilename):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::parse):

  • platform/MIMETypeRegistry.cpp:

(WebCore::defaultMIMEType):

  • platform/animation/Animation.cpp:

(WebCore::Animation::initialName):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::engineDescription):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::engineDescription):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::similarFont):

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::platformVersionForUAString):

  • platform/mock/mediasource/MockBox.cpp:

(WebCore::MockTrackBox::type):
(WebCore::MockInitializationBox::type):
(WebCore::MockSampleBox::type):

  • platform/network/HTTPHeaderValues.cpp:

(WebCore::HTTPHeaderValues::textPlainContentType):
(WebCore::HTTPHeaderValues::formURLEncodedContentType):
(WebCore::HTTPHeaderValues::noCache):
(WebCore::HTTPHeaderValues::maxAge0):

  • platform/network/HTTPParsers.cpp:

(WebCore::parseXSSProtectionHeader):

  • replay/MemoizedDOMResult.cpp:

(JSC::InputTraits<MemoizedDOMResultBase>::type):

  • svg/SVGTransformValue.cpp:

(WebCore::SVGTransformValue::transformTypePrefixForParsing):

Source/WebKit2:

  • Shared/API/APIError.cpp:

(API::Error::webKitErrorDomain):
(API::Error::webKitNetworkErrorDomain):
(API::Error::webKitPolicyErrorDomain):
(API::Error::webKitPluginErrorDomain):
(API::Error::webKitDownloadErrorDomain):
(API::Error::webKitPrintErrorDomain):

  • Shared/WebPreferencesKeys.cpp:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::executeEditCommand):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::didBeginEditing):
(WebKit::WebEditorClient::respondToChangedContents):
(WebKit::WebEditorClient::respondToChangedSelection):
(WebKit::WebEditorClient::didEndEditing):

Source/WTF:

StaticStringImpl is meant to be thread-safe. However, it has a bug: it did not
set the s_hashFlagDidReportCost flag. As a result, if cost() is called on it,
different threads may try to change its flags bits at the same time. This patch
changes StaticStringImpl to always set the s_hashFlagDidReportCost flag.

Also factored out StringImplShape and made StringImpl and StaticStringImpl extend
it. This makes it more clear that the 2 are intended to have the same shape.
Note: there is already a static_assert that the 2 have the same size. This
change also ensures that they both have the same shape, which is a requirement in
order for StaticStringImpl to work.

Introduced the MAKE_STATIC_STRING_IMPL macro as a convenient way to instantiate
StaticStringImpls from literal strings. This allows us to trivially change

NeverDestroyed<String> myString(ASCIILiteral("myString"));

to ...

NeverDestroyed<String> myString(MAKE_STATIC_STRING_IMPL("myString"));

and by so doing, make it thread-safe.

MAKE_STATIC_STRING_IMPL instantiates a lambda function to create the static
StaticStringImpls.

  • wtf/text/StringImpl.h:

(WTF::StringImplShape::StringImplShape):
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::cost):
(WTF::StringImpl::setHash):
(WTF::StringImpl::StaticStringImpl::StaticStringImpl):
(WTF::StringImpl::StaticStringImpl::operator StringImpl&):

  • wtf/text/WTFString.h:

(WTF::String::String):

  • wtf/text/icu/TextBreakIteratorICU.h:

(WTF::caretRules):

Tools:

API test for exercising StaticStringImpl and the MAKE_STATIC_STRING_IMPL macro.

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::neverDestroyedString):
(TestWebKitAPI::getNeverDestroyedStringAtStackDepth):
(TestWebKitAPI::TEST):

4:18 PM Changeset in webkit [216216] by commit-queue@webkit.org
  • 16 edits in trunk/Source

Source/WebCore:
Add muted to WebPlaybackSessionModel.
https://bugs.webkit.org/show_bug.cgi?id=171592
rdar://problem/31814074

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-04
Reviewed by Jer Noble.

No behavior change. This just adds the ability for UI to mute.

  • platform/cocoa/WebPlaybackSessionModel.h:

(WebCore::WebPlaybackSessionModelClient::mutedChanged):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebCore::WebPlaybackSessionModelMediaElement::updateForEventName):
(WebCore::WebPlaybackSessionModelMediaElement::toggleMuted):
(WebCore::WebPlaybackSessionModelMediaElement::observedEventNames):
(WebCore::WebPlaybackSessionModelMediaElement::isMuted):

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController toggleMuted:]):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.h:
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm:

(WebCore::WebPlaybackSessionInterfaceAVKit::mutedChanged):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::mutedChanged):
(WebVideoFullscreenControllerContext::isMuted):
(WebVideoFullscreenControllerContext::toggleMuted):

  • platform/spi/ios/MediaPlayerSPI.h:

Source/WebKit2:
Add mute to WebPlaybackSessionModel.
https://bugs.webkit.org/show_bug.cgi?id=171592
rdar://problem/31814074

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-04
Reviewed by Jer Noble.

Plumb through muted.

  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionModelContext::toggleMuted):
(WebKit::WebPlaybackSessionModelContext::setMuted):
(WebKit::WebPlaybackSessionManagerProxy::setMuted):
(WebKit::WebPlaybackSessionManagerProxy::toggleMuted):

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.messages.in:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionInterfaceContext::mutedChanged):
(WebKit::WebPlaybackSessionManager::mutedChanged):
(WebKit::WebPlaybackSessionManager::toggleMuted):

4:04 PM Changeset in webkit [216215] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

REGRESSION(r216138): Web Inspector: ASSERT(!content.isNull()) when checking for source map url opening inspector
https://bugs.webkit.org/show_bug.cgi?id=171697
<rdar://problem/31999512>

Reviewed by Matt Baker.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):
Always set base64Encoded when returning true. Return the empty
string instead of a null string matching previous behavior.

4:03 PM Changeset in webkit [216214] by commit-queue@webkit.org
  • 1 edit
    13 adds in trunk/PerformanceTests

[INTL] Add PerformanceTests for Intl objects
https://bugs.webkit.org/show_bug.cgi?id=171695

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2017-05-04
Reviewed by Benjamin Poulain.

  • Intl/collator-compare-all-options.html: Added.
  • Intl/collator-compare-default.html: Added.
  • Intl/collator-create-all-options.html: Added.
  • Intl/collator-create-default.html: Added.
  • Intl/datetimeformat-create-all-options.html: Added.
  • Intl/datetimeformat-create-default.html: Added.
  • Intl/datetimeformat-format-all-options.html: Added.
  • Intl/datetimeformat-format-default.html: Added.
  • Intl/numberformat-create-all-options.html: Added.
  • Intl/numberformat-create-default.html: Added.
  • Intl/numberformat-format-all-options.html: Added.
  • Intl/numberformat-format-default.html: Added.
3:35 PM Changeset in webkit [216213] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[WK2] Image action sheets sometimes do not dismiss when beginning data interaction
https://bugs.webkit.org/show_bug.cgi?id=171687
<rdar://problem/31996534>

Reviewed by Beth Dakin.

When presenting an image sheet using WKActionSheetAssistant, we may present the popover asynchronously. In this
case, even if -cleanupSheet is invoked after -showImageSheet, the popover will still be presented. To fix this,
add a flag, _hasPendingActionSheet, that is set to true when an image action sheet will be presented in the
future.

In cleanupSheet, we revert this flag to NO, and in the sheet presentation block, we first check to see if there
is a pending action sheet. If there is not, then simply do not invoke the image sheet presentation block.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant cleanupSheet]):

3:28 PM Changeset in webkit [216212] by Wenson Hsieh
  • 26 edits
    1 add in trunk

[WK2] Add support for keeping the selection in a focused editable element when dragging begins
https://bugs.webkit.org/show_bug.cgi?id=171585
<rdar://problem/31544320>

Reviewed by Beth Dakin and Zalan Bujtas.

Source/WebCore:

Covered by 4 API tests.

  • dom/DocumentMarker.h:

Introduces the DraggedContent DocumentMarker type, which applies to the Range in the DOM that is being used as
a drag source. Also adds DraggedContentData, which contains nodes found by the TextIterator in the process of
finding Ranges to mark.

(WebCore::DocumentMarker::AllMarkers::AllMarkers):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addDraggedContentMarker):
(WebCore::shouldInsertAsSeparateMarker):
(WebCore::DocumentMarkerController::addMarker):

When adding DocumentMarkers of type DraggedContent, keep adjacent RenderReplaced elements separate, rather than
merging them into existing RenderedDocumentMarkers. This is because the data for each of these (i.e. the target
node) needs to be preserved.

(WebCore::DocumentMarkerController::markersFor):

Bail and return an empty list if the map of document markers cannot possibly contain a dragged content marker.

  • dom/DocumentMarkerController.h:
  • page/DragController.h:
  • page/DragState.h:

Add draggedContentRange to DragState. This tracks the Range that is being dragged; it is created when the drag
session has begun, and ends when drag session finishes (either via WebPage::dragEnded or WebPage::dragCancelled).

  • page/EventHandler.cpp:

(WebCore::repaintContentsOfRange):
(WebCore::EventHandler::dragCancelled):

Called when a drag is cancelled in the UI process without a session ever getting a chance to begin. We use this
as a hook to remove all DraggedContent document markers from the document of the dragged content range.

(WebCore::EventHandler::didStartDrag):

Called when a drag session has begun in the UI process. We use this as a hook to set up document markers for the
Range of content being dragged.

(WebCore::EventHandler::dragSourceEndedAt):

Called when a drag session ends. We use this as a hook to remove all DraggedContent document markers from the
document of the dragged content range.

(WebCore::EventHandler::draggedElement):

  • page/EventHandler.h:
  • page/FocusController.cpp:

(WebCore::shouldClearSelectionWhenChangingFocusedElement):

Prevent the selection from clearing when the previously focused element is editable and also contains the drag
source element. Ideally, we should experiment with clearing out the selection whenever the element is blurred
(and not have additional restrictions on editability and containing the drag source), but this change is much
riskier.

(WebCore::FocusController::setFocusedElement):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

Use RenderText::draggedContentStartEnd to find the range of text (if any) that is dragged content, and paint
these ranges of text at a lower alpha using TextPainter::paintTextInRange.

  • rendering/RenderReplaced.cpp:

(WebCore::draggedContentContainsReplacedElement):

Determines whether or not the element being rendered is contained within a dragged content range. Assuming that
the DraggedContent type flag is set in DocumentMarkerController, we first look to see whether or not the
container node is in the document marker map. If so, instead of consulting node offset ranges (since this is, in
the worst-case, linear in the number of sibling nodes per RenderReplaced) we simply check the DraggedContentData
to see if the current element being rendered matches one of the target nodes.

(WebCore::RenderReplaced::paint):

If the element rendered by this RenderReplaced is dragged content, then render it at a low alpha.

  • rendering/RenderText.cpp:

(WebCore::RenderText::draggedContentRangesBetweenOffsets):

Determines what range of text, if any, contains dragged content by consulting the Document's DocumentMarkers.

  • rendering/RenderText.h:
  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextInRange):

Teach TextPainter to only paint a given range in a TextRun.

  • rendering/TextPainter.h:

Add TextPainter support for specifying special text offset ranges when rendering a TextRun, such that each
special range in text is rendered after applying some modification to the GraphicsContext.

Source/WebKit2:

Minor adjustments and refactoring in WebKit2. See WebCore ChangeLog for more details.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::startDrag):
(WebKit::WebPageProxy::didStartDrag):

Factor out code in WebPageProxy that sends a WebPage::DidStartDrag message to the web process into a separate
helper, and tweak the places where we directly send this IPC message to the web process to instead call this
helper.

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setDragImage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didStartDrag):
(WebKit::WebPage::dragCancelled):

Clear out state in the web process and call out to the EventHandler to handle drag cancellation and the drag
start response from the UI process.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::didStartDrag): Deleted.
(WebKit::WebPage::dragCancelled): Deleted.

Tools:

Adds 1 new unit test and tweaks existing tests to check that when first responder status is lost after beginning
a drag while editing, content is still moved (and not copied) when performing data interaction on a different
element. ContentEditableMoveParagraphs checks that content can be shifted within a single element via a move
operation rather than a copy.

See WebCore ChangeLog for more details.

Tests: DataInteractionSimulator.ContentEditableToContentEditable

DataInteractionSimulator.ContentEditableToTextarea
DataInteractionSimulator.ContentEditableMoveParagraphs
DataInteractionSimulator.TextAreaToInput

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/two-paragraph-contenteditable.html: Added.
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator initWithWebView:]):
(-[DataInteractionSimulator dealloc]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator waitForInputSession]):
(-[DataInteractionSimulator _webView:focusShouldStartInputSession:]):
(-[DataInteractionSimulator _webView:didStartInputSession:]):

2:46 PM Changeset in webkit [216211] by commit-queue@webkit.org
  • 165 edits in trunk

Tools:
Rename TestRunner.display() to TestRunner::displayAndTrackRepaints()
https://bugs.webkit.org/show_bug.cgi?id=171641

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-04
Reviewed by Simon Fraser.

The plan is to add back the TestRunner.display() which does the display
only without track repaints.

  • DumpRenderTree/DumpRenderTree.h:
  • DumpRenderTree/TestRunner.cpp:

(displayAndTrackRepaintsCallback):
(TestRunner::staticFunctions):
(displayCallback): Deleted.
(displayInvalidatedRegionCallback): Deleted.

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

(displayWebView):
(displayAndTrackRepaintsWebView):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::displayAndTrackRepaints):
(TestRunner::display): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::displayAndTrackRepaints):
(TestRunner::display): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::displayAndTrackRepaints):
(WTR::TestRunner::display): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:
Rename testRunner.displayAndTrackRepaints() to testRunner.displayAndTrackRepaints()
https://bugs.webkit.org/show_bug.cgi?id=171641

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-04
Reviewed by Simon Fraser.

Replace all the calls to testRunner.displayAndTrackRepaints() by testRunner.displayAndTrackRepaints()
Replace all the calls to testRunner.displayInvalidatedRegion() by
testRunner.displayAndTrackRepaints() since the former is a copy of the later.

  • compositing/clip-change.html:
  • compositing/geometry/foreground-offset-change.html:
  • compositing/geometry/limit-layer-bounds-transformed-overflow.html:
  • compositing/iframes/become-composited-nested-iframes.html:
  • compositing/iframes/become-overlapped-iframe.html:
  • compositing/iframes/connect-compositing-iframe-delayed.html:
  • compositing/iframes/connect-compositing-iframe.html:
  • compositing/iframes/connect-compositing-iframe2.html:
  • compositing/iframes/connect-compositing-iframe3.html:
  • compositing/iframes/enter-compositing-iframe.html:
  • compositing/iframes/iframe-content-flipping.html:
  • compositing/iframes/iframe-resize.html:
  • compositing/iframes/iframe-size-to-zero.html:
  • compositing/iframes/iframe-src-change.html:
  • compositing/iframes/invisible-nested-iframe-hide.html:
  • compositing/iframes/invisible-nested-iframe-show.html:
  • compositing/iframes/leave-compositing-iframe.html:
  • compositing/iframes/overlapped-iframe-iframe.html:
  • compositing/iframes/overlapped-iframe.html:
  • compositing/iframes/overlapped-nested-iframes.html:
  • compositing/iframes/repaint-after-losing-scrollbars.html:
  • compositing/iframes/resources/fixed-position-subframe.html:
  • compositing/iframes/resources/fixed-position-transformed-subframe.html:
  • compositing/iframes/resources/scrollgrandchild-inner.html:
  • compositing/iframes/scrolling-iframe.html:
  • compositing/overflow/content-gains-scrollbars.html:
  • compositing/overflow/content-loses-scrollbars.html:
  • compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html:
  • compositing/overflow/overflow-scrollbar-layers.html:
  • compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html:
  • compositing/overflow/repaint-after-losing-scrollbars.html:
  • compositing/patterns/direct-pattern-compositing-add-text-expected.html:
  • compositing/patterns/direct-pattern-compositing-add-text.html:
  • compositing/patterns/direct-pattern-compositing-change-expected.html:
  • compositing/patterns/direct-pattern-compositing-change.html:
  • compositing/patterns/direct-pattern-compositing-load-expected.html:
  • compositing/patterns/direct-pattern-compositing-load.html:
  • compositing/plugins/invalidate_rect.html:
  • compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint.html:
  • compositing/repaint/iframes/compositing-iframe-scroll-repaint.html:
  • compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint.html:
  • compositing/repaint/newly-composited-on-scroll.html:
  • compositing/repaint/newly-composited-repaint-rect.html:
  • compositing/repaint/page-scale-repaint.html:
  • compositing/repaint/requires-backing-repaint.html:
  • compositing/repaint/transform-style-change.html:
  • compositing/rtl/rtl-overflow-invalidation.html:
  • compositing/scroll-painted-composited-content.html:
  • compositing/tiling/huge-layer-resize.html:
  • compositing/video-page-visibility.html:
  • compositing/video/video-with-invalid-source.html:
  • compositing/webgl/webgl-repaint.html:
  • css3/filters/multiple-filters-invalidation.html:
  • css3/flexbox/repaint-column-reverse.html:
  • css3/flexbox/repaint-during-resize-no-flex.html:
  • css3/flexbox/repaint-rtl-column.html:
  • css3/flexbox/repaint.html:
  • displaylists/canvas-display-list.html:
  • displaylists/resources/dump-target-display-list.js:

(doTest):

  • displaylists/resources/dump-target-replay-list.js:

(doTest):

  • fast/animation/request-animation-frame-detach-element.html:
  • fast/animation/request-animation-frame-detach-element2.html:
  • fast/animation/request-animation-frame-during-modal.html:
  • fast/animation/request-animation-frame-iframe.html:
  • fast/animation/request-animation-frame-iframe2.html:
  • fast/animation/script-tests/request-animation-frame-cancel.js:
  • fast/animation/script-tests/request-animation-frame-cancel2.js:
  • fast/animation/script-tests/request-animation-frame-disabled.js:
  • fast/animation/script-tests/request-animation-frame-prefix.js:

(window.webkitRequestAnimationFrame):
(window.testRunner.window.setTimeout):

  • fast/animation/script-tests/request-animation-frame-time-unit.js:

(window.requestAnimationFrame):

  • fast/animation/script-tests/request-animation-frame-timestamps-advance.js:

(window.requestAnimationFrame):
(window.testRunner.window.setTimeout):

  • fast/animation/script-tests/request-animation-frame-timestamps.js:
  • fast/animation/script-tests/request-animation-frame-within-callback.js:
  • fast/animation/script-tests/request-animation-frame.js:
  • fast/backgrounds/obscured-background-child-style-change-expected.html:
  • fast/backgrounds/obscured-background-child-style-change.html:
  • fast/backgrounds/solid-color-context-restore.html:
  • fast/canvas/canvas-as-image-incremental-repaint.html:
  • fast/canvas/canvas-incremental-repaint-2.html:
  • fast/canvas/canvas-incremental-repaint.html:
  • fast/canvas/canvas-resize-after-paint.html:
  • fast/canvas/resources/repaint.js:

(runRepaintTest):

  • fast/canvas/script-tests/canvas-imageSmoothingEnabled-repaint.js:

(TestControllerPaint):

  • fast/canvas/webgl/canvas-test.html:
  • fast/canvas/webgl/webgl-layer-update.html:
  • fast/css/pseudostyle-anonymous-text.html:
  • fast/css/relative-positioned-block-crash.html:
  • fast/dom/Window/post-message-crash.html:
  • fast/dom/Window/web-timing-minimal-performance-now.html:
  • fast/dynamic/containing-block-change.html:
  • fast/dynamic/layer-no-longer-paginated.html:
  • fast/events/touch/gesture/pad-gesture-cancel.js:
  • fast/events/touch/gesture/pad-gesture-fling.js:
  • fast/forms/hidden-listbox.html:
  • fast/forms/listbox-clip.html:
  • fast/frames/inline-object-inside-frameset.html:
  • fast/frames/transparent-scrollbar.html:
  • fast/images/animated-background-image-crash.html:
  • fast/layers/add-layer-with-nested-stacking.html:
  • fast/layers/inline-dirty-z-order-lists.html:
  • fast/layers/layer-content-visibility-change.html:
  • fast/layers/nested-layers-1.html:
  • fast/layers/nested-layers-2.html:
  • fast/layers/nested-layers-3.html:
  • fast/layers/nested-layers-4.html:
  • fast/layers/remove-layer-with-nested-stacking.html:
  • fast/overflow/hidden-scrollbar-resize.html:
  • fast/reflections/inline-crash.html:
  • fast/repaint/animation-after-layer-scroll.html:
  • fast/repaint/background-shorthand-with-gradient-and-height-changes.html:
  • fast/repaint/fixed-child-move-after-scroll.html:
  • fast/repaint/fixed-child-of-fixed-move-after-scroll.html:
  • fast/repaint/fixed-child-of-transformed-move-after-scroll.html:
  • fast/repaint/fixed-move-after-scroll.html:
  • fast/repaint/no-animation-outside-viewport-subframe.html:
  • fast/repaint/no-animation-outside-viewport.html:
  • fast/repaint/obscured-background-no-repaint.html:
  • fast/repaint/overflow-hidden-in-overflow-hidden-scrolled.html:
  • fast/repaint/renderer-destruction-by-invalidateSelection-crash.html:
  • fast/repaint/repaint-during-scroll-with-zoom.html:
  • fast/repaint/resources/fixed-move-after-keyboard-scroll-iframe.html:
  • fast/repaint/resources/iframe-scroll-repaint-iframe.html:
  • fast/repaint/resources/line-flow-with-floats.js:

(beginTest):

  • fast/repaint/resources/repaint.js:

(runRepaintTest):

  • fast/repaint/table-overflow-hidden-in-overflow-hidden-scrolled.html:
  • fast/replaced/width100percent-textarea.html:
  • fast/scrolling/scrollbar-tickmarks-hittest.html:
  • fast/table/border-collapsing/cached-69296.html:
  • fast/table/border-collapsing/cached-cell-append.html:
  • fast/table/border-collapsing/cached-cell-remove.html:
  • fast/table/border-collapsing/cached-change-cell-border-color.html:
  • fast/table/border-collapsing/cached-change-cell-border-width.html:
  • fast/table/border-collapsing/cached-change-cell-sl-border-color.html:
  • fast/table/border-collapsing/cached-change-col-border-color.html:
  • fast/table/border-collapsing/cached-change-col-border-width.html:
  • fast/table/border-collapsing/cached-change-colgroup-border-color.html:
  • fast/table/border-collapsing/cached-change-colgroup-border-width.html:
  • fast/table/border-collapsing/cached-change-row-border-color.html:
  • fast/table/border-collapsing/cached-change-row-border-width.html:
  • fast/table/border-collapsing/cached-change-table-border-color.html:
  • fast/table/border-collapsing/cached-change-table-border-width.html:
  • fast/table/border-collapsing/cached-change-tbody-border-color.html:
  • fast/table/border-collapsing/cached-change-tbody-border-width.html:
  • fast/table/empty-section-crash.html:
  • fast/text/font-initial.html:
  • fast/text/international/harfbuzz-runs-with-no-glyph.html:
  • fast/text/text-shadow-extreme-value.html:
  • http/tests/misc/slow-loading-image-in-pattern.html:
  • media/audio-repaint.html:
  • media/media-document-audio-repaint.html:
  • plugins/windowless_plugin_paint_test.html:
  • scrollbars/scrollbar-percent-padding-crash.html:
  • svg/custom/non-scaling-stroke-update.svg:
  • svg/custom/stale-resource-data-crash.svg:
2:42 PM Changeset in webkit [216210] by beidson@apple.com
  • 2 edits in trunk/Tools

[ios-simulator] API test WebKit2.WebsiteDataStoreCustomPaths is failing.
https://bugs.webkit.org/show_bug.cgi?id=171513

Unreviewed gardening.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:

(TEST): Skip the failing parts of the test on iOS for now.

2:39 PM Changeset in webkit [216209] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash when pointer lock element is removed before pointer lock allowed arrives.
https://bugs.webkit.org/show_bug.cgi?id=171642

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-05-04
Reviewed by Jer Noble.

Make sure there a pending lock before attempting to complete pointer lock.

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::didAcquirePointerLock):

2:27 PM Changeset in webkit [216208] by Chris Dumez
  • 4 edits in trunk

Reformat / Clean up Node.idl to match the specification
https://bugs.webkit.org/show_bug.cgi?id=171686

Reviewed by Sam Weinig.

Source/WebCore:

Reformat / Clean up Node.idl to match the specification:

There should be no Web-facing behavior change, except for Node properties
being enumerated in a slightly different order.

  • dom/Node.idl:

LayoutTests:

Rebaseline existing test now that the Node properties are enumerated in a
slightly different order.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
2:06 PM Changeset in webkit [216207] by Jonathan Bedard
  • 3 edits
    4 copies
    6 adds in trunk/Tools

Make ImageDiff stand-alone
https://bugs.webkit.org/show_bug.cgi?id=168939

Reviewed by David Kilzer.

Create ImageDiff without dependencies on bmalloc and WTF so that it exists as a
stand-alone project. Note that this change does not eliminate the ImageDiff inside
the DumpRenderTree project.

  • ImageDiff/ImageDiff.xcodeproj: Added.
  • ImageDiff/ImageDiff.xcodeproj/project.pbxproj: Added.
  • ImageDiff/Makefile: Use ImageDiff project.
  • ImageDiff/PlatformMac.cmake: Added.
  • ImageDiff/PlatformWin.cmake: Added.
  • ImageDiff/cg: Added.
  • ImageDiff/cg/Configurations: Added.
  • ImageDiff/cg/Configurations/Base.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/Base.xcconfig.
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/DebugRelease.xcconfig.
  • ImageDiff/cg/Configurations/ImageDiff.xcconfig: Copied from Tools/DumpRenderTree/mac/Configurations/ImageDiff.xcconfig.
  • ImageDiff/cg/ImageDiff.cpp: Copied from Tools/DumpRenderTree/cg/ImageDiffCG.cpp.

(createImageFromStdin): Stop using RetainPtr.
(createDifferenceImage): Ditto.
(main): Ditto.

  • Scripts/build-imagediff: Stop building WTF and bmalloc.
1:56 PM Changeset in webkit [216206] by weinig@apple.com
  • 63 edits
    11 deletes in trunk

Remove support for legacy Notifications
https://bugs.webkit.org/show_bug.cgi?id=171487

Reviewed by Jon Lee.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove files.

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

  • DerivedSources.make:

Remove IDL files.

  • Modules/notifications/DOMWindowNotifications.cpp: Removed.
  • Modules/notifications/DOMWindowNotifications.h: Removed.
  • Modules/notifications/DOMWindowNotifications.idl: Removed.
  • Modules/notifications/NotificationCenter.cpp: Removed.
  • Modules/notifications/NotificationCenter.h: Removed.
  • Modules/notifications/NotificationCenter.idl: Removed.
  • Modules/notifications/NotificationClient.h:
  • Modules/notifications/NotificationController.cpp:
  • Modules/notifications/NotificationController.h:
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp: Removed.
  • Modules/notifications/WorkerGlobalScopeNotifications.h: Removed.
  • Modules/notifications/WorkerGlobalScopeNotifications.idl: Removed.
  • Modules/notifications/Notification.idl:
  • Modules/notifications/Notification.cpp:
  • Modules/notifications/Notification.h:
  • dom/EventTargetFactory.in:
  • page/DOMWindow.cpp:
  • workers/WorkerThread.h:

Remove code legacy Notification code. Replace use of NotificationCenter with direct
calls to the NotificationClient.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebCoreSupport/WebNotificationClient.h:
  • WebCoreSupport/WebNotificationClient.mm:
  • WebView/WebNotification.mm:
  • WebView/WebNotificationInternal.h:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _notificationIDForTesting:]):
Remove legacy notification specific code.

Source/WebKit/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::WebChromeClient):

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebDesktopNotificationsDelegate.cpp:
  • WebCoreSupport/WebDesktopNotificationsDelegate.h:

Remove legacy notification specific code.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebProcessCreationParameters.cpp:
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
  • WebProcess/Notifications/NotificationPermissionRequestManager.h:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.h:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:
  • WebProcess/WebCoreSupport/WebNotificationClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebProcess.cpp:

Remove legacy notification specific code.

Source/WTF:

  • wtf/FeatureDefines.h:

Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

Tools:

  • DumpRenderTree/win/DRTDesktopNotificationPresenter.cpp:

(DRTDesktopNotificationPresenter::checkNotificationPermission):

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Remove use and definition of ENABLE_LEGACY_NOTIFICATIONS.

LayoutTests:

  • Remove fast/notifications/. It was skipped on all platforms and use legacy Notifications API.
  • Remove http/notifications/legacy. It tested the legacy API.
  • Update two tests in fast/history to use the non-legacy API to test page cache + notifications.
  • Update TestExpectations for removals.
  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • fast/history/page-cache-notification-non-suspendable.html:
  • fast/history/page-cache-notification-suspendable.html:
  • fast/notifications: Removed.
  • fast/notifications/notification-after-close-expected.txt: Removed.
  • fast/notifications/notification-after-close.html: Removed.
  • fast/notifications/notification-permisssion-deletable-expected.txt: Removed.
  • fast/notifications/notification-permisssion-deletable.html: Removed.
  • fast/notifications/notifications-cancel-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-cancel-request-permission.html: Removed.
  • fast/notifications/notifications-check-permission-expected.txt: Removed.
  • fast/notifications/notifications-check-permission.html: Removed.
  • fast/notifications/notifications-click-event-expected.txt: Removed.
  • fast/notifications/notifications-click-event-focus-expected.txt: Removed.
  • fast/notifications/notifications-click-event-focus.html: Removed.
  • fast/notifications/notifications-click-event.html: Removed.
  • fast/notifications/notifications-constructor-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-request-permission.html: Removed.
  • fast/notifications/notifications-constructor-with-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-with-permission.html: Removed.
  • fast/notifications/notifications-constructor-without-permission-expected.txt: Removed.
  • fast/notifications/notifications-constructor-without-permission.html: Removed.
  • fast/notifications/notifications-display-close-events-expected.txt: Removed.
  • fast/notifications/notifications-display-close-events.html: Removed.
  • fast/notifications/notifications-document-close-crash-expected.txt: Removed.
  • fast/notifications/notifications-document-close-crash.html: Removed.
  • fast/notifications/notifications-event-stop-propagation-expected.txt: Removed.
  • fast/notifications/notifications-event-stop-propagation.html: Removed.
  • fast/notifications/notifications-multi-events-expected.txt: Removed.
  • fast/notifications/notifications-multi-events.html: Removed.
  • fast/notifications/notifications-no-icon-expected.txt: Removed.
  • fast/notifications/notifications-no-icon.html: Removed.
  • fast/notifications/notifications-permission-expected.txt: Removed.
  • fast/notifications/notifications-permission.html: Removed.
  • fast/notifications/notifications-replace-expected.txt: Removed.
  • fast/notifications/notifications-replace.html: Removed.
  • fast/notifications/notifications-request-permission-expected.txt: Removed.
  • fast/notifications/notifications-request-permission-optional-expected.txt: Removed.
  • fast/notifications/notifications-request-permission-optional.html: Removed.
  • fast/notifications/notifications-request-permission.html: Removed.
  • fast/notifications/notifications-rtl-expected.txt: Removed.
  • fast/notifications/notifications-rtl.html: Removed.
  • fast/notifications/notifications-sandbox-permission-expected.txt: Removed.
  • fast/notifications/notifications-sandbox-permission.html: Removed.
  • fast/notifications/notifications-window-close-crash-expected.txt: Removed.
  • fast/notifications/notifications-window-close-crash.html: Removed.
  • fast/notifications/notifications-with-permission-expected.txt: Removed.
  • fast/notifications/notifications-with-permission.html: Removed.
  • fast/notifications/notifications-without-permission-expected.txt: Removed.
  • fast/notifications/notifications-without-permission.html: Removed.
  • fast/notifications/request-notification-permission-while-reloading-expected.txt: Removed.
  • fast/notifications/request-notification-permission-while-reloading.html: Removed.
  • fast/notifications/resources: Removed.
  • fast/notifications/resources/notifications-cancel-request-permission.html: Removed.
  • fast/notifications/resources/notifications-iframe.html: Removed.
  • http/tests/notifications/legacy: Removed.
  • http/tests/notifications/legacy/double-show-expected.txt: Removed.
  • http/tests/notifications/legacy/double-show.html: Removed.
  • http/tests/notifications/legacy/events-expected.txt: Removed.
  • http/tests/notifications/legacy/events.html: Removed.
  • http/tests/notifications/legacy/notification-request-permission-then-navigate-expected.txt: Removed.
  • http/tests/notifications/legacy/notification-request-permission-then-navigate.html: Removed.
  • http/tests/notifications/legacy/request-expected.txt: Removed.
  • http/tests/notifications/legacy/request-no-callback-expected.txt: Removed.
  • http/tests/notifications/legacy/request-no-callback.html: Removed.
  • http/tests/notifications/legacy/request.html: Removed.
  • http/tests/notifications/legacy/resources: Removed.
  • http/tests/notifications/legacy/resources/notify-opener-done.html: Removed.
  • http/tests/notifications/legacy/resources/request-permission-then-navigate.html: Removed.
  • http/tests/notifications/legacy/show-expected.txt: Removed.
  • http/tests/notifications/legacy/show.html: Removed.
  • http/tests/notifications/legacy/window-show-on-click-expected.txt: Removed.
  • http/tests/notifications/legacy/window-show-on-click.html: Removed.
1:20 PM Changeset in webkit [216205] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marked http/tests/xmlhttprequest/workers/methods-async.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=160368

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-04

  • platform/ios-wk2/TestExpectations:
1:16 PM Changeset in webkit [216204] by Antti Koivisto
  • 8 edits
    2 adds in trunk

REGRESSION (Safari 10.1): When 'transition' contains -ms-transform, transform-origin is also transitioned
https://bugs.webkit.org/show_bug.cgi?id=171250
<rdar://problem/31827243>

Reviewed by Geoffrey Garen.

Source/WebCore:

We were mapping unknown properties to 'all' animation. With this patch we ignore them instead.
The patch also implements roundtripping of unknown properties via CSSOM, matching Blink and Gecko.

Test: transitions/transition-unknown-property-ignore.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTransitionPropertyValue):

Return the correct name for unknown properties.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationProperty):

Map any unknown property to AnimateUnknownProperty mode instead of falling back to the default of AnimateAll.
Save the unknown property name so we can roundtrip it properly.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):

Ignore AnimateUnknownProperty like AnimateNone.

  • platform/animation/Animation.h:

(WebCore::Animation::unknownProperty):
(WebCore::Animation::setUnknownProperty):

LayoutTests:

  • transitions/transition-unknown-property-ignore-expected.txt: Added.
  • transitions/transition-unknown-property-ignore.html: Added.
  • transitions/transitions-parsing-expected.txt:
  • transitions/transitions-parsing.html:

Update the roundtrip expectations for unknown properties. The new results match Blink and Gecko.

1:08 PM Changeset in webkit [216203] by aestes@apple.com
  • 13 edits in trunk/Tools

Give +testwebkitapi_configurationWithTestPlugInClassName: a shorter name
https://bugs.webkit.org/show_bug.cgi?id=171673

Reviewed by Dan Bernstein.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AdditionalReadAccessAllowedURLs.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleEditingDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleParameters.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/BundleRangeHandle.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/CancelFontSubresource.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:

(configurationWithContentFilterSettings):
(-[LazilyLoadPlatformFrameworksController init]):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptions.mm:

(runTestWithWidth):

  • TestWebKitAPI/Tests/WebKit2Cocoa/UserContentWorld.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/WKWebViewConfigurationExtras.h:
  • TestWebKitAPI/WKWebViewConfigurationExtras.mm:

(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:]):
(+[WKWebViewConfiguration testwebkitapi_configurationWithTestPlugInClassName:]): Renamed to
+_test_configurationWithTestPlugInClassName:

1:02 PM Changeset in webkit [216202] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Clean up MutationRecord.idl
https://bugs.webkit.org/show_bug.cgi?id=171685

Reviewed by Sam Weinig.

Clean up MutationRecord.idl to match the specification:

There is no Web-facing behavior change.

  • dom/MutationRecord.idl:
1:00 PM Changeset in webkit [216201] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[GTK][JSCOnly] Implement memoryFootprint for Linux
https://bugs.webkit.org/show_bug.cgi?id=171680

Reviewed by Carlos Alberto Lopez Perez.

Darwin's phys_footprint returns the amount of dirty anonymous memory in the process.
This patch implements the same thing in Linux by reading /proc/self/smaps.
We sum sizes of private dirty pages in anonymous regions.

  • wtf/MemoryFootprint.cpp:

(WTF::forEachLine):
(WTF::memoryFootprint):

12:55 PM Changeset in webkit [216200] by Chris Dumez
  • 4 edits in trunk

Reformat / clean up Event.idl
https://bugs.webkit.org/show_bug.cgi?id=171675

Reviewed by Sam Weinig.

Source/WebCore:

Reformat / clean up Event.idl to match the latest spec more closely:

There is no web-facing behavior change, except for properties being
enumerated in a slightly different order.

  • dom/Event.idl:

LayoutTests:

Rebaseline test now that the Event properties are in a slightly different order.

  • inspector/model/remote-object-get-properties-expected.txt:
12:49 PM Changeset in webkit [216199] by dbates@webkit.org
  • 7 edits in trunk/Source/WebCore

Cleanup: Extract CachedScript::mimeTypeAllowedByNosniff() into a common function
https://bugs.webkit.org/show_bug.cgi?id=171678

Reviewed by Andy Estes.

Extract CachedScript::mimeTypeAllowedByNosniff() into a common function that can
be shared by LoadableClassicScript and WorkerScriptLoader.

No functionality was changed. So, no new tests.

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::notifyFinished): Modified to use WebCore::isScriptAllowedByNosniff().

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::mimeType): Deleted; incorporated into WebCore::isScriptAllowedByNosniff().
(WebCore::CachedScript::mimeTypeAllowedByNosniff): Deleted; incorporated into WebCore::isScriptAllowedByNosniff().

  • loader/cache/CachedScript.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::isScriptAllowedByNosniff): Added. Note that it is sufficient to extract the MIME type
as-is and query the MIME type registry because the MIME type registry performs look ups case-insensitively.

  • platform/network/ResourceResponseBase.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveResponse): Modified to use WebCore::isScriptAllowedByNosniff().
(WebCore::mimeTypeAllowedByNosniff): Deleted.

11:39 AM Changeset in webkit [216198] by commit-queue@webkit.org
  • 73 edits in trunk/Source/WebCore

Make the [EnabledBySetting] extended attribute work for any attribute or operation on a prototype
https://bugs.webkit.org/show_bug.cgi?id=171588

Patch by Sam Weinig <sam@webkit.org> on 2017-05-04
Reviewed by Dean Jackson.

  • bindings/js/JSDOMIterator.h:

(WebCore::JSDOMIterator::createPrototype):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

  • bindings/js/JSDOMWrapperCache.h:

(WebCore::getDOMStructure):
(WebCore::getDOMPrototype):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):
Update to account for createPrototype and prototype taking the global object by reference.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsSettingsCheckForPrototypeProperty):
Add predicate to determine if an interface has any settings enabled properties on the prototype,
needed to determine if we should pass the global object to finishCreation.

(GenerateHeader):
Update signature of both createPrototype and prototype to take JSDOMGlobalObject& rather than
a JSC::JSGlobalObject*, this allows us to pass the more specific type to the prototype constructor,
and access the ScriptExecutionContext for the Settings.

(GeneratePropertiesHashTable):
Update to return, via out parameter, arrays with the attributes and operations that specify EnabledBySetting. This
mimics the model used for RuntimeEnabledFeatures.

(GenerateImplementation):
In {Class}Prototype::finishCreation, add code to check settings to see if an attribute or operation should be enabled,
and if it shouldn't remove it from the object. This, again, is modeled on RuntimeEnabledFeatures.

(GeneratePrototypeDeclaration):
Update signatures to take JSDOMGlobalObject& and specialize finishCreation to take one if there are any properties
that require settings to enable.

(GenerateConstructorHelperMethods):
Update for new signature of prototype(...).

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSInterfaceName.h:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSMapLike.h:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.h:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.h:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.h:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestIterable.h:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.h:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.h:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.h:

Update test results for new test values and changes in signatures to pass JSDOMGlobalObject.

  • bindings/scripts/test/TestObj.idl:

Add tests for [EnableBySetting] for attributes and operations.

  • bridge/objc/objc_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:
  • inspector/CommandLineAPIHost.cpp:

Update createPrototype function to take the global object by reference.

11:32 AM Changeset in webkit [216197] by eric.carlson@apple.com
  • 33 edits
    2 adds in trunk

[MediaStream] Allow host application to enable/disable media capture
https://bugs.webkit.org/show_bug.cgi?id=171292
<rdar://problem/31821492>

Reviewed by Jer Noble.

Source/WebCore:

No new layout tests, added an API test instead.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::endStream): New, stop all tracks.

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

(WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup.
(WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream.
(WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused.

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

(WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended'
event should be sent or not.
(WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended.

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture): Stop all streams in the document.

  • dom/Document.h:
  • page/Page.cpp:

(WebCore::Page::stopMediaCapture): Stop all streams.

  • page/Page.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame
when the stream ends.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics
change to HTMLMediaElement refresh state.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't
running, we always need to clear m_session on iOS.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMediaCaptureEnabled): New.
(WKPageGetMediaCaptureEnabled): New.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setMediaCaptureEnabled:]): New.
(-[WKWebView _mediaCaptureEnabled]): New.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate): Initialize webViewRequestUserMediaAuthorizationForDevicesURLMainFrameURLDecisionHandler
and webViewCheckUserMediaPermissionForURLMainFrameURLFrameIdentifierDecisionHandler on macOS
and iOS.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
Initialize the rejection timer.
(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
Call invalidatePendingRequests.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests): Invalidate all
pending requests.
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture): New.
(WebKit::UserMediaPermissionRequestManagerProxy::rejectionTimerFired): Reject a promise and
schedule the timer if there are any others pending.
(WebKit::UserMediaPermissionRequestManagerProxy::scheduleNextRejection):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Don't
prompt the user if capture is disabled.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidateRequests): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::clearCachedState): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willEnableMediaStreamInPage): Stop capture in the current
page on iOS.
(WebKit::UserMediaProcessManager::setCaptureEnabled):

  • UIProcess/UserMediaProcessManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMediaCaptureEnabled):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::mediaCaptureEnabled):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::cancelPendingRequests): New, cancel all pending
requests.
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): Deny the request.
(WebKit::UserMediaPermissionRequestManager::cancelMediaDevicesEnumeration):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopMediaCapture):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added.

(-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]):
(-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
(MediaCaptureDisabledTest::SetUp):
(MediaCaptureDisabledTest::loadTestAndWaitForMessage):
(TEST_F):

  • TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added.
11:27 AM Changeset in webkit [216196] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Should never hit layout while updating the render tree.
https://bugs.webkit.org/show_bug.cgi?id=171643

Reviewed by Antti Koivisto.

Laying out a half-baked render tree is not a great idea. Especially considering
that layout (sadly) can mutate the render tree.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

11:25 AM Changeset in webkit [216195] by dbates@webkit.org
  • 6 edits
    1 add in trunk

importScripts() should respect X-Content-Type-Options: nosniff
https://bugs.webkit.org/show_bug.cgi?id=171248
<rdar://problem/31819023>

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

Update expected results for Web Platform Tests that now pass.

  • web-platform-tests/fetch/nosniff/importscripts-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/worker-expected.txt:

Source/WebCore:

Do not load a worker script if it has the HTTP response header "X-Content-Type-Options: nosniff"
and its Content-type header is not an allowed JavaScript script mime type. This behavior follows
from <https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-classic-worker-imported-script> (3 May 2017),
<https://fetch.spec.whatwg.org/#concept-fetch> (2 May 2017), and <https://fetch.spec.whatwg.org/#concept-main-fetch>.

  • workers/WorkerScriptLoader.cpp:

(WebCore::mimeTypeAllowedByNosniff): Added.
(WebCore::WorkerScriptLoader::didReceiveResponse): Mark the load as failed if the response
is not allowed by X-Content-Type-Options: nosniff.

LayoutTests:

Unskip web-platform-tests/fetch/nosniff/importscripts as it now passes.

11:02 AM Changeset in webkit [216194] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Unreviewed: Replace Windows line ending (CRLF) by Unix line ending (CR).

  • plugins/windowless_plugin_paint_test.html:
10:46 AM Changeset in webkit [216193] by Caio Lima
  • 2 edits in trunk/Tools

Unreviewed, Adding self to contributors.json

  • Scripts/webkitpy/common/config/contributors.json: Added name.
10:44 AM Changeset in webkit [216192] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Unreviewed: Replace Windows line ending (CRLF) by Unix line ending (CR).

  • compositing/video/video-with-invalid-source.html:
10:19 AM Changeset in webkit [216191] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip media/modern-media-controls/pip-support/pip-support-click.html on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=171610

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:45 AM Changeset in webkit [216190] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

9:41 AM Changeset in webkit [216189] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.21

Tag Safari-604.1.21.

8:41 AM Changeset in webkit [216188] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION(STP): rgb() with calc() containing variables doesn't work
https://bugs.webkit.org/show_bug.cgi?id=169939

Reviewed by Zalan Bujtas.

Source/WebCore:

Added new test in fast/css/variables.

  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcExpressionNodeParser::parseValue):
Treat floats in calcs as integers when we can.

LayoutTests:

  • fast/css/variables/calc-float-to-int-expected.html: Added.
  • fast/css/variables/calc-float-to-int.html: Added.
8:33 AM Changeset in webkit [216187] by Konstantin Tokarev
  • 7 edits in trunk

Fix compilation with ICU 59.1
https://bugs.webkit.org/show_bug.cgi?id=171612

Reviewed by Mark Lam.

ICU 59.1 has broken source compatibility. Now it defines UChar as
char16_t, which does not allow automatic type conversion from unsigned
short in C++ code.

Source/JavaScriptCore:

  • API/JSStringRef.cpp:

(JSStringCreateWithCharacters):
(JSStringCreateWithCharactersNoCopy):
(JSStringGetCharactersPtr):

  • runtime/DateConversion.cpp:

(JSC::formatDateTime):

Source/WebKit2:

  • Shared/API/c/WKString.cpp:

(WKStringGetCharacters):

Tools:

  • TestRunnerShared/UIScriptContext/UIScriptContext.cpp:

(UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback):

7:58 AM Changeset in webkit [216186] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] -[WKWebsiteDataStore httpCookieStore] is declared in the main @interface but implemented in a category
https://bugs.webkit.org/show_bug.cgi?id=171657

Reviewed by Sam Weinig.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore httpCookieStore]): Moved from the WKPrivate category into the main

@implementation block.

7:41 AM Changeset in webkit [216185] by aestes@apple.com
  • 9 edits in trunk

[Cocoa] Add an optional width parameter to -[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]
https://bugs.webkit.org/show_bug.cgi?id=171646
<rdar://problem/30306321>

Reviewed by Tim Horton.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]): Called
-renderedImageWithOptions:width: with a nil width.
(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]): Passed an optional width
to InjectedBundleNodeHandle::renderedImage().

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect): If a width is specified, create an image graphics context at that
width, preserving the aspect ratio of paintingRect.
(WebKit::InjectedBundleNodeHandle::renderedImage):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptions.mm:

(runTestWithWidth):
(TEST):
(-[RenderedImageWithOptionsObject didRenderImageWithSize:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsPlugIn.mm:

(-[RenderedImageWithOptionsPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[RenderedImageWithOptionsPlugIn webProcessPlugInBrowserContextController:didFinishLoadForFrame:]):
(-[RenderedImageWithOptionsPlugIn renderImageWithWidth:completionHandler:]):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RenderedImageWithOptionsProtocol.h:
7:30 AM Changeset in webkit [216184] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk/Tools

[GTK] Fontconfig 2.11.2 in JHBuild does not build with glibc 2.25+ or gperf 3.1+
https://bugs.webkit.org/show_bug.cgi?id=171649

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-05-04
Reviewed by Carlos Garcia Campos.

Add two patches picked from the upstream repository to fix building of
the Fontconfig module in JHBuild. Additionally, this needed a patch to
add "autogen.sh" as it is not included in release tarballs. Also:
building the module with srcdir!=builddir prevents "fcobjshash.gperf"
being regenerated (which is needed) so this is disabled for the
Fontconfig module.

  • gtk/jhbuild.modules:
  • gtk/patches/fontconfig-2.11.1-add-autogen.patch: Added.
  • gtk/patches/fontconfig-Avoid-conflicts-with-integer-width-macros-from-TS-18661-1-2014.patch: Added.
  • gtk/patches/fontconfig-Fix-the-build-issue-with-gperf-3.1.patch: Added.
5:56 AM Changeset in webkit [216183] by commit-queue@webkit.org
  • 33 edits
    2 deletes in trunk

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

FTBFS for iOS due to missing WebPageProxy::stopMediaCapture()
implementation. (Requested by ddkilzer on #webkit).

Reverted changeset:

"[MediaStream] Allow host application to enable/disable media
capture"
https://bugs.webkit.org/show_bug.cgi?id=171292
http://trac.webkit.org/changeset/216172

5:42 AM Changeset in webkit [216182] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[Threaded Compositor] SHOULD NEVER BE REACHED in WebKit::CompositingRunLoop::updateCompleted
https://bugs.webkit.org/show_bug.cgi?id=171336

Reviewed by Michael Catanzaro.

We are assuming that all calls to ThreadedCompositor::renderLayerTree() happen because of an scheduled update,
but that's not true in the case of ThreadedCompositor::forceRepaint(). In that case we never want to call
CompositingRunLoop::updateCompleted().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::sceneUpdateFinished):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
5:30 AM Changeset in webkit [216181] by ddkilzer@apple.com
  • 5 edits in trunk/Source/WebKit2

check-webkit-style exits with an error while parsing Source/WebKit2/Scripts/webkit/ directory: KeyError: 'st'
<https://bugs.webkit.org/show_bug.cgi?id=171510>

Reviewed by Daniel Bates.

The problem was that 'import parser' was ambiguous since there
is a built-in parser module that comes with Python. Changing
'import parser' to 'from webkit import parser' fixed the error
in check-webkit-style (and pylint) by forcing it to load the
local 'parser' module, but then running messages_unittest.py
directly would fail because .../Source/WebKit2/Scripts was not
in the module search path by default. This is fixed by using
sys.path.append() to add .../Source/WebKit2/Scripts to the
module search path based on the path to messages_unittest.py.

As an added bonus, this patch also fixes all webkit-style issues
in Source/WebKit2/Scripts/webkit/*.py files.

  • Scripts/webkit/messages.py:
  • Separate local module imports from built-in modules for consistency.
  • Fix whitespace issues for check-webkit-style, and remove stray semi-colon.
  • Scripts/webkit/messages_unittest.py:
  • Update sys.path to find the 'webkit' module based on the path to messages_unittest.py. This makes 'from webkit import ...' statements work when running messages_unittest.py directly.
  • Change 'messages' and 'parser' modules to use 'from webkit import ...' format for consistency.
  • Fix whitespace issues for check-webkit-style.
  • Scripts/webkit/model.py:
  • Fix whitespace issue for check-webkit-style.
  • Scripts/webkit/parser.py:
  • Fix whitespace issue for check-webkit-style.
5:20 AM Changeset in webkit [216180] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

stress/call-apply-exponential-bytecode-size.js.no-llint failing on 32-bit debug for OOM on executable memory
https://bugs.webkit.org/show_bug.cgi?id=171008

Reviewed by Yusuke Suzuki.

This patch lowers the threshold for .call/.apply recursion
in an attempt to emit less code and not impact perf.
We're currently failing tests on x86-32 by running out
of executable memory. If perf gets impacted because of this,
then I'll apply a stricter change just to 32-bit platforms.
However, if this doesn't negatively impact perf, it's all around
better than all platforms emit less bytecode.

  • bytecompiler/NodesCodegen.cpp:
4:57 AM Changeset in webkit [216179] by commit-queue@webkit.org
  • 3 edits
    6 deletes in trunk/Tools

[GTK] Bump GStreamer version to 1.10.4 in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=171595

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-05-04
Reviewed by Xabier Rodriguez-Calvar.

  • gtk/jhbuild.modules:
  • gtk/patches/gst-plugins-bad-0001-dtls-port-to-OpenSSL-1.1.0.patch: Removed.
  • gtk/patches/gst-plugins-bad-0002-dtlscertificate-Fix-error-checking-in-RSA_generate_k.patch: Removed.
  • gtk/patches/gst-plugins-good-0001-rtpbin-pipeline-gets-an-EOS-when-any-rtpsources-byes.patch: Removed.
  • gtk/patches/gst-plugins-good-0002-rtpbin-avoid-generating-errors-when-rtcp-messages-ar.patch: Removed.
  • gtk/patches/gst-plugins-good-0004-qtdemux-add-context-for-a-preferred-protection.patch:
  • gtk/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Removed.
  • gtk/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Removed.
4:40 AM Changeset in webkit [216178] by Yusuke Suzuki
  • 30 edits
    14 adds in trunk

[JSC] Math unary functions should be handled by DFG
https://bugs.webkit.org/show_bug.cgi?id=171269

Reviewed by Saam Barati.

JSTests:

  • stress/arith-acos-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueACosNoArgument):
(testNoArgument):
(opaqueAllTypesACos):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueACosForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueACosForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueACosForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueACosWithException):
(testException):

  • stress/arith-acosh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueACoshNoArgument):
(testNoArgument):
(opaqueAllTypesACosh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueACoshForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueACoshForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueACoshForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueACoshWithException):
(testException):

  • stress/arith-asin-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueASinNoArgument):
(testNoArgument):
(opaqueAllTypesASin):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueASinForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueASinForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueASinForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueASinWithException):
(testException):

  • stress/arith-asinh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueASinhNoArgument):
(testNoArgument):
(opaqueAllTypesASinh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueASinhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueASinhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueASinhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueASinhWithException):
(testException):

  • stress/arith-atan-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueATanNoArgument):
(testNoArgument):
(opaqueAllTypesATan):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueATanForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueATanForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueATanForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueATanWithException):
(testException):

  • stress/arith-atanh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueATanhNoArgument):
(testNoArgument):
(opaqueAllTypesATanh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueATanhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueATanhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueATanhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueATanhWithException):
(testException):

  • stress/arith-cbrt-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueCbrtNoArgument):
(testNoArgument):
(opaqueAllTypesCbrt):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueCbrtForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueCbrtForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueCbrtForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueCbrtWithException):
(testException):

  • stress/arith-cosh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueCoshNoArgument):
(testNoArgument):
(opaqueAllTypesCosh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueCoshForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueCoshForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueCoshForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueCoshWithException):
(testException):

  • stress/arith-expm1-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueExpm1NoArgument):
(testNoArgument):
(opaqueAllTypesExpm1):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueExpm1ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueExpm1ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueExpm1ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueExpm1WithException):
(testException):

  • stress/arith-log10-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueLog10NoArgument):
(testNoArgument):
(opaqueAllTypesLog10):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueLog10ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueLog10ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueLog10ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueLog10WithException):
(testException):

  • stress/arith-log2-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueLog2NoArgument):
(testNoArgument):
(opaqueAllTypesLog2):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueLog2ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueLog2ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueLog2ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueLog2WithException):
(testException):

  • stress/arith-sinh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueSinhNoArgument):
(testNoArgument):
(opaqueAllTypesSinh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueSinhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueSinhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueSinhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueSinhWithException):
(testException):

  • stress/arith-tan-on-various-types.js:

(isIdentical):

  • stress/arith-tanh-on-various-types.js: Added.

(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueTanhNoArgument):
(testNoArgument):
(opaqueAllTypesTanh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueTanhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueTanhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueTanhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueTanhWithException):
(testException):

Source/JavaScriptCore:

ArithSin, ArithCos, and ArithLog are just calling a C runtime function.
While handling them in DFG is not very effective for performance, they
can drop some type checks & value conversions and mark them as pure
operations. It is effective if they are involved in some complex
optimization phase. Actually, ArithLog is effective in kraken.

While a few of Math functions have DFG nodes, basically math functions
are pure. And large part of these functions are just calling a C runtime
function. This patch generalizes these nodes in DFG as ArithUnary. And
we annotate many unary math functions with Intrinsics and convert them
to ArithUnary in DFG. It also cleans up duplicate code in ArithSin,
ArithCos, and ArithLog. If your math function has some good DFG / FTL
optimization rather than calling a C runtime function, you should add
a specialized DFG node, like ArithSqrt.

We also create a new namespace JSC::Math. Inside it, we collect math functions.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArithMode.cpp:

(JSC::DFG::arithUnaryFunction):
(JSC::DFG::arithUnaryOperation):
(WTF::printInternal):

  • dfg/DFGArithMode.h:
  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasArithUnaryType):
(JSC::DFG::Node::arithUnaryType):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithUnary):
(JSC::DFG::SpeculativeJIT::compileArithCos): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithTan): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithSin): Deleted.
(JSC::DFG::SpeculativeJIT::compileArithLog): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArithUnary):
(JSC::FTL::DFG::LowerDFGToB3::compileArithSin): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileArithCos): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileArithTan): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::compileArithLog): Deleted.

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::doubleUnary):
(JSC::FTL::Output::doubleSin): Deleted.
(JSC::FTL::Output::doubleCos): Deleted.
(JSC::FTL::Output::doubleTan): Deleted.
(JSC::FTL::Output::doubleLog): Deleted.

  • ftl/FTLOutput.h:
  • runtime/Intrinsic.h:
  • runtime/MathCommon.cpp:

(JSC::Math::log1p):

  • runtime/MathCommon.h:
  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):
(JSC::mathProtoFuncACos):
(JSC::mathProtoFuncASin):
(JSC::mathProtoFuncATan):
(JSC::mathProtoFuncCos):
(JSC::mathProtoFuncExp):
(JSC::mathProtoFuncLog):
(JSC::mathProtoFuncSin):
(JSC::mathProtoFuncTan):
(JSC::mathProtoFuncACosh):
(JSC::mathProtoFuncASinh):
(JSC::mathProtoFuncATanh):
(JSC::mathProtoFuncCbrt):
(JSC::mathProtoFuncCosh):
(JSC::mathProtoFuncExpm1):
(JSC::mathProtoFuncLog1p):
(JSC::mathProtoFuncLog10):
(JSC::mathProtoFuncLog2):
(JSC::mathProtoFuncSinh):
(JSC::mathProtoFuncTanh):

2:03 AM Changeset in webkit [216177] by Carlos Garcia Campos
  • 2 edits
    1 copy
    2 adds in trunk/LayoutTests

Unreviewed gardening. Update main expectations of http/tests/inspector/network/resource-request-headers.html.

And add platform specific results for mac-wk2.

  • http/tests/inspector/network/resource-request-headers-expected.txt:
  • platform/mac-wk2/http/tests/inspector/network/resource-request-headers-expected.txt: Copied from LayoutTests/http/tests/inspector/network/resource-request-headers-expected.txt.
12:38 AM Changeset in webkit [216176] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r214947 - Show a log message when an invalid message is received in non cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=170506

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-04-05
Reviewed by Michael Catanzaro.

We just crash, but without knowing the details about the message it's impossible to debug.

  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::didReceiveInvalidMessage):

May 3, 2017:

11:58 PM Changeset in webkit [216175] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r214915 - Do not assert when CharacterData representing an Attr fires events
https://bugs.webkit.org/show_bug.cgi?id=170454
<rdar://problem/30979320>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make the NoEventDispatchAssertion in CharacterData::notifyParentAfterChange conditional
since Attr elements should be allowed to fire events.

Tests: fast/dom/no-assert-for-malformed-js-url-attribute.html

  • dom/CharacterData.cpp:

(WebCore::CharacterData::notifyParentAfterChange):

LayoutTests:

  • fast/dom/no-assert-for-malformed-js-url-attribute-expected.txt: Added.
  • fast/dom/no-assert-for-malformed-js-url-attribute.html: Added.
11:14 PM Changeset in webkit [216174] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r215686): Incremental reads from SharedBuffer are wrong after r215686
https://bugs.webkit.org/show_bug.cgi?id=171602

Reviewed by Michael Catanzaro.

In TextTrackLoader::processNewCueData() and PNGImageReader::decode() we changed the patter to read data from a
SharedBuffer at a given offset. The new pattern is not correct, because it assumes the whole segment is always
read, and the new offset is not correct when that's not the case. This has broken the rendering of png images in
the GTK+ port, only the first bytes are correctly decoded and drawn, but not the rest of the image.

Fixes: editing/pasteboard/paste-image-using-image-data.html

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageReader::decode):

10:50 PM Changeset in webkit [216173] by sbarati@apple.com
  • 9 edits in trunk

How we build polymorphic cases is wrong when making a call from Wasm
https://bugs.webkit.org/show_bug.cgi?id=171527

Reviewed by JF Bastien.

Source/JavaScriptCore:

This patches fixes a bug when we emit a polymorphic call IC from
Wasm. We were incorrectly assuming that if we made a call *from wasm*,
then the thing we are *calling to* does not have a CodeBlock. This
is obviously wrong. This patch fixes the incorrect assumption.

This patch also does two more things:

  1. Add a new option that makes us make calls to JS using a

slow path instead of using a call IC.

  1. Fixes a potential GC bug where we didn't populate JSWebAssemblyCodeBlock's

JSWebAssemblyModule pointer.

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • runtime/Options.h:
  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):

  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::create):
(JSC::JSWebAssemblyCodeBlock::finishCreation):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):

Tools:

  • Scripts/run-jsc-stress-tests:
9:48 PM Changeset in webkit [216172] by eric.carlson@apple.com
  • 33 edits
    2 adds in trunk

[MediaStream] Allow host application to enable/disable media capture
https://bugs.webkit.org/show_bug.cgi?id=171292
<rdar://problem/31821492>

Reviewed by Jer Noble.

Source/WebCore:

No new layout tests, added an API test instead.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::endStream): New, stop all tracks.

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

(WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup.
(WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream.
(WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused.

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

(WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended'
event should be sent or not.
(WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended.

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture): Stop all streams in the document.

  • dom/Document.h:
  • page/Page.cpp:

(WebCore::Page::stopMediaCapture): Stop all streams.

  • page/Page.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame
when the stream ends.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics
change to HTMLMediaElement refresh state.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't
running, we always need to clear m_session on iOS.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMediaCaptureEnabled): New.
(WKPageGetMediaCaptureEnabled): New.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setMediaCaptureEnabled:]): New.
(-[WKWebView _mediaCaptureEnabled]): New.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate): Initialize webViewRequestUserMediaAuthorizationForDevicesURLMainFrameURLDecisionHandler
and webViewCheckUserMediaPermissionForURLMainFrameURLFrameIdentifierDecisionHandler on macOS
and iOS.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
Initialize the rejection timer.
(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
Call invalidatePendingRequests.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests): Invalidate all
pending requests.
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture): New.
(WebKit::UserMediaPermissionRequestManagerProxy::rejectionTimerFired): Reject a promise and
schedule the timer if there are any others pending.
(WebKit::UserMediaPermissionRequestManagerProxy::scheduleNextRejection):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Don't
prompt the user if capture is disabled.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidateRequests): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::clearCachedState): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willEnableMediaStreamInPage): Stop capture in the current
page on iOS.
(WebKit::UserMediaProcessManager::setCaptureEnabled):

  • UIProcess/UserMediaProcessManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMediaCaptureEnabled):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::mediaCaptureEnabled):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::cancelPendingRequests): New, cancel all pending
requests.
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): Deny the request.
(WebKit::UserMediaPermissionRequestManager::cancelMediaDevicesEnumeration):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopMediaCapture):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added.

(-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]):
(-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
(MediaCaptureDisabledTest::SetUp):
(MediaCaptureDisabledTest::loadTestAndWaitForMessage):
(TEST_F):

  • TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added.
9:16 PM Changeset in webkit [216171] by wilander@apple.com
  • 15 edits
    2 adds in trunk

Resource Load Statistics: Remove all statistics for modifiedSince website data removals
https://bugs.webkit.org/show_bug.cgi?id=171584
<rdar://problem/24702576>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::clearInMemoryAndPersistentStore):

Now clears all regardless of the modifiedSince parameter's value.

Source/WebKit2:

These are all test infrastructure changes.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerClearInMemoryAndPersistentStoreModifiedSinceHours):

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::clearInMemoryAndPersistentStoreModifiedSinceHours):

  • UIProcess/WebResourceLoadStatisticsManager.h:

Tools:

New function to call the clear function that takes a modifiedSince parameter.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html: Added.
8:08 PM Changeset in webkit [216170] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the macOS Public SDK build
https://bugs.webkit.org/show_bug.cgi?id=171635
<rdar://problem/31812751>

Unreviewed because the commit queue told me to say this.

  • platform/spi/cocoa/AVKitSPI.h:
7:16 PM Changeset in webkit [216169] by keith_miller@apple.com
  • 5 edits
    1 add in trunk

Array.prototype.sort should also allow a null comparator
https://bugs.webkit.org/show_bug.cgi?id=171621
JSTests:

Reviewed by Michael Saboff.

Add test to make it less likely we revert to the incompatable behavior.
Also, fix now incorrect tests.

  • ChakraCore/test/Array/array_sort.baseline-jsc:
  • stress/array-sort-bad-comparator.js:

(test):

  • stress/sort-null-comparator.js: Added.

(assertEq):

Source/JavaScriptCore:

<rdar://problem/30757933>

Reviewed by Michael Saboff.

It looks like sort not accepting a null comparator
causes some pages to stop working. Those pages work in
Chrome/Firefox so we should try to match them.

  • builtins/ArrayPrototype.js:

(sort):

7:02 PM Changeset in webkit [216168] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Maintain interaction information imageURL as a URL, not a string
https://bugs.webkit.org/show_bug.cgi?id=171639

Reviewed by Sam Weinig.

  • Shared/ios/InteractionInformationAtPosition.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _previewItemController:commitPreview:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

6:40 PM Changeset in webkit [216167] by jdiggs@igalia.com
  • 4 edits
    2 adds in trunk

AX: aria-rowspan value should be ignored if td/th rowspan value is provided
https://bugs.webkit.org/show_bug.cgi?id=171214

Reviewed by Chris Fleizach.

Source/WebCore:

Return -1 in AccessibilityTableCell::ariaColumnSpan() and ariaRowSpan() if the
cell element has an explicit value for the native host language's span attribute.
Add checks to AccessibilityTableCell::columnIndexRange() and rowIndexRange() so
that we prefer an author-provided ARIA span value over an implicit host-language
span value. Similarly, add checks to AccessibilityARIAGridCell::columnIndexRange()
and rowIndexRange() so that we fall back on implicit host-language span values
when there is no author-provided ARIA span value and the ARIA cell is associated
with a cell element.

Test: accessibility/aria-cellspans-with-native-cellspans.html

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::ariaRowSpanWithRowIndex):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::columnIndexRange):
(WebCore::AccessibilityTableCell::ariaColumnSpan):
(WebCore::AccessibilityTableCell::ariaRowSpan):

LayoutTests:

  • accessibility/aria-cellspans-with-native-cellspans-expected.txt: Added.
  • accessibility/aria-cellspans-with-native-cellspans.html: Added.
6:39 PM Changeset in webkit [216166] by webkit@devinrousso.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r215630): Web Inspector: Option-Click on URL in Styles sidebar does not work
https://bugs.webkit.org/show_bug.cgi?id=171569

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Add missing frame parameter to WebInspector.openURL.

6:37 PM Changeset in webkit [216165] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/mac

[Cocoa] Stop exporting symbols for ivars that were made private
https://bugs.webkit.org/show_bug.cgi?id=171631

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-03
Reviewed by Dan Bernstein.

  • WebKit.exp:
6:20 PM Changeset in webkit [216164] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/xmlhttprequest/methods.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171638

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/ios-wk2/TestExpectations:
6:17 PM Changeset in webkit [216163] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark scrollingcoordinator/ios/nested-fixed-layer-positions.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171628

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
6:00 PM Changeset in webkit [216162] by Ryan Haddad
  • 33 edits
    2 deletes in trunk

Unreviewed, rolling out r216160 and r216161.
https://bugs.webkit.org/show_bug.cgi?id=171640

These changes broke the iOS build. (Requested by mlewis13 on
#webkit).

Reverted changesets:

"[MediaStream] Allow host application to enable/disable media
capture"
https://bugs.webkit.org/show_bug.cgi?id=171292
http://trac.webkit.org/changeset/216160

"[MediaStream] Allow host application to enable/disable media
capture"
https://bugs.webkit.org/show_bug.cgi?id=171292
http://trac.webkit.org/changeset/216161

Patch by Commit Queue <commit-queue@webkit.org> on 2017-05-03

5:27 PM Changeset in webkit [216161] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebKit2

[MediaStream] Allow host application to enable/disable media capture
https://bugs.webkit.org/show_bug.cgi?id=171292
<rdar://problem/31821492>

Unreviewed build fix.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::clearUserMediaState):

  • UIProcess/WebPageProxy.h:
5:03 PM Changeset in webkit [216160] by eric.carlson@apple.com
  • 33 edits
    2 adds in trunk

[MediaStream] Allow host application to enable/disable media capture
https://bugs.webkit.org/show_bug.cgi?id=171292
<rdar://problem/31821492>

Reviewed by Jer Noble.

Source/WebCore:

No new layout tests, added an API test instead.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::endStream): New, stop all tracks.

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

(WebCore::MediaStreamRegistry::unregisterStream): Minor cleanup.
(WebCore::MediaStreamRegistry::forEach): New, call the lambda with each stream.
(WebCore::MediaStreamRegistry::MediaStreamRegistry): Deleted, unused.

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

(WebCore::MediaStreamTrack::stopTrack): Add parameter so caller can specify if an 'ended'
event should be sent or not.
(WebCore::MediaStreamTrack::trackMutedChanged): Don't post an event if the track has ended.

  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture): Stop all streams in the document.

  • dom/Document.h:
  • page/Page.cpp:

(WebCore::Page::stopMediaCapture): Stop all streams.

  • page/Page.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Display a black frame
when the stream ends.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Signal a characteristics
change to HTMLMediaElement refresh state.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::stopProducingData): Don't return early if the session isn't
running, we always need to clear m_session on iOS.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetMediaCaptureEnabled): New.
(WKPageGetMediaCaptureEnabled): New.
(WKPageClearUserMediaState): Deleted, unused.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setMediaCaptureEnabled:]): New.
(-[WKWebView _mediaCaptureEnabled]): New.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate): Initialize webViewRequestUserMediaAuthorizationForDevicesURLMainFrameURLDecisionHandler
and webViewCheckUserMediaPermissionForURLMainFrameURLFrameIdentifierDecisionHandler on macOS
and iOS.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
Initialize the rejection timer.
(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
Call invalidatePendingRequests.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidatePendingRequests): Invalidate all
pending requests.
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture): New.
(WebKit::UserMediaPermissionRequestManagerProxy::rejectionTimerFired): Reject a promise and
schedule the timer if there are any others pending.
(WebKit::UserMediaPermissionRequestManagerProxy::scheduleNextRejection):
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Don't
prompt the user if capture is disabled.
(WebKit::UserMediaPermissionRequestManagerProxy::invalidateRequests): Deleted.
(WebKit::UserMediaPermissionRequestManagerProxy::clearCachedState): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willEnableMediaStreamInPage): Stop capture in the current
page on iOS.
(WebKit::UserMediaProcessManager::setCaptureEnabled):

  • UIProcess/UserMediaProcessManager.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMediaCaptureEnabled):
(WebKit::WebPageProxy::clearUserMediaState): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::mediaCaptureEnabled):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::cancelPendingRequests): New, cancel all pending
requests.
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): Deny the request.
(WebKit::UserMediaPermissionRequestManager::cancelMediaDevicesEnumeration):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::stopMediaCapture):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/UserMediaDisabled.mm: Added.

(-[UserMediaMessageHandler userContentController:didReceiveScriptMessage:]):
(-[UserMediaUIDelegate _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[UserMediaUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):
(MediaCaptureDisabledTest::SetUp):
(MediaCaptureDisabledTest::loadTestAndWaitForMessage):
(TEST_F):

  • TestWebKitAPI/Tests/WebKit2Cocoa/disableGetUserMedia.html: Added.
4:57 PM Changeset in webkit [216159] by Alan Bujtas
  • 3 edits
    2 adds in trunk

SearchInputType could end up with a mismatched renderer.
https://bugs.webkit.org/show_bug.cgi?id=171547
<rdar://problem/31935047>

Reviewed by Antti Koivisto.

Source/WebCore:

Normally we've got the correct renderer by the time we call into SearchInputType.
However, since HTMLInputElement::updateType() eagerly updates the type while the associated renderers are done lazily
(so we don't get them updated until after the next tree update), we could actually end up
with a mismatched renderer (e.g. through form submission).

Test: fast/forms/change-input-type-and-submit-form-crash.html

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::addSearchResult):
(WebCore::SearchInputType::didSetValueByUserEdit):

LayoutTests:

  • fast/forms/change-input-type-and-submit-form-crash-expected.txt: Added.
  • fast/forms/change-input-type-and-submit-form-crash.html: Added.
4:52 PM Changeset in webkit [216158] by Ryan Haddad
  • 8 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/reflection-text-expected.txt:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/compositing/geometry/fixed-in-composited-expected.txt:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
  • scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt:
4:50 PM Changeset in webkit [216157] by jiewen_tan@apple.com
  • 2 edits
    2 adds in trunk/Tools

[WebCrypto] Add an api test for testing wrapping/unwrapping serialized crypto keys
https://bugs.webkit.org/show_bug.cgi?id=171350
<rdar://problem/28600836>

Patched by Brady Eidson.

Reviewed by Brent Fulgham.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/NavigationClientDefaultCrypto.cpp: Added.

(TestWebKitAPI::runJavaScriptAlert):
(TestWebKitAPI::decidePolicyForNavigationAction):
(TestWebKitAPI::decidePolicyForNavigationResponse):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/navigation-client-default-crypto.html: Added.
4:50 PM Changeset in webkit [216156] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Make the VPIO audio unit a singleton, shared between multiple CaptureSources
https://bugs.webkit.org/show_bug.cgi?id=171622

Reviewed by Eric Carlson.

Move the implemnetation of CoreAudioCaptureSource into a shared singleton class, CoreAudioSharedUnit,
which will send audio to each of it's client CoreAudioCaptureSources. The first registered client will
define the settings used by the shared unit.

Drive-by fixes: Fix up setUseAVFoundationAudioCapture() to always accept the first value set.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::isProducingData):
(WebCore::CoreAudioSharedUnit::microphoneFormat):
(WebCore::CoreAudioSharedUnit::singleton):
(WebCore::CoreAudioSharedUnit::addClient):
(WebCore::CoreAudioSharedUnit::removeClient):
(WebCore::CoreAudioSharedUnit::addEchoCancellationSource):
(WebCore::CoreAudioSharedUnit::removeEchoCancellationSource):
(WebCore::CoreAudioSharedUnit::preferredIOBufferSize):
(WebCore::CoreAudioSharedUnit::setupAudioUnits):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::checkTimestamps):
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
(WebCore::CoreAudioSharedUnit::speakerCallback):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::CoreAudioSharedUnit::microphoneCallback):
(WebCore::CoreAudioSharedUnit::cleanupAudioUnits):
(WebCore::CoreAudioSharedUnit::startProducingData):
(WebCore::CoreAudioSharedUnit::stopProducingData):
(WebCore::CoreAudioSharedUnit::suspend):
(WebCore::CoreAudioSharedUnit::defaultInputDevice):
(WebCore::CoreAudioCaptureSource::create):
(WebCore::CoreAudioCaptureSource::factory):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::addEchoCancellationSource):
(WebCore::CoreAudioCaptureSource::removeEchoCancellationSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::audioSourceProvider):
(WebCore::CoreAudioCaptureSource::preferredSampleRate): Deleted.
(WebCore::CoreAudioCaptureSource::preferredIOBufferSize): Deleted.
(WebCore::CoreAudioCaptureSource::configureMicrophoneProc): Deleted.
(WebCore::CoreAudioCaptureSource::configureSpeakerProc): Deleted.
(WebCore::CoreAudioCaptureSource::checkTimestamps): Deleted.
(WebCore::CoreAudioCaptureSource::provideSpeakerData): Deleted.
(WebCore::CoreAudioCaptureSource::speakerCallback): Deleted.
(WebCore::CoreAudioCaptureSource::processMicrophoneSamples): Deleted.
(WebCore::CoreAudioCaptureSource::microphoneCallback): Deleted.
(WebCore::CoreAudioCaptureSource::cleanupAudioUnits): Deleted.
(WebCore::CoreAudioCaptureSource::defaultInputDevice): Deleted.
(WebCore::CoreAudioCaptureSource::setupAudioUnits): Deleted.
(WebCore::CoreAudioCaptureSource::suspend): Deleted.
(WebCore::CoreAudioCaptureSource::resume): Deleted.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture):

4:48 PM Changeset in webkit [216155] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

getUserMedia() fails because devices list is empty / inactive
https://bugs.webkit.org/show_bug.cgi?id=171626

Reviewed by Eric Carlson.

When creating a AVAudioSessionCaptureDevice, set the device's enabled state to true if the port description
has any items in its dataSources property (which is the best analogue to "isActive" we have in AVAudioSession).

Also, when creating the generic list of CaptureDevices, use the copy constructor to ensure the enabled state
gets copied to the new generic device.

  • platform/mediastream/ios/AVAudioSessionCaptureDevice.mm:

(WebCore::AVAudioSessionCaptureDevice::create):

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):

4:21 PM Changeset in webkit [216154] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Implement the imageready event to reliably test the async image decoding
https://bugs.webkit.org/show_bug.cgi?id=171016

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-03
Reviewed by Simon Fraser.

The event will be fired for each client of the image. Firing the event
will happen after finishing the decoding and repainting the client.

Existing tests will be modified in a separate patch to use this event.

  • dom/Element.cpp:

(WebCore::Element::dispatchWebKitImageReadyEventForTesting):

  • dom/Element.h:
  • page/Settings.in:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::imageFrameAvailable):

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

Mark media/modern-media-controls/slider/slider-styles.html as flaky on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=171629

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:00 PM Changeset in webkit [216152] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Maintain interaction information URL as a URL, not a string
https://bugs.webkit.org/show_bug.cgi?id=171623

Reviewed by Simon Fraser.

No new tests, not a behavior change.

  • platform/URL.h:
  • Shared/ios/InteractionInformationAtPosition.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showAttachmentSheet]):
(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView annotation:isBeingPressedAtPoint:controller:]):
(-[WKPDFView actionSheetAssistant:performAction:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

3:36 PM Changeset in webkit [216151] by mark.lam@apple.com
  • 5 edits in trunk/Source

Use the CLoop for CPU(ARM64E).
https://bugs.webkit.org/show_bug.cgi?id=171620
<rdar://problem/31973027>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • llint/LLIntOfflineAsmConfig.h:
  • tools/SigillCrashAnalyzer.cpp:

(JSC::SigillCrashAnalyzer::dumpCodeBlock):

Source/WTF:

  • wtf/Platform.h:
3:30 PM Changeset in webkit [216150] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

LayoutTest http/tests/inspector/network/fetch-network-data.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=166038
<rdar://problem/29488489>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-03
Reviewed by Matt Baker.

  • platform/mac/TestExpectations:
  • http/tests/inspector/network/fetch-network-data.html:
  • http/tests/inspector/network/xhr-request-data-encoded-correctly.html:

Use singleFireEventListener instead of awaitEvent so that the follow-up event handlers
can be added synchronously instead of in a microtask. When the microtask happened later
than other incoming events then the follow-up handlers would have been added too late.

3:26 PM Changeset in webkit [216149] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/html/webappapis/timers/negative-settimeout.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170699.

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/ios-wk2/TestExpectations:
3:15 PM Changeset in webkit [216148] by caitp@igalia.com
  • 3 edits
    1 delete in trunk/JSTests

[JSC] remove unneeded asyncFunctionTests.yaml
https://bugs.webkit.org/show_bug.cgi?id=171611

Reviewed by Yusuke Suzuki.

Async functions have shipped, and those tests are run as part of
JSTests/stress and JSTests/test262.yaml. The file is no longer needed.

  • asyncFunctionTests.yaml: Removed.
  • stress/async-await-long-loop.js:
  • stress/async-await-throw-loop.js:
3:13 PM Changeset in webkit [216147] by Nikita Vasilyev
  • 7 edits
    2 copies in trunk/Source/WebInspectorUI

Uncaught Exception: Can't make a ContentView for an unknown representedObject of type: IndexedDatabase
https://bugs.webkit.org/show_bug.cgi?id=167473
<rdar://problem/30249715>

Reviewed by Matt Baker.

When an indexed database is selected in the Storage navigation sidebar, show its host, security origin, and version.

Previously, selecting an indexed database didn't change the content view. It could lead to a misleading state
when an indexed database is selected in the sidebar, but the content view showed previously selected item such as
Cookies or Local Storage.

  • UserInterface/Main.html:
  • UserInterface/Views/ContentView.css:

(.content-view .details-section):
(.content-view .details-section > .content):
(.content-view .details-section > .content > .group > .row.simple > .label):
(.content-view .details-section:last-child):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):

  • UserInterface/Views/IndexedDatabaseContentView.css: Added.

(.indexed-database.content-view):
(.indexed-database.content-view .indexed-database-details):
(.indexed-database.content-view .details-section > .header):

  • UserInterface/Views/IndexedDatabaseContentView.js: Added.

(WebInspector.IndexedDatabaseContentView):

  • UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:

(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.inspect):
Don't show the details sidebar for IndexedDB top level item since it has the same content as the content view.

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel._treeSelectionDidChange):

  • UserInterface/Views/StorageTabContentView.js:

(WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):
(WebInspector.StorageTabContentView):

3:06 PM Changeset in webkit [216146] by jmarcell@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

3:04 PM Changeset in webkit [216145] by Simon Fraser
  • 8 edits in trunk

Have WKWebView call _updateVisibleContentRects for the current transaction if possible, rather than always delaying
https://bugs.webkit.org/show_bug.cgi?id=171619
Source/WebKit2:

Also fixes webkit.org/b/170153 and webkit.org/b/170195

Reviewed by Tim Horton.

In r214391 we started adding the pre-commit handler in a dispatch_async() to ensure that
the handler would always run, since we couldn't reliably test the phase of the current
transaction. Now that problem has been solved (rdar://problem/31253952) we can go back to
checking the transaction phase on newer iOS versions. If we're too late for the current transaction
we still need to dispatch_async() to get into the next one.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]):
(-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]):

Tools:

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

Reviewed by Tim Horton.

Re-enable WebKit2.ResizeWithHiddenContentDoesNotHang.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AnimatedResize.mm:

(TEST):

LayoutTests:

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

Reviewed by Tim Horton.

These tests need to wait a bit for the scrolling state of the document to be updated.

  • fast/scrolling/ios/touch-scroll-pointer-events-none.html:
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html:
  • platform/ios-wk2/TestExpectations:
2:56 PM Changeset in webkit [216144] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r216129): ASSERTION FAILED: m_process->state() == WebProcessProxy::State::Terminated
https://bugs.webkit.org/show_bug.cgi?id=171616

Reviewed by Brady Eidson.

Stop calling resetStateAfterProcessExited() in WebPageProxy::terminateProcess() as the call to
WebProcessProxy::requestTermination() already causes WebPageProxy::processDidCrash() to be called
after r216129. WebPageProxy::processDidCrash() already takes care of calling
resetStateAfterProcessExited().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::terminateProcess):

2:55 PM Changeset in webkit [216143] by yoav@yoav.ws
  • 4 edits
    2 adds in trunk

Link preload HTMLPreloadScanner support
https://bugs.webkit.org/show_bug.cgi?id=170747

Reviewed by Youenn Fablet.

Source/WebCore:

Test: http/tests/preload/preloadscanner_download_resources.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner): Initialize link preload flag.
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Create a request only if the type is known (so ignore
preloads with unknown type).
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Add handling for link preload and the as attribute.
(WebCore::TokenPreloadScanner::StartTagScanner::relAttributeIsStyleSheet): Get LinkRelAttribute as input.
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType): Return an std::optional, in case the preload type is unknown.
(WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload): Return true for the link preload case.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::preload): Return the resource rather than a nullptr if it's already in m_preloads.

LayoutTests:

  • http/tests/preload/preloadscanner_download_resources-expected.txt: Added.
  • http/tests/preload/preloadscanner_download_resources.html: Added.
2:36 PM Changeset in webkit [216142] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/preload/single_download_preload.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171331

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:20 PM Changeset in webkit [216141] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark perf/object-keys.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=171617

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/ios-wk2/TestExpectations:
2:01 PM Changeset in webkit [216140] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 29

Added a tag for Safari Technology Preview release 29.

1:51 PM Changeset in webkit [216139] by Michael Catanzaro
  • 4 edits in trunk

YouTube user agent quirk breaks new YouTube
https://bugs.webkit.org/show_bug.cgi?id=171603

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Our user agent quirk to make YouTube 360 work breaks the new YouTube UI, causing it to
attempt to use the obsolete custom elements v0 API. WebKit only supports the v1 API. We
have to remove this quirk.

Note this does not affect Safari as Apple ports don't use our user agent quirks.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Remove the YouTube quirk test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

1:36 PM Changeset in webkit [216138] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Web Inspector: 404 Image Load does not appear as a failure in Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=171587
<rdar://problem/13222846>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-03
Reviewed by Matt Baker.

Source/WebCore:

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):
(WebCore::prepareCachedResourceBuffer): Deleted.
Inline the function to make this less confusing.

(WebCore::InspectorPageAgent::buildObjectForFrameTree):
Treat a DecodeError as a failure.

Source/WebInspectorUI:

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.createObjectURL):
This may return null if the data is not a Blob. This can happen if we
loaded non-base64Encoded text content for an Image. Such as a 404 response.

(WebInspector.Resource.prototype.hadLoadingError):
Consistent way to check for any kind of loading error.

(WebInspector.Resource.prototype.getImageSize):
Handle failure to create an object URL.

  • UserInterface/Views/FontResourceContentView.js:

(WebInspector.FontResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/ImageResourceContentView.js:

(WebInspector.ImageResourceContentView.prototype.contentAvailable):
Handle failure to create an object URL.

1:33 PM Changeset in webkit [216137] by keith_miller@apple.com
  • 5 edits
    1 add in trunk

Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
https://bugs.webkit.org/show_bug.cgi?id=47825

Reviewed by Saam Barati.

JSTests:

  • stress/sorting-boolean-result-comparator.js: Added.

(checkArray):

Source/JavaScriptCore:

This patch makes our sort function match the behavior of Firefox
and Chrome when the result of the comparison function is a
boolean. When we first switched to using merge sort, it regressed
JQuery sorting of DOM nodes by 30%. The regression was do to the
fact that JQuery was using compareDocumentPosition to compare the
locations of objects. Since one of the benchmarks would pass a
reverse sorted list to the sort function we would end up walking
the entire DOM to do comparisons. The solution to this was to
merge based on comparison(right, left) rather than
comparison(left, right). Although, in practice this does nothing
since sort could just as easily receive an already sorted list and
we're back in the same spot.

The downside of sorting with comparison(right, left) is that to
maintain stability when sorting, you only want to merge from right
when the comparison function returns a negative value. This is
where the problem with booleans comes in. Since booleans toNumber
false to 0 and true to 1 both values are "equal". This patch fixes
this by special casing boolean return values.

  • builtins/ArrayPrototype.js:

(sort.merge):

LayoutTests:

Fix broken test.

  • http/tests/inspector/worker/blob-script-with-cross-domain-imported-scripts-expected.txt:
1:28 PM Changeset in webkit [216136] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/xmlhttprequest/supported-xml-content-types.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171613

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/ios-wk2/TestExpectations:
12:43 PM Changeset in webkit [216135] by commit-queue@webkit.org
  • 6 edits
    1 add in trunk

Async image decoding should be disabled for snapshots, printing and preview
https://bugs.webkit.org/show_bug.cgi?id=171467
Source/WebCore:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-03
Reviewed by Simon Fraser.

Asynchronous image decoding should only be used for window display where
RenderElements can be repainted and painted. For cases where there is only
one chance to draw the image, synchronous decoding should be used.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

Tools:

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-03
Reviewed by Simon Fraser.

Add a API test for snapshotting with large images. Ensure the images are
drawn correctly which implies they should have been synchronously decoded.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/large-red-square-image.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewSnapshot.mm:

(TEST):

12:33 PM Changeset in webkit [216134] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: VO skips cells after cell with aria-colspan
https://bugs.webkit.org/show_bug.cgi?id=171579

Reviewed by Chris Fleizach.

Source/WebCore:

We should consider the previous cells' column span value when
calculating the column index.

Test: accessibility/mac/aria-grid-column-span.html

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::columnIndexRange):

LayoutTests:

  • accessibility/mac/aria-grid-column-span-expected.txt: Added.
  • accessibility/mac/aria-grid-column-span.html: Added.
12:27 PM Changeset in webkit [216133] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: m_scriptExecutionContext->isContextThread() seen with LayoutTest crypto/workers/crypto-random-values-limits-worker.html
https://bugs.webkit.org/show_bug.cgi?id=171462
<rdar://problem/31906859>

Reviewed by Brent Fulgham.

Covered by existing tests.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::~WorkerGlobalScope):
Clear Crypto early in destruction since its ContextDestructionObserver
destruction makes checks about the WorkerThread.

12:27 PM Changeset in webkit [216132] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Handle KVO updating of the "hasOnlySecureContent" before a page results in an HTTP auth challenge.
https://bugs.webkit.org/show_bug.cgi?id=171607

Reviewed by Andy Estes.

To test this fix we'd need the combination of an HTTPD inside API tests, so no test for now.

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::hasOnlySecureContent): If the state is provisional, check the provisional URL instead.

12:17 PM Changeset in webkit [216131] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

RenderSearchField should not use isTextField() in SPECIALIZE_TYPE_TRAITS_RENDER_OBJECT
https://bugs.webkit.org/show_bug.cgi?id=171608

Reviewed by Simon Fraser.

isTextField() is true for any generic single line text control.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isSearchField):

  • rendering/RenderSearchField.h:
12:02 PM Changeset in webkit [216130] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Remove ScrollingCoordinator::supportsFixedPositionLayers()
https://bugs.webkit.org/show_bug.cgi?id=171557

Patch by Frederic Wang <fwang@igalia.com> on 2017-05-03
Reviewed by Simon Fraser.

No new tests, behavior is not changed.

  • page/FrameView.cpp:

(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::synchronousScrollingReasons):

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::supportsFixedPositionLayers): Deleted.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:

(): Deleted.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

11:54 AM Changeset in webkit [216129] by Chris Dumez
  • 14 edits
    3 adds in trunk

[WK2] Extend processDidCrash delegate to let the client know the reason for the crash
https://bugs.webkit.org/show_bug.cgi?id=171565
<rdar://problem/31204417>

Reviewed by Sam Weinig.

Source/WebKit2:

Extend processDidCrash delegate to let the client know the reason for the crash. This
is needed by some clients to distinguish actual crashes from terminations due to
resource limits.

  • Shared/ProcessCrashReason.h: Added.
  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::processDidCrash):

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/C/WKPageNavigationClient.h:
  • UIProcess/API/C/WKProcessCrashReason.h: Added.
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::processDidCrash):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processDidCrash):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::requestTermination):
(WebKit::diagnosticLoggingKeyForTerminationReason):
(WebKit::toProcessCrashReason):
(WebKit::WebProcessProxy::terminateProcessDueToResourceLimits):
(WebKit::WebProcessProxy::didExceedActiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedInactiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedBackgroundCPULimit):

  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/ProcessDidCrashWithReason.cpp: Added.

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::didCrashWithReason):
(TestWebKitAPI::TEST):

11:41 AM Changeset in webkit [216128] by Chris Dumez
  • 25 edits
    2 deletes in trunk/Source/WebCore

Use PassRefPtr less in CompositeEditCommand
https://bugs.webkit.org/show_bug.cgi?id=171590

Reviewed by Sam Weinig.

Use PassRefPtr less in CompositeEditCommand.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/ApplyStyleCommand.cpp:

(WebCore::hasNoAttributeOrOnlyStyleAttribute):
(WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute):
(WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan):
(WebCore::isEmptyFontTag):
(WebCore::ApplyStyleCommand::doApply):
(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::dummySpanAncestorForNode):
(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::applyInlineStyle):
(WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
(WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement):
(WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes):
(WebCore::ApplyStyleCommand::removeImplicitlyStyledElement):
(WebCore::ApplyStyleCommand::removeCSSStyle):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::shouldSplitTextElement):
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::addBlockStyle):
(WebCore::ApplyStyleCommand::joinChildTextNodes):

  • editing/ApplyStyleCommand.h:

(WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::mergeIdenticalElements):
(WebCore::CompositeEditCommand::insertTextIntoNode):
(WebCore::CompositeEditCommand::deleteTextFromNode):
(WebCore::CompositeEditCommand::replaceTextInNode):
(WebCore::CompositeEditCommand::replaceSelectedTextInNode):
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
(WebCore::CompositeEditCommand::removeNodeAttribute):
(WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring):
(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::removePlaceholderAt):
(WebCore::CompositeEditCommand::cleanupAfterDeletion):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/CompositeEditCommand.h:
  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand):
(WebCore::DeleteFromTextNodeCommand::doApply):
(WebCore::DeleteFromTextNodeCommand::doUnapply):
(WebCore::DeleteFromTextNodeCommand::getNodesInCommand):

  • editing/DeleteFromTextNodeCommand.h:

(WebCore::DeleteFromTextNodeCommand::create):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::deleteTextFromNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::fixupWhitespace):

  • editing/DeleteSelectionCommand.h:
  • editing/EditingAllInOne.cpp:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl):
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::EditingStyle::wrappingStyleForSerialization):
(WebCore::styleFromMatchedRulesForElement):
(WebCore::EditingStyle::mergeStyleFromRules):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
(WebCore::EditingStyle::removeStyleFromRulesAndContext):
(WebCore::EditingStyle::removePropertiesInElementDefaultStyle):

  • editing/EditingStyle.h:
  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::tryIndentingAsListItem):

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
(WebCore::InsertIntoTextNodeCommand::getNodesInCommand):

  • editing/InsertIntoTextNodeCommand.h:

(WebCore::InsertIntoTextNodeCommand::create):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::mergeWithNeighboringLists):
(WebCore::InsertListCommand::listifyParagraph):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::performOverwrite):
(WebCore::InsertTextCommand::doApply):
(WebCore::InsertTextCommand::insertTab):

  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::MergeIdenticalElementsCommand):
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
(WebCore::MergeIdenticalElementsCommand::getNodesInCommand):

  • editing/MergeIdenticalElementsCommand.h:

(WebCore::MergeIdenticalElementsCommand::create):

  • editing/RemoveCSSPropertyCommand.cpp: Removed.
  • editing/RemoveCSSPropertyCommand.h: Removed.
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::styleFromMatchedRulesAndInlineDecl):
(WebCore::createMarkupInternal):

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

Mark http/tests/websocket/tests/hybi/inspector/binary.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171553

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:52 AM Changeset in webkit [216126] by dbates@webkit.org
  • 7 edits
    8 adds in trunk/LayoutTests

Detach frame from document when entering page cache
https://bugs.webkit.org/show_bug.cgi?id=166774
<rdar://problem/29904368>

Reviewed by Chris Dumez.

  • TestExpectations: Unskip tests.
  • fast/history/page-cache-after-window-open-expected.txt: Update expected result.
  • fast/history/page-cache-after-window-open.html: Ditto.
  • fast/history/page-cache-with-opener-expected.txt: Ditto.
  • fast/history/page-cache-with-opener.html: Update test given its new expected behavior.
  • fast/history/resources/page-cache-window-with-opener.html: Ditto.
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow-expected.txt: Added.
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html: Added.
10:51 AM Changeset in webkit [216125] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking three imported/w3c/web-platform-tests/webrtc test as flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=171605

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/mac-wk2/TestExpectations:
10:47 AM Changeset in webkit [216124] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marked test http/tests/local/blob/send-sliced-data-blob.html as flaky failure and timeout.
https://bugs.webkit.org/show_bug.cgi?id=171564

Unreviewed test gardening.

Patch by Matt Lewis <Matt Lewis> on 2017-05-03

  • platform/ios-wk2/TestExpectations:
10:18 AM Changeset in webkit [216123] by jdiggs@igalia.com
  • 3 edits
    3 adds in trunk

AX: Treat cells with ARIA table cell properties as cells
https://bugs.webkit.org/show_bug.cgi?id=171178

Reviewed by Chris Fleizach.

Source/WebCore:

Add the following checks to heuristics in AccessibilityTable::isDataTable():

  1. If the author has provided a valid aria-rowcount or aria-colcount value on the table element, expose it as a data table.
  2. If the author has provided a valid aria-colindex or aria-rowindex on the cell element, expose it as a data table.
  3. If the author has provided a valid aria-rowindex on the row element, expose it as a data table.
  4. If the author has provided a value for aria-colspan or aria-rowspan on a cell, expose it as a data table (even though we are supposed to ignore the value for the purpose of exposing the span via platform accessibility APIs)

Remove the heuristic that a table with only one cell is "not a good AXTable candidate."
It prevents us from ever doing the above checks.

Test: accessibility/minimal-table-with-aria-is-data-table.html

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable):

LayoutTests:

  • accessibility/minimal-table-with-aria-is-data-table-expected.txt: Added.
  • accessibility/minimal-table-with-aria-is-data-table.html: Added.
  • platform/gtk/accessibility/minimal-table-with-aria-is-data-table-expected.txt: Added.
10:17 AM Changeset in webkit [216122] by commit-queue@webkit.org
  • 5 edits in trunk

[INTL] Support dashed values in unicode locale extensions
https://bugs.webkit.org/show_bug.cgi?id=171480

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2017-05-03
Reviewed by JF Bastien.

Source/JavaScriptCore:

Implements the UnicodeExtensionSubtags operation and updates the ResolveLocale operation to use it.
This fixes locale extensions with values that include '-'. The following calendars work now:
ethiopic-amete-alem
islamic-umalqura
islamic-tbla
islamic-civil
islamic-rgsa

While updating IntlObject, the comments containing spec text were replaced with a single url at the
top of each function pointing to the relevant part of ECMA-402.

  • runtime/IntlObject.cpp:

(JSC::unicodeExtensionSubTags): Added.
(JSC::resolveLocale): Updated to latest standard.

LayoutTests:

Added tests for calendar locale extensions that contain '-'.

  • js/intl-datetimeformat-expected.txt:
  • js/script-tests/intl-datetimeformat.js:
10:06 AM Changeset in webkit [216121] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Handle extended colors in gradients
https://bugs.webkit.org/show_bug.cgi?id=171596

Reviewed by Michael Catanzaro.

Check if every gradient color step is an extended color and use asExtended() instead of getRGBA() in such case.

Fixes: css3/color/gradients.html

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::platformGradient):

9:58 AM Changeset in webkit [216120] by dbates@webkit.org
  • 3 edits
    2 adds in trunk

Abandon the current load once the provisional loader detaches from the frame
https://bugs.webkit.org/show_bug.cgi?id=171577
<rdar://problem/31581227>

Source/WebCore:

Reviewed by Brent Fulgham and Brady Eidson.

We detach all child frames as part of setting our document loader to the provisional
document loader when committing a load for a frame. Detaching child frames invokes
the unload event handler on the child frames that can run arbitrary JavaScript script.
Among other things, such script can initiate a new load in the frame whose current
load is being committed. We should stop processing the current load as soon as we
detect that updating our document loader has started a new provisional load.

Test: fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::transitionToCommitted):

LayoutTests:

Reviewed by Brent Fulgham.

  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-expected.txt: Added.
  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html: Added.
9:52 AM Changeset in webkit [216119] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove out-of-date comment and null check from DocumentLoader::detachFromFrame()
https://bugs.webkit.org/show_bug.cgi?id=171604

Reviewed by Brady Eidson.

We no longer want to passively allow DocumentLoader::detachFromFrame() to be called twice.
It does not make sense to be called twice and should never be called twice. A release assert
in DocumentLoader::cancelPolicyCheckIfNeeded() (added in r187558) called by DocumentLoader::detachFromFrame()
enforces this invariant. Therefore we can remove the null check of DocumentLoader::m_frame
and the comment that explains the purpose of this null check from DocumentLoader::detachFromFrame().

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::detachFromFrame):

9:28 AM Changeset in webkit [216118] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build after r216117.
https://bugs.webkit.org/show_bug.cgi?id=171601

  • css/CSSAllInOne.cpp:
7:04 AM Changeset in webkit [216117] by Antti Koivisto
  • 7 edits
    2 moves in trunk/Source/WebCore

Rename StyleInvalidationAnalysis to Style::Invalidator
https://bugs.webkit.org/show_bug.cgi?id=171601

Reviewed by Žan Doberšek.

Also move it to the 'style' directory.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleInvalidationAnalysis.cpp: Removed.
  • css/StyleInvalidationAnalysis.h: Removed.
  • dom/ExtensionStyleSheets.cpp:
  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::AttributeChangeInvalidation::invalidateDescendants):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::ClassChangeInvalidation::invalidateDescendantStyle):

  • style/StyleInvalidator.cpp: Copied from Source/WebCore/css/StyleInvalidationAnalysis.cpp.

(WebCore::Style::Invalidator::Invalidator):
(WebCore::Style::Invalidator::invalidateIfNeeded):
(WebCore::Style::Invalidator::invalidateStyleForTree):
(WebCore::Style::Invalidator::invalidateStyle):
(WebCore::shouldDirtyAllStyle): Deleted.
(WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis): Deleted.
(WebCore::StyleInvalidationAnalysis::invalidateIfNeeded): Deleted.
(WebCore::StyleInvalidationAnalysis::invalidateStyleForTree): Deleted.
(WebCore::StyleInvalidationAnalysis::invalidateStyle): Deleted.

  • style/StyleInvalidator.h: Copied from Source/WebCore/css/StyleInvalidationAnalysis.h.

(WebCore::StyleInvalidationAnalysis::dirtiesAllStyle): Deleted.
(WebCore::StyleInvalidationAnalysis::hasShadowPseudoElementRulesInAuthorSheet): Deleted.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::analyzeStyleSheetChange):

5:47 AM Changeset in webkit [216116] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations of several tests.

  • platform/gtk/TestExpectations:
3:18 AM Changeset in webkit [216115] by Carlos Garcia Campos
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed GTK+ gardening. Rebaseline inspector resource size tests.

Libsoup doesn't provide the required information to fill all those size metrics.

  • platform/gtk/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Added.
  • platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt: Added.
1:55 AM Changeset in webkit [216114] by Carlos Garcia Campos
  • 5 edits
    2 adds in trunk/Source/WebKit2

[GTK] Add GTK+ implementation of WebAutomationSession
https://bugs.webkit.org/show_bug.cgi?id=171431

Reviewed by Michael Catanzaro.

Add platform dependent methods for GTK+ to synthesize events.

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitUIClient.cpp: Always resize the window for web views controlled by automation.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: Added.

(WebKit::modifiersToEventState):
(WebKit::mouseButtonToGdkButton):
(WebKit::doMouseEvent):
(WebKit::doMotionEvent):
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
(WebKit::doKeyStrokeEvent):
(WebKit::keyCodeForVirtualKey):
(WebKit::WebAutomationSession::platformSimulateKeyStroke):
(WebKit::WebAutomationSession::platformSimulateKeySequence):
(WebKit::WebAutomationSession::platformGetBase64EncodedPNGData):

1:32 AM Changeset in webkit [216113] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.17.1

WebKitGTK+ 2.17.1

1:30 AM Changeset in webkit [216112] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.1 release.

.:

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

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.17.1.
12:15 AM Changeset in webkit [216111] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Soup] Add request headers to network load metrics
https://bugs.webkit.org/show_bug.cgi?id=171545

Reviewed by Sergio Villar Senin.

This will make the headers to appear in the web inspector.

Fixes: http/tests/inspector/network/resource-request-headers.html

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::didGetHeaders):

Note: See TracTimeline for information about the timeline view.