Timeline
Nov 12, 2016:
- 11:43 PM Changeset in webkit [208667] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the iOS build after r208666.
- platform/SuddenTermination.h:
- 11:19 PM Changeset in webkit [208666] by
-
- 26 edits2 adds in trunk
Add a way to get the UI-side scrolling tree as text via UIScriptController
https://bugs.webkit.org/show_bug.cgi?id=164697
Reviewed by Zalan Bujtas.
Source/WebCore:
Add dumping to ScrollingTreeNode and subclasses (previously, we could only dump
the scrolling state tree). This re-uses the flags used for state tree dumping.
NodeIDs are not dumped by default because they can depend on earlier tests.
Test: scrollingcoordinator/ios/ui-scrolling-tree.html
- page/scrolling/ScrollingStateNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollingTreeAsText):
- page/scrolling/ScrollingTree.h:
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties):
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::dumpProperties):
(WebCore::ScrollingTreeNode::dump):
- page/scrolling/ScrollingTreeNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::dumpProperties):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/mac/ScrollingTreeFixedNode.h:
- page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::dumpProperties):
- page/scrolling/mac/ScrollingTreeStickyNode.h:
- page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::dumpProperties):
Source/WebKit2:
Add a property to WKWebView to retrieve the scrolling tree as text, for testing.
Expose it via the RemoteScrollingCoordinatorProxy.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollingTreeAsText]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeAsText):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
Tools:
Add UIScriptController::scrollingTreeAsText(), which gets the state of the scrolling
tree in the UI process, including the current positions of CALayers. This will be used
to test UI-side scrolling and visual viewports.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::scrollingTreeAsText):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::scrollingTreeAsText):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::scrollingTreeAsText):
LayoutTests:
Add a test that dumps the scrolling state tree with a fixed element.
- scrollingcoordinator/ios/ui-scrolling-tree-expected.txt: Added.
- scrollingcoordinator/ios/ui-scrolling-tree.html: Added.
- 9:50 PM Changeset in webkit [208665] by
-
- 2 edits in trunk/Source/WebKit2
Incorrect release log message emitted when waiting/not waiting for the WebProcess continue a load
https://bugs.webkit.org/show_bug.cgi?id=164605
Patch by Daniel Bates <dabates@apple.com> on 2016-11-12
Reviewed by Darin Adler.
Currently we emit a release log message of the form "didReceiveResponse: Should wait for
message from WebContent process ..." when we are not waiting for the WebProcess and emit
a message of the form "didReceiveResponse: Should not wait for message from WebContent
process" when we are waiting on the WebProcess. Invert these messages to reflect whether
we are waiting for the WebProcess to send message NetworkResourceLoader::ContinueDidReceiveResponsewhether.
For the main resource NetworkResourceLoader::didReceiveResponse() returns ShouldContinueDidReceiveResponse::No
because we are waiting for the WebProcess to send message NetworkResourceLoader::ContinueDidReceiveResponse
to continue the load. For a subresource we do not need to wait for the WebProcess to allow the load to continue
and hence NetworkResourceLoader::didReceiveResponse() returns ShouldContinueDidReceiveResponse::Yes.
- NetworkProcess/NetworkResourceLoader.cpp:
- 9:38 PM Changeset in webkit [208664] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: Type Profiler and Code Coverage Profiler should work in Workers
https://bugs.webkit.org/show_bug.cgi?id=164682
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-12
Reviewed by Darin Adler.
- UserInterface/Controllers/BasicBlockAnnotator.js:
- UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
Use the target associated with the Script.
- UserInterface/Protocol/Target.js:
(WebInspector.WorkerTarget.prototype.initialize):
When initializing a Worker Target, match the existing state
of the Page for these profilers.
- UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
- UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype.willDismissPopover):
Use the correct target for this Script / Resource.
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
(WebInspector.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
Enable / disable for all targets when toggling profilers.
- 8:52 PM Changeset in webkit [208663] by
-
- 9 edits in trunk/Source/WebCore
Remove some use of ExceptionCode in MediaStream
https://bugs.webkit.org/show_bug.cgi?id=164690
Reviewed by Sam Weinig.
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::MediaDevices): Take a Document&.
(WebCore::MediaDevices::create): Ditto.
(WebCore::MediaDevices::~MediaDevices): Deleted.
(WebCore::MediaDevices::getUserMedia): Check document for null and
pass a reference to UserMediaRequest::start. Removed unused ExceptionCode
argument to UserMediaRequest::start, since the only exception was for
a null document.
(WebCore::MediaDevices::enumerateDevices): Check document for null and
pass a reference to MediaDevicesRequest::create. Removed exception
handling entirely because MediaDevicesRequest::create was not ever
raising an exception before.
- Modules/mediastream/MediaDevices.h: Updated for above changes.
- Modules/mediastream/MediaDevices.idl: Removed MayThrowException from
enumerateDevices, because it never throws an exception.
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::MediaDevicesRequest): Take a Document&.
Removed unused ExceptionCode& argument.
(WebCore::MediaDevicesRequest::create): Ditto.
- Modules/mediastream/MediaDevicesRequest.h: Updated for above changes.
- Modules/mediastream/NavigatorMediaDevices.cpp:
(WebCore::NavigatorMediaDevices::mediaDevices): Pass a reference.
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start): Use ExceptionOr.
(WebCore::UserMediaRequest::UserMediaRequest): Take a Document& and
a UserMediaController&.
- Modules/mediastream/UserMediaRequest.h: Updated for above changes.
- 7:24 PM Changeset in webkit [208662] by
-
- 15 edits3 adds in trunk
[iOS WK2] Share some code with Mac for post-async-scroll state reconciliation
https://bugs.webkit.org/show_bug.cgi?id=164694
Reviewed by Zalan Bujtas.
Source/WebCore:
When an async scroll notifications get back to the main thread in
AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll(), we call
syncViewportConstrainedLayerPositions() to poke the new layer positions on the
GraphicsLayers to match the changes made on the scrolling thread.
However, this was not done on iOS, which will be problematic for a future patch
where we require GraphicsLayer positions and the current fixedPositionViewport rect
to have been computed when in a consistent state.
Fix by factoring some code into reconcileScrollingState(), which is called on iOS/WK2
from WebPage::updateVisibleContentRects() rather than setting the FrameView's scroll offset
directly.
Test: scrollingcoordinator/ios/sync-layer-positions-after-scroll.html
- page/WheelEventDeltaFilter.cpp:
(WebCore::WheelEventDeltaFilter::filteredDelta):
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::syncViewportConstrainedLayerPositions):
(WebCore::AsyncScrollingCoordinator::syncChildPositions): Deleted.
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::reconcileScrollingState):
(WebCore::ScrollingCoordinator::syncViewportConstrainedLayerPositions):
(WebCore::ScrollingCoordinator::syncChildPositions): Deleted.
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition):
- platform/Logging.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::setScrollOffset):
- platform/graphics/ca/TileController.cpp:
(WebCore::TileController::adjustTileCoverageRect):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
Source/WebKit2:
Rather than calling FrameView directly, call reconcileScrollingState() on the scrolling
coordinator.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateVisibleContentRects):
LayoutTests:
Test that pans the page, and dumps GraphicsLayers before letting go.
- TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- scrollingcoordinator/ios/sync-layer-positions-after-scroll-expected.txt: Added.
- scrollingcoordinator/ios/sync-layer-positions-after-scroll.html: Added.
- 7:08 PM Changeset in webkit [208661] by
-
- 6 edits in trunk/Source/WebCore
RenderObject::flowThreadState should follow containing block instead of parent.
https://bugs.webkit.org/show_bug.cgi?id=164629
Reviewed by Simon Fraser.
Currently every descendant of a region/multicolumn container is considered to be part of the
flowthread including out-of-flow renderers. They all have the InsideFlowThread flag set.
However since out-of-flow renderers are not really part of the flowthread layout context,
whenever the layout code actually checks for their flowthread containers, we return nullptr and
try to handle this seemingly defective state gracefully (that is, flag indicates "inside the flow thread" state,
but there's no flow tread container).
This patch fixes this confused state by setting the RenderObject::flowThreadState flag based on
the containing block's state instead of the parent's.
Not testable, since we seem to manage out-of-flow elements just fine even
when they have the InsideFlowThread flag set.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::setStyle):
(WebCore::RenderElement::adjustFlowThreadStateIncludingDescendants): This is an iterative DFS pre-order traversal so
we set the flow state first on containers.
- rendering/RenderElement.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::computedFlowThreadState):
(WebCore::RenderObject::initializeFlowThreadStateOnInsertion):
- rendering/RenderObject.h:
- 6:43 PM Changeset in webkit [208660] by
-
- 5 edits in trunk
document.currentScript should be null when running a script inside a shadow tree
https://bugs.webkit.org/show_bug.cgi?id=164693
Reviewed by Yusuke Suzuki.
LayoutTests/imported/w3c:
Rebaselined the imported test now that there are no errors.
- web-platform-tests/shadow-dom/Document-prototype-currentScript-expected.txt:
Source/WebCore:
Fixed the bug that we were returning the old or outer script element in document.currentScript
while executing a script element inside a shadow tree. Return null instead.
New behavior matches the latest HTML5 specification:
https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block
where it says for the classic script type, "if the script element's root is not a shadow root, then set
the script element's node document's currentScript attribute to the script element. Otherwise, set it to null."
No new tests. imported/w3c/web-platform-tests/shadow-dom/Document-prototype-currentScript.html covers it.
- dom/CurrentScriptIncrementer.h:
(WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer): Push nullptr when the script element
is inside a shadow tree.
(WebCore::CurrentScriptIncrementer::~CurrentScriptIncrementer): Changed to use an early exit.
- dom/Document.cpp:
(WebCore::Document::pushCurrentScript): Removed the assertion since the argument can now be nullptr.
- 2:31 PM Changeset in webkit [208659] by
-
- 23 edits in trunk/Source
Remove a few assorted uses of ExceptionCode
https://bugs.webkit.org/show_bug.cgi?id=164683
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/applepay/PaymentContact.h: Removed include of ExceptionCode.h.
Also tidied up the constructor and destructor.
- Modules/indexeddb/IDBFactory.h: Removed typedef of ExceptionCode.
- Modules/indexeddb/IDBKeyRange.h: Ditto.
- bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
(WebCore::getObjectParameter): Removed local ExceptionCode variable that
was always 0.
(WebCore::JSWebGLRenderingContextBase::getAttachedShaders): Ditto.
(WebCore::dataFunctionf): Ditto.
(WebCore::dataFunctioni): Ditto.
(WebCore::dataFunctionMatrix): Ditto.
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::cloneChildNodes): Ditto.
- dom/Document.h: Removed typedef of ExceptionCode.
- dom/TreeWalker.h: Ditto.
- editing/markup.h: Ditto.
- html/ImageData.h: Ditto.
- html/InputType.h: Ditto.
- html/canvas/CanvasRenderingContext2D.h: Ditto.
- html/canvas/WebGLDebugShaders.h: Ditto.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::setTimeout): Fixed typo where this was using
ExceptionCode instead of Exception. The code would return an integer
instead of an exception in this case. I could not produce a test that
exercises this code path; I suspect it is an unreachable error condition.
(WebCore::DOMWindow::setInterval): Ditto.
- replay/MemoizedDOMResult.h: Changed typedef of ExceptionCode into
a using statement. Not sure what the longer term fix is.
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::PendingCallbacks::appendStartElementNSCallback): Renamed to use
WebKit-style "numXXX" rather than "nb_xxx".
(WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
Ditto.
(WebCore::handleNamespaceAttributes): Ditto. Replaced ExceptionCode out
argument with a boolean return value.
(WebCore::handleElementAttributes): Ditto.
(WebCore::XMLDocumentParser::startElementNs): Ditto. Updated for changes
to the handle functions above.
(WebCore::startElementNsHandler): More of the same.
(WebCore::attributesStartElementNsHandler): Ditto.
Source/WebKit/mac:
- DOM/DOMDOMImplementation.mm:
(-[DOMImplementation createDocumentType:publicId:systemId:]):
Use raiseOnDOMError instead of much longer hand written equivalent.
(-[DOMImplementation createDocument:qualifiedName:doctype:]): Ditto.
- DOM/DOMDocument.mm:
(-[DOMDocument createEntityReference:]): Use raiseNotSupportedErrorException
so we are not using a specific exception code.
- DOM/DOMHTMLOptionsCollection.mm:
(-[DOMHTMLOptionsCollection add:index:]): Use raiseOnDOMError instead of
much longer hand written equivalent.
- DOM/DOMHTMLSelectElement.mm:
(-[DOMHTMLSelectElement add:before:]): Ditto. Also removed unneeded return
statement after calling a "no return" function.
- DOM/ExceptionHandlers.h: Removed overloads of raiseDOMException and
raiseOnDOMError functions that take ExceptionCode; keep the ones that take
Exception and ExceptionOr. Renamed the other overload of raiseDOMException
to raiseDOMErrorException; it is only used as the non-inline implementation
part of the inline raiseOnDOMError function.
- DOM/ExceptionHandlers.mm:
(raiseDOMErrorException): Renamed. Made the ExceptionCode overload be local
to this source file instead of in the header.
(raiseTypeErrorException): Updated for name change.
(raiseNotSupportedErrorException): Added.
- 2:30 PM Changeset in webkit [208658] by
-
- 101 edits in trunk/Source/WebCore
Remove LegacyException support from bindings script
https://bugs.webkit.org/show_bug.cgi?id=164516
Reviewed by Youenn Fablet.
Besides removing LegacyException support from the bindings script, this patch
also removes most uses of ExceptionCodePlaceholder.h. Also, some call sites of
createElement were using ASSERT_NO_EXCEPTION on an argument that was not even an
ExceptionCode&, so to fix that, this changes most call sites to use specific create
functions for specific element classes, rather than using Document::createElement.
- Modules/mediasource/SourceBuffer.cpp: Removed include of
ExceptionCodePlaceholder.h.
- Modules/mediastream/MediaStreamTrack.cpp: Ditto.
- Modules/websockets/WebSocketChannel.cpp: Ditto.
- bindings/js/JSBlobCustom.cpp: Ditto.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Removed support for GetterMayThrowLegacyException,
SetterMayThrowLegacyException, and MayThrowLegacyException.
(GenerateParametersCheck): Ditto.
(GenerateImplementationFunctionCall): Ditto.
(GenerateConstructorDefinition): Ditto.
- bindings/scripts/IDLAttributes.txt: Removed ConstructorMayThrowLegacyException,
GetterMayThrowLegacyException, MayThrowLegacyException, and SetterMayThrowLegacyException.
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Updated exepected results.
- bindings/scripts/test/TestImplements.idl: Use non-legacy exceptions.
- bindings/scripts/test/TestInterface.idl: Ditto.
- bindings/scripts/test/TestNamedConstructor.idl: Ditto.
- bindings/scripts/test/TestObj.idl: Ditto.
- bindings/scripts/test/TestSupplemental.idl: Ditto.
- bindings/scripts/test/TestTypedefs.idl: Ditto.
- dom/ContainerNode.h: Removed include of ExceptionCodePlaceholder.h.
- editing/AlternativeTextController.cpp: Ditto.
- editing/AppendNodeCommand.cpp: Ditto.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Use specific create function
instead of Document::createElement.
- editing/DeleteFromTextNodeCommand.cpp: Removed include of
ExceptionCodePlaceholder.h.
- editing/Editor.cpp: Ditto.
- editing/EditorCommand.cpp: Ditto.
- editing/FormatBlockCommand.cpp: Ditto.
- editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::tryIndentingAsListItem): Use specific create
function instead of Document::createElement.
- editing/InsertListCommand.cpp: Removed include of ExceptionCodePlaceholder.h.
- editing/InsertNodeBeforeCommand.cpp: Ditto.
- editing/RemoveNodeCommand.cpp: Ditto.
- editing/ReplaceSelectionCommand.cpp: Ditto.
- editing/TextIterator.cpp: Ditto.
- editing/WrapContentsInDummySpanCommand.cpp: Ditto.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart): Use specific create function instead
of Document::createElement.
- editing/htmlediting.cpp:
(WebCore::createTabSpanElement): Ditto.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readURL): Ditto.
- editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readURL): Ditto.
- editing/markup.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry): Use specific create function
instead of Document::createElement.
(WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
(WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
- html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::create): Added overload that just takes a Document.
- html/HTMLEmbedElement.h: Updated for above.
- html/HTMLMediaElement.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::create): Added overload that just takes a Document.
- html/HTMLMetaElement.h: Updated for above.
- html/HTMLOutputElement.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/HTMLSelectElement.cpp: Ditto.
(WebCore::HTMLSelectElement::setLength): Use specific create function
instead of Document::createElement.
- html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::create): Added overload that just takes a Document.
- html/HTMLSourceElement.h: Updated for above.
- html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::HTMLStyleElement): Moved data member initialization
to class definition.
(WebCore::HTMLStyleElement::create): Added overload that just takes a Document.
- html/HTMLStyleElement.h: Updated for above. Also made finishParsingChildren public.
- html/HTMLTableElement.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/HTMLTextAreaElement.cpp: Ditto.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::create): Added overload that just takes a Document.
- html/HTMLVideoElement.h: Updated for above.
- html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure): Use specific create function
instead of Document::createElement.
- html/InputType.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure): Use specific create
function instead of Document::createElement.
(WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
- html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
- html/RangeInputType.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/RubyElement.cpp:
(WebCore::RubyElement::create): Added overload that just takes a Document.
- html/RubyElement.h: Updated for above.
- html/RubyTextElement.cpp:
(WebCore::RubyTextElement::create): Added overload that just takes a Document.
- html/RubyTextElement.h: Updated for above.
- html/ValidationMessage.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/canvas/CanvasRenderingContext2D.cpp: Ditto.
- html/shadow/MediaControlElementTypes.cpp: Ditto.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
Use specific create function instead of Document::createElement.
- html/shadow/MediaControls.cpp: Removed include of ExceptionCodePlaceholder.h.
- html/shadow/MediaControlsApple.cpp: Ditto.
- html/track/InbandDataTextTrack.cpp: Ditto.
- html/track/InbandGenericTextTrack.cpp: Ditto.
- html/track/InbandTextTrack.cpp: Ditto.
- html/track/VTTRegion.cpp: Ditto.
- html/track/WebVTTElement.cpp:
(WebCore::WebVTTElement::createEquivalentHTMLElement): Use specific create
function instead of Document::createElement.
- inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
- page/ContextMenuController.cpp: Removed include of ExceptionCodePlaceholder.h.
- page/DOMWindow.cpp: Ditto.
- page/DragController.cpp: Ditto.
- page/EventHandler.cpp: Ditto.
- page/Page.cpp: Ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Ditto.
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: Ditto.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: Ditto.
- platform/mac/PasteboardMac.mm: Ditto.
- platform/mac/WebVideoFullscreenHUDWindowController.mm: Ditto.
- platform/mock/mediasource/MockMediaPlayerMediaSource.cpp: Ditto.
- platform/mock/mediasource/MockMediaSourcePrivate.cpp: Ditto.
- rendering/RenderNamedFlowThread.cpp: Ditto.
- rendering/RenderThemeEfl.cpp: Ditto.
- rendering/RenderThemeMac.mm: Ditto.
- rendering/style/SVGRenderStyle.h: Ditto.
- svg/SVGTRefElement.cpp: Ditto.
- xml/XMLErrors.cpp:
(WebCore::XMLErrors::XMLErrors): Take a reference and initialize data member
in class definition.
(WebCore::createXHTMLParserErrorHeader): Take a reference, and mostly use
specific create functions instead of createElement.
(WebCore::XMLErrors::insertErrorMessageBlock): Ditto.
- xml/XMLErrors.h: Updated for above.
- xml/XMLTreeViewer.cpp: Removed include of ExceptionCodePlaceholder.h.
- xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::handleError): Pass a reference.
- xml/parser/XMLDocumentParserLibxml2.cpp: Removed include of
ExceptionCodePlaceholder.h.
- 2:24 PM Changeset in webkit [208657] by
-
- 4 edits in trunk/Source/WebKit2
Web Automation: terminate the automation session if the web process crashes
https://bugs.webkit.org/show_bug.cgi?id=164671
<rdar://problem/29028964>
Reviewed by Joseph Pecoraro.
- UIProcess/Automation/WebAutomationSession.h:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::disconnect):
(WebKit::WebAutomationSession::terminate):
Factor out code that disconnects the remote, unpairs, and notifies the client.
Then, expose terminate() which can be called without a FrontendChannel.
Calling this causes the _WKAutomationDelegate to clear the local-side session in the
browser, and disconnecting from the remote will hang up the remote-side session.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash):
Terminate the session.
- 1:34 PM Changeset in webkit [208656] by
-
- 3 edits in trunk/Source/WebCore
Clean up a couple of macOS *SPI headers
https://bugs.webkit.org/show_bug.cgi?id=164687
Reviewed by Sam Weinig.
- platform/spi/cocoa/NSTouchBarSPI.h: Replaced hardcoded strings with global declarations.
- platform/spi/mac/NSSpellCheckerSPI.h: Addressed FIXME by importing private header, and removed declarations that already appear in the SDK.
- 12:50 PM Changeset in webkit [208655] by
-
- 5 edits1 add in trunk
The main content heuristic should be robust when handling large media elements
https://bugs.webkit.org/show_bug.cgi?id=164676
<rdar://problem/29211503>
Reviewed by Eric Carlson.
Source/WebCore:
Handles integer overflow gracefully when performing the main content check for very large media elements. If the
heuristic comes across such an element, it will now bail early and reject the video as main content. Also adds a
new API test: VideoControlsManager.VideoControlsManagerPageWithEnormousVideo.
- html/MediaElementSession.cpp:
(WebCore::isElementRectMostlyInMainFrame):
Tools:
Added a new test verifying that enormous video elements are handled gracefully when put through the main
content heuristic.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/enormous-video-with-sound.html: Added.
- 11:30 AM Changeset in webkit [208654] by
-
- 2 edits in trunk
Unreviewed, rolling out r207872.
https://bugs.webkit.org/show_bug.cgi?id=162623
Did not disable anything, just made them public
Reverted changeset:
"[GTK][GStreamer] Disable MEDIA_SOURCE and ENCRYPTED_MEDIA_V2 by default"
https://bugs.webkit.org/show_bug.cgi?id=162623
http://trac.webkit.org/changeset/207872
- 9:54 AM Changeset in webkit [208653] by
-
- 6 edits in trunk/Source/WebCore
Speed up setting attributes of input elements of type 'text'
https://bugs.webkit.org/show_bug.cgi?id=164674
Reviewed by Ryosuke Niwa.
Speed up setting attributes of input elements of type 'text' by calling
updateInnerTextValue() only when needed. It was previously called
whenever an attribute was set, no matter it could impact its text value
or not.
No new tests, no Web-exposed behavior change.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
- html/InputType.cpp:
(WebCore::InputType::attributeChanged):
- html/InputType.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::attributeChanged):
- html/TextFieldInputType.h:
- 9:43 AM Changeset in webkit [208652] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the 32-bit build.
- platform/mac/WebPlaybackControlsManager.mm:
- 9:40 AM Changeset in webkit [208651] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the 32-bit build.
- platform/mac/WebPlaybackControlsManager.h:
- 9:33 AM Changeset in webkit [208650] by
-
- 3 edits in trunk/Source/WebCore
Tried to fix the build
- platform/mac/WebPlaybackControlsManager.h: Declared conformance to AVFunctionBarPlaybackControlsControlling, which is expected in WebKit::WebViewImpl. Added ivar.
- platform/mac/WebPlaybackControlsManager.mm: Synthesize seekToTime property needed for AVFunctionBarPlaybackControlsControlling conformance.
(-[WebPlaybackControlsManager isSeeking]): Implement this
AVFunctionBarPlaybackControlsControlling method.
(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]): Ditto.
- 9:13 AM Changeset in webkit [208649] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the build
- platform/spi/cocoa/NSTouchBarSPI.h: Removed duplicate @interface declarations.
- 6:50 AM Changeset in webkit [208648] by
-
- 11 edits2 adds in trunk
Ensure MathML render tree are clean by the end of FrameView::layout().
https://bugs.webkit.org/show_bug.cgi?id=162824
Patch by Frederic Wang <fwang@igalia.com> on 2016-11-12
Reviewed by Darin Adler.
Source/WebCore:
clearNeedsLayout is not called during the layout of invalid MathML markup. We introduce a new
helper function to perform proper layout of such markup and we now call it from the various
MathML layoutBlock functions. Additionally, we ensure that the preferred width is dirty after
computation in RenderMathMLScripts::computePreferredLogicalWidths.
Test: mathml/invalid-markup.html
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::layoutInvalidMarkup): Helper function to layout invalid markup.
- rendering/mathml/RenderMathMLBlock.h: Declare layoutInvalidMarkup.
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::layoutBlock): Call layoutInvalidMarkup.
- rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::layoutBlock): Ditto.
- rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Set the preferred width dirty
after computation to avoid that it is computed again and again.
(WebCore::RenderMathMLScripts::layoutBlock): Call layoutInvalidMarkup.
- rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::layoutBlock): Ditto.
LayoutTests:
- mathml/invalid-markup-expected.txt: Added.
- mathml/invalid-markup.html: Added.
- mathml/mn-as-list-item-assert-expected.txt: Update text expectation now that invalid
subtree appears in the output.
- mathml/msubsup-fuzz-expected.txt: Ditto.
- accessibility/mac/mathml-multiscript.txt: Ditto.
- 4:41 AM Changeset in webkit [208647] by
-
- 3 edits in trunk/Source/WebCore
Remove RenderMathMLOperator::shouldAllowStretching
https://bugs.webkit.org/show_bug.cgi?id=164313
Patch by Frederic Wang <fwang@igalia.com> on 2016-11-12
Reviewed by Darin Adler.
RenderMathMLOperator::shouldAllowStretching is an old function from early implementations of
MathML. Its name is now confusing since it also includes non-stretchy large operators.
Moreover, it is not really useful and is actually only used by two functions: useMathOperator
and updateMathOperator. The former is almost equivalent and is used as a replacement of
shouldAllowStretching everywhere else. We rewrite the two remaining calls with the finer
test functions isStretchy() and isLargeOperatorInDisplayStyle().
No new tests, behavior unchanged.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateMathOperator): Reorder the conditionals to avoid the
use of RenderMathMLOperator::shouldAllowStretching and match useMathOperator.
(WebCore::RenderMathMLOperator::useMathOperator): Rewrite shouldAllowStretching() using
isStretchy() and isLargeOperatorInDisplayStyle().
(WebCore::RenderMathMLOperator::shouldAllowStretching): Deleted.
- rendering/mathml/RenderMathMLOperator.h: Remove declaration of shouldAllowStretching.
- 12:57 AM Changeset in webkit [208646] by
-
- 465 edits in trunk/Source/WebCore
Use #pragma once in WebCore
https://bugs.webkit.org/show_bug.cgi?id=164373
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-12
Reviewed by Darin Adler.
- Modules/*.h:
- crypto/*.h:
- cssjit/*.h:
- editing/*.h:
- fileapi/*.h:
- history/*.h:
- loader/*.h:
- mathml/*.h:
- page/*.h:
- replay/*.h:
- storage/*.h:
- xml/*.h:
- editing/FrameSelection.cpp:
- loader/ResourceLoadStatisticsStore.cpp:
Remove unused LOG and DEBUG defines.
- 12:43 AM Changeset in webkit [208645] by
-
- 2 edits in trunk/Source/WebCore
Follow-up: fix the OpenSource build on Mac after r208642
https://bugs.webkit.org/show_bug.cgi?id=164677
Reviewed by Ryosuke Niwa.
The playbackControlsController property should also be
assign
.
- platform/spi/cocoa/AVKitSPI.h:
- 12:23 AM Changeset in webkit [208644] by
-
- 3 edits in trunk/Tools
run-safari does not work for open source contributors
https://bugs.webkit.org/show_bug.cgi?id=164667
<rdar://problem/29229894>
Reviewed by Joseph Pecoraro.
- Scripts/run-api-tests:
(archCommandLineArgumentsForRestrictedEnvironmentVariables): Moved from here…
- Scripts/webkitdirs.pm:
(archCommandLineArgumentsForRestrictedEnvironmentVariables): …to here
(runMacWebKitApp): Have arch(1) carry the DYLD_* variables we set in our environmet over
to the environment of the app being run.
- 12:16 AM Changeset in webkit [208643] by
-
- 2 edits in trunk/Source/JavaScriptCore
Follow-up fix to r208639.
Unreviewed fix. This is a straightfoward change where I forgot to
switch from uncheckedArgument() to argument() in once case after
dropping an argumentCount check. All other cases do this properly.
This addresses an ASSERT seen on the bots running tests.
- runtime/JSDataViewPrototype.cpp:
(JSC::setData):
Nov 11, 2016:
- 10:31 PM Changeset in webkit [208642] by
-
- 2 edits in trunk/Source/WebCore
SPI imports in AVKitSPI.h should be guarded by USE(APPLE_INTERNAL_SDK)
https://bugs.webkit.org/show_bug.cgi?id=164672
Reviewed by Dan Bernstein.
Fixes the OpenSource build when ENABLE(WEB_PLAYBACK_CONTROLS_MANAGER) is on.
- platform/spi/cocoa/AVKitSPI.h: Add USE(APPLE_INTERNAL_SDK) guards around AVKit function bar SPI headers.
Additionally, define AVFunctionBarPlaybackControlsProvider in the case where AVKit SPI is unavailable.
- 9:03 PM Changeset in webkit [208641] by
-
- 5 edits2 adds in trunk
event.composedPath() does not include window
https://bugs.webkit.org/show_bug.cgi?id=164609
<rdar://problem/29210383>
Reviewed by Antti Koivisto.
Source/WebCore:
Fixed the bug by including WindowContext be a part of the regular EventPath. This also simplifies
dispatchEventInDOM which used to had a special logic for dispatching an event on the window.
Also fixed a bug in EventDispatcher::dispatchEvent that event.target would be nullptr when an event was
dispatched inside a disconnected shadow tree or prevented from propagating to the document tree.
Preserve the final target by simply saving event.target() prior to invoking the default event handler instead.
Test: fast/shadow-dom/event-path-with-window.html
- dom/EventDispatcher.cpp:
(WebCore::WindowEventContext): Deleted. Moved to EventPath.cpp.
(WebCore::dispatchEventInDOM): Removed the code for WindowContext. The generic event dispatching logic
will do the same work now.
(WebCore::EventDispatcher::dispatchEvent): Restore the original target instead of using that of WindowContext.
- dom/EventPath.cpp:
(WebCore::WindowEventContext): Moved from EventDispatcher.cpp. Also made it a subclass of EventContext.
(WebCore::WindowEventContext::handleLocalEvents): Added.
(WebCore::EventPath::EventPath): When the parent's nullptr, check if the current node is Document. If it is,
follow https://dom.spec.whatwg.org/#interface-document where it says:
"A document’s get the parent algorithm, given an event, returns null if event’s type attribute value is 'load'
or document does not have a browsing context, and the document’s associated Window object otherwise."
(WebCore::EventPath::setRelatedTarget): Skip over WindowContext.
(WebCore::EventPath::retargetTouch): Ditto.
(WebCore::EventPath::computePathUnclosedToTarget): When the target is DOMWindow, use its document as the target.
Also, include any event target that is not a node in the event path.
LayoutTests:
Added a W3C style testharness.js test for dispatching an inside a shadow tree connected to a document.
- fast/shadow-dom/event-path-with-window-expected.txt: Added.
- fast/shadow-dom/event-path-with-window.html: Added.
- fast/shadow-dom/resources/event-path-test-helpers.js:
(dispatchEventWithLog): Traverse from document to window. Also include the event object in the log.
- 8:00 PM Changeset in webkit [208640] by
-
- 4 edits1 add in trunk
test262: DataView with explicit undefined byteLength should be the same as it not being present
https://bugs.webkit.org/show_bug.cgi?id=164453
Reviewed by Darin Adler.
JSTests:
- stress/dataview-construct.js: Added.
(assert):
(shouldThrow):
- test262.yaml:
Source/JavaScriptCore:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayView):
Handle the special case of DataView construction with an undefined byteLength value.
- 7:10 PM Changeset in webkit [208639] by
-
- 8 edits in trunk
test262: DataView get methods should allow for missing offset, set methods should allow for missing value
https://bugs.webkit.org/show_bug.cgi?id=164451
Reviewed by Darin Adler.
JSTests:
- test262.yaml:
Source/JavaScriptCore:
- runtime/JSDataViewPrototype.cpp:
(JSC::getData):
Missing offset is still valid and will be coerced to 0.
(JSC::setData):
Missing value is still valid and will be coerced to 0.
LayoutTests:
- fast/canvas/webgl/data-view-test-expected.txt:
- fast/canvas/webgl/data-view-test.html:
Create a DataView large enough so that the get/set operations don't fail
due to out of bounds access, and assert that they do not throw, because
the undefined offset and value parameters get converted to 0.
- webgl/1.0.2/conformance/typedarrays/data-view-test-expected.txt:
This test is wrong. Leave the test alone but update our copy.
- 7:01 PM Changeset in webkit [208638] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 6:58 PM Changeset in webkit [208637] by
-
- 53 edits4 copies8 adds in trunk
We should have a more concise way of determining when we're varargs calling a function using rest parameters
https://bugs.webkit.org/show_bug.cgi?id=164258
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/call-using-spread.js: Added.
(bar):
(foo):
- microbenchmarks/spread-large-array.js: Added.
(foo):
(arrays.push):
- microbenchmarks/spread-small-array.js: Added.
(foo):
- stress/spread-array-iterator-watchpoint-2.js: Added.
(foo):
(arrayIterator.next):
- stress/spread-array-iterator-watchpoint.js: Added.
(foo):
(Array.prototype.Symbol.iterator):
- stress/spread-non-array.js: Added.
(assert):
(foo):
(let.customIterator.Symbol.iterator):
(bar):
Source/JavaScriptCore:
This patch adds two new bytecodes and DFG nodes for the following code patterns:
`
foo(a, b, ...c)
let x = [a, b, ...c];
`
To do this, I've introduced two new bytecode operations (and their
corresponding DFG nodes):
op_spread and op_new_array_with_spread.
op_spread takes a single input and performs the ES6 iteration protocol on it.
It returns the result of doing the spread inside a new class I've
made called JSFixedArray. JSFixedArray is a cell with a single 'size'
field and a buffer of values allocated inline in the cell. Abstracting
the protocol into a single node is good because it will make IR analysis
in the future much simpler. For now, it's also good because it allows
us to create fast paths for array iteration (which is quite common).
This fast path allows us to emit really good code for array iteration
inside the DFG/FTL.
op_new_array_with_spread is a variable argument bytecode that also
has a bit vector associated with it. The bit vector indicates if
any particular argument is to be spread or not. Arguments that
are spread are known to be JSFixedArray because we must emit an
op_spread before op_new_array_with_spread consumes the value.
For example, for this array:
[a, b, ...c, d, ...e]
we will have this bit vector:
[0, 0, 1, 0, 1]
The reason I've chosen this IR is that it will make eliminating
a rest allocation for this type of code much easier:
`
function foo(...args) {
return bar(a, b, ...args);
}
`
It will be easier to analyze the IR now that the operations
will be described at a high level.
This patch is an ~8% speedup on ES6SampleBench on my MBP.
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/IteratorHelpers.js: Added.
(performIteration):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::generateConditionForSelfEquivalence):
- bytecode/ObjectPropertyConditionSet.h:
- bytecode/TrackedReferences.cpp:
(JSC::TrackedReferences::check):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::bitVectors):
(JSC::UnlinkedCodeBlock::bitVector):
(JSC::UnlinkedCodeBlock::addBitVector):
(JSC::UnlinkedCodeBlock::shrinkToFit):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArrayWithSpread):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::watchHavingABadTime):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::isWatchingArrayIteratorProtocolWatchpoint):
- dfg/DFGNode.h:
(JSC::DFG::Node::bitVector):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedCell):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateVariableSizedCell):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_array_with_spread):
(JSC::JIT::emit_op_spread):
- jit/JITOperations.h:
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntSlowPaths.cpp:
- llint/LowLevelInterpreter.asm:
- runtime/ArrayIteratorAdaptiveWatchpoint.cpp: Added.
(JSC::ArrayIteratorAdaptiveWatchpoint::ArrayIteratorAdaptiveWatchpoint):
(JSC::ArrayIteratorAdaptiveWatchpoint::handleFire):
- runtime/ArrayIteratorAdaptiveWatchpoint.h: Added.
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/IteratorOperations.h:
(JSC::forEachInIterable):
- runtime/JSCInlines.h:
- runtime/JSFixedArray.cpp: Added.
(JSC::JSFixedArray::visitChildren):
- runtime/JSFixedArray.h: Added.
(JSC::JSFixedArray::createStructure):
(JSC::JSFixedArray::createFromArray):
(JSC::JSFixedArray::get):
(JSC::JSFixedArray::buffer):
(JSC::JSFixedArray::size):
(JSC::JSFixedArray::offsetOfSize):
(JSC::JSFixedArray::offsetOfData):
(JSC::JSFixedArray::create):
(JSC::JSFixedArray::JSFixedArray):
(JSC::JSFixedArray::allocationSize):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::objectPrototypeIsSane): Deleted.
(JSC::JSGlobalObject::arrayPrototypeChainIsSane): Deleted.
(JSC::JSGlobalObject::stringPrototypeChainIsSane): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrayIteratorProtocolWatchpoint):
(JSC::JSGlobalObject::iteratorProtocolFunction):
- runtime/JSGlobalObjectInlines.h: Added.
(JSC::JSGlobalObject::objectPrototypeIsSane):
(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):
(JSC::JSGlobalObject::isArrayIteratorProtocolFastAndNonObservable):
- runtime/JSType.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 6:33 PM Changeset in webkit [208636] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Support all the correct blend modes
https://bugs.webkit.org/show_bug.cgi?id=164669
Reviewed by Dean Jackson.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
- 6:31 PM Changeset in webkit [208635] by
-
- 5 edits in trunk/Tools
Removed unused INCLUDE_OPTIONS_FOR_DEBUGGING
https://bugs.webkit.org/show_bug.cgi?id=164664
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-11-11
Reviewed by Dan Bernstein.
- Scripts/debug-minibrowser:
- Scripts/debug-safari:
- Scripts/debug-test-runner:
- Scripts/webkitdirs.pm:
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded):
There are no debug specific options anymore.
- 6:25 PM Changeset in webkit [208634] by
-
- 5 edits17 copies1 add1 delete in trunk/JSTests
Relocate wasm tests and actually add them to the test runner
https://bugs.webkit.org/show_bug.cgi?id=164668
Reviewed by Yusuke Suzuki.
This moves the Wasm tests from their current location down a level.
Without relocating, the tests cannot properly be run by the wasm test runner.
- wasm.yaml:
- wasm/Builder.js: Fix typos, yay lazy synatx checking!
- wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking!
(export.default.LowLevelBinary.prototype.get return):
- wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js.
- wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js.
- wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js.
- wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js.
- wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js.
- wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js.
- wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js.
- wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js.
- wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js.
- wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js.
- wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js.
- wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js.
- wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js.
- wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js.
- wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js.
- wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js.
- wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js.
- wasm/self-test/test_BuilderJSON.js: Rebasline
- 5:18 PM Changeset in webkit [208633] by
-
- 24 edits in trunk/Source
Use SecurityOriginData as keys in StorageManager
https://bugs.webkit.org/show_bug.cgi?id=159834
<rdar://problem/27346948>
Patch by Alex Christensen <achristensen@webkit.org> on 2016-11-11
Reviewed by Brady Eidson.
Source/WebCore:
No change in behavior.
- page/SecurityOriginData.h:
(WebCore::SecurityOriginData::SecurityOriginData):
(WebCore::SecurityOriginData::isEmpty):
(WebCore::SecurityOriginData::isHashTableDeletedValue):
(WebCore::SecurityOriginDataHashTraits::isEmptyValue):
(WebCore::SecurityOriginDataHash::hash):
(WebCore::SecurityOriginDataHash::equal):
Add some hash functions so a SecurityOriginData can be used as a key in a HashMap.
Source/WebKit2:
- Platform/IPC/HandleMessage.h:
(IPC::callMemberFunctionImpl):
Add a missing std::forward so we can use this callMemberFunctionImpl with rvalues.
- UIProcess/API/C/WKApplicationCacheManager.cpp:
(WKApplicationCacheManagerGetApplicationCacheOrigins):
(WKApplicationCacheManagerDeleteEntriesForOrigin):
- UIProcess/API/C/WKKeyValueStorageManager.cpp:
(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerDeleteEntriesForOrigin):
- UIProcess/API/C/WKResourceCacheManager.cpp:
(WKResourceCacheManagerGetCacheOrigins):
(WKResourceCacheManagerClearCacheForOrigin):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):
- UIProcess/Databases/DatabaseProcessProxy.cpp:
(WebKit::DatabaseProcessProxy::deleteWebsiteDataForOrigins):
- UIProcess/Databases/DatabaseProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Storage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::close):
- UIProcess/Storage/LocalStorageDatabase.h:
- UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::databasePath):
(WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::origins):
- UIProcess/Storage/LocalStorageDatabaseTracker.h:
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::securityOrigin):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::TransientLocalStorageNamespace::origins):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::clone):
(WebKit::StorageManager::StorageArea::items):
(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded):
(WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea):
(WebKit::StorageManager::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::LocalStorageNamespace::clearAllStorageAreas):
(WebKit::StorageManager::SessionStorageNamespace::origins):
(WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::StorageArea::create): Deleted.
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea): Deleted.
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea): Deleted.
- UIProcess/Storage/StorageManager.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
- UIProcess/WebProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForOrigin):
(WebKit::WebsiteDataRecord::add):
- UIProcess/WebsiteData/WebsiteDataRecord.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::mediaKeyOrigins):
(WebKit::WebsiteDataStore::removeMediaKeys):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Fewer SecurityOrigin uses in the UIProcess! Hooray!
- 5:13 PM Changeset in webkit [208632] by
-
- 5 edits in trunk/LayoutTests
Skip editing/input/focus-change-with-marked-text.html everywhere except ios-simulator-wk1.
https://bugs.webkit.org/show_bug.cgi?id=164666
Unreviewed test gardening.
- TestExpectations:
- platform/ios-simulator-wk1/TestExpectations:
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 5:01 PM Changeset in webkit [208631] by
-
- 1 copy in tags/Safari-602.3.11
New tag.
- 4:48 PM Changeset in webkit [208630] by
-
- 13 edits4 adds in trunk
Hovering over a slotted Text node clears hover state
https://bugs.webkit.org/show_bug.cgi?id=164002
<rdar://problem/29040471>
Reviewed by Simon Fraser.
Source/WebCore:
The bug was caused by HitTestResult::innerElement returning the parent element of a Text node without
taking the shadow root or slots into account. For hit testing, we always want to use the "flat tree"
or "composed tree" (imprecisely but close enough in this case).
Fixed the bug by making HitTestResult::innerElement use parentNodeInComposedTree. Also renamed it to
HitTestResult::targetElement to be consistent with HitTestResult::targetNode.
Tests: fast/shadow-dom/activate-over-slotted-content.html
fast/shadow-dom/hover-over-slotted-content.html
- dom/Document.cpp:
(WebCore::Document::prepareMouseEvent):
- html/MediaElementSession.cpp:
(WebCore::isMainContentForPurposesOfAutoplay):
- page/EventHandler.cpp:
(WebCore::EventHandler::eventMayStartDrag):
(WebCore::EventHandler::hitTestResultAtPoint):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::hoverTimerFired):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::handleTouchEvent):
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::targetElement): Renamed from innerElement.
Now finds the parent element in the composed tree.
- rendering/HitTestResult.h:
(WebCore::HitTestResult::innerNode):
Source/WebKit/mac:
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController performHitTestAtPoint:]):
Source/WebKit2:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
LayoutTests:
Added two reference tests for activating and hovering over a Text node.
The text node should activate :hover and :activate rules in the shadow tree respectively.
- fast/shadow-dom/activate-over-slotted-content-expected.html: Added.
- fast/shadow-dom/activate-over-slotted-content.html: Added.
- fast/shadow-dom/hover-over-slotted-content-expected.html: Added.
- fast/shadow-dom/hover-over-slotted-content.html: Added.
- platform/ios-simulator/TestExpectations: Skip the newly added tests since iOS doesn't
support :hover or :activate via mouse down.
- 4:40 PM Changeset in webkit [208629] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix after r208628
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal): Cast pointer arithmetic to
uint32_t to avoid warning.
- 4:32 PM Changeset in webkit [208628] by
-
- 3 edits2 adds in trunk
Neutered ArrayBuffers are not properly serialized
https://bugs.webkit.org/show_bug.cgi?id=164647
<rdar://problem/29213490>
Reviewed by David Kilzer.
Source/WebCore:
Correct binding logic to handle ImageBuffers being deserialized from neutered ArrayBuffers.
Test: fast/canvas/neutered-imagedata.html
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal):
LayoutTests:
- fast/canvas/neutered-imagedata-expected.txt: Added.
- fast/canvas/neutered-imagedata.html: Added.
- 4:29 PM Changeset in webkit [208627] by
-
- 13 edits2 moves18 adds in trunk
Move Wasm tests to JS
https://bugs.webkit.org/show_bug.cgi?id=164611
Reviewed by Geoffrey Garen.
This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the
ommited tests were earliest tests, which tested trivial things, like adding two
constants. Some tests are ommited for other reasons, however. These are:
1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers. 2)
Tests that would validate the memory of the module once wasm was done with it since that's
not really possible in JS.
In order to make such a translation easier this patch also adds some features to the JS
testing api:
1) Blocks can now be done lexically by adding a lambda as the last argument of the block
opcode. For example one can do:
...
.Block("i32", b => b.I32Const(1) )
and the nested lambda will automatically have an end attached.
2) The JS testing api can now handle inline signature types.
3) Relocate some code to make it easier to follow and prevent 44 space indentation.
4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the
wasm.json without being remapped.
5) Add support for Memory and Function sections to the Builder.
6) Add support for local variables.
On the JSC side, we needed to expose a new function to validate the compiled wasm code
behaves the way we expect. At least until the JS Wasm API is finished. The new validation
function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the
number of functions in the blob and tests for each of those functions.
JSTests:
- wasm/Builder.js:
(const._maybeRegisterType):
(const): Deleted.
(switch.typeof): Deleted.
- wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Import):
(const.emitters.Function):
(const.emitters.Memory):
(const.emitters.Code):
(export.const.Binary):
- wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return):
(export.default.LowLevelBinary.prototype.varuint32):
(export.default.LowLevelBinary.prototype.varint32):
(export.default.LowLevelBinary.prototype.varuint1):
(export.default.LowLevelBinary.prototype.varint7):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getVaruint32):
(export.default.LowLevelBinary.prototype.getVarint32):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.varuint): Deleted.
(export.default.LowLevelBinary.prototype.varint): Deleted.
(export.default.LowLevelBinary.prototype.getVaruint): Deleted.
(export.default.LowLevelBinary.prototype.getVarint): Deleted.
- wasm/js-api/test_old_tests.js: Added.
(ret5):
(brTableWithLoop):
(brTableManyValues):
(run.brTableManyValues.brTableAsIf):
(ifThenFallthrough):
(ifThenElseFallthrough):
(dumbLessThanFallthrough):
(run.dumbLessThanFallthrough.floatSub):
(run.floatSub.add12):
(run.add12.factorial):
(i32load):
(run.i32load.i32load8s):
(run.i32load8s.dumbEqIfThenElse):
(run.dumbEqIfThenElse.dumbEqIfThenElse):
(run.dumbEqIfThenElse.dumbLessThanIfThenElse):
(run.dumbLessThanIfThenElse.loopSum):
(run.loopSum.loopMult):
(brIfLoopLessThan):
(run.brIfLoopLessThan.run):
- wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
- wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
- wasm/Builder.js:
(const._maybeRegisterType):
(const): Deleted.
(switch.typeof): Deleted.
- wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Import):
(const.emitters.Function):
(const.emitters.Memory):
(const.emitters.Code):
(export.const.Binary):
- wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return):
(export.default.LowLevelBinary.prototype.varuint32):
(export.default.LowLevelBinary.prototype.varint32):
(export.default.LowLevelBinary.prototype.varuint1):
(export.default.LowLevelBinary.prototype.varint7):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getVaruint32):
(export.default.LowLevelBinary.prototype.getVarint32):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.varuint): Deleted.
(export.default.LowLevelBinary.prototype.varint): Deleted.
(export.default.LowLevelBinary.prototype.getVaruint): Deleted.
(export.default.LowLevelBinary.prototype.getVarint): Deleted.
- wasm/js-api/function-tests/add-12.js: Added.
- wasm/js-api/function-tests/br-if-loop-less-than.js: Added.
- wasm/js-api/function-tests/brTableAsIf.js: Added.
- wasm/js-api/function-tests/brTableManyValues.js: Added.
- wasm/js-api/function-tests/brTableWithLoop.js: Added.
- wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added.
- wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added.
- wasm/js-api/function-tests/dumb-less-than-ite.js: Added.
- wasm/js-api/function-tests/factorial.js: Added.
- wasm/js-api/function-tests/float-sub.js: Added.
- wasm/js-api/function-tests/i32-load.js: Added.
- wasm/js-api/function-tests/i32-load8-s.js: Added.
- wasm/js-api/function-tests/if-then-else-fallthrough.js: Added.
- wasm/js-api/function-tests/if-then-fallthrough.js: Added.
- wasm/js-api/function-tests/loop-mult.js: Added.
- wasm/js-api/function-tests/loop-sum.js: Added.
- wasm/js-api/function-tests/ret5.js: Added.
- wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
- wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
Source/JavaScriptCore:
- jsc.cpp:
(GlobalObject::finishCreation):
(box):
(callWasmFunction):
(functionTestWasmModuleFunctions):
- testWasm.cpp:
(checkPlan):
(runWasmTests):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parse):
(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseBlock): Deleted.
- wasm/WasmModuleParser.cpp:
(JSC::Wasm::ModuleParser::parseMemory):
(JSC::Wasm::ModuleParser::parseExport):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::Plan):
(JSC::Wasm::Plan::run):
- wasm/WasmPlan.h:
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::constructJSWebAssemblyModule):
- 4:28 PM Changeset in webkit [208626] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Whitespace in Editor should be less visible than regular content
https://bugs.webkit.org/show_bug.cgi?id=164660
Reviewed by Matt Baker.
- UserInterface/Views/CodeMirrorOverrides.css:
(.show-whitespace-characters .CodeMirror .cm-whitespace::before):
- 4:26 PM Changeset in webkit [208625] by
-
- 5 edits in branches/safari-602-branch/Source
Versioning.
- 4:20 PM Changeset in webkit [208624] by
-
- 39 edits2 copies1 move4 adds in trunk
[WK2] autocorrect and autocapitalize attributes do not work in contenteditable elements
https://bugs.webkit.org/show_bug.cgi?id=164538
<rdar://problem/8418711>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Adds autocorrect and autocapitalize getters and setters to HTMLElements. These check the
autocorrect
and
autocapitalize
attributes and return whether or not the element supports autocorrect, and the
autocapitalization type, respectively. By default, autocorrection is enabled and autocapitalization is enabled
on the sentence level for elements. Also refactors/renames WebAutocapitalizeType so that in WebCore, we deal
solely with AutocapitalizeTypes and WebKit1 converts from AutocapitalizeType to WebAutocapitalizeType as needed
for UIKit.
Tests: fast/events/ios/contenteditable-autocapitalize.html
fast/events/ios/contenteditable-autocorrect.html
- WebCore.xcodeproj/project.pbxproj:
- html/Autocapitalize.cpp:
(WebCore::autocapitalizeTypeForAttributeValue):
(WebCore::stringForAutocapitalizeType):
- html/Autocapitalize.h:
- html/AutocapitalizeTypes.h: Renamed from Source/WebCore/html/WebAutocapitalize.h.
Move WebAutocapitalizeType into AutocapitalizeTypes.h as simply AutocapitalizeType.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::autocapitalize):
(WebCore::HTMLElement::autocapitalizeType):
(WebCore::HTMLElement::setAutocapitalize):
(WebCore::HTMLElement::shouldAutocorrect):
(WebCore::HTMLElement::setAutocorrect):
- html/HTMLElement.h:
(WebCore::HTMLElement::autocorrect):
- html/HTMLElement.idl:
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::shouldAutocorrect):
(WebCore::HTMLFormControlElement::autocapitalizeType):
(WebCore::HTMLFormControlElement::autocorrect): Deleted.
(WebCore::HTMLFormControlElement::setAutocorrect): Deleted.
(WebCore::HTMLFormControlElement::autocapitalize): Deleted.
(WebCore::HTMLFormControlElement::setAutocapitalize): Deleted.
Fold autocorrect/autocapitalize member functions into HTMLElement and remove element-specific code in
HTML(FormControl|Form)Element.cpp.
- html/HTMLFormControlElement.h:
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::shouldAutocorrect):
(WebCore::HTMLFormElement::autocorrect): Deleted.
(WebCore::HTMLFormElement::setAutocorrect): Deleted.
(WebCore::HTMLFormElement::autocapitalizeType): Deleted.
(WebCore::HTMLFormElement::autocapitalize): Deleted.
(WebCore::HTMLFormElement::setAutocapitalize): Deleted.
- html/HTMLFormElement.h:
- html/HTMLFormElement.idl:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
Source/WebKit:
Introduce WebAutocapitalizeTypes.h to WebKit.
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit/mac:
Account for renaming HTMLElement::autocorrect to HTMLElement::shouldAutocorrect, as well as moving
WebAutocapitalizeType to WebKit from WebCore. Additionally, moves the -autocorrect and -autocapitalize SPIs out
of HTML(Input|Form|TextArea)ElementPrivate.h and into HTMLElementPrivate.h. This also means removing redundant
code for interfacing with the unwrapped HTMLElement's autocorrect and autocapitalize attributes.
- DOM/DOMHTML.mm:
(webAutocapitalizeType):
(-[DOMHTMLInputElement _autocapitalizeType]):
(-[DOMHTMLTextAreaElement _autocapitalizeType]):
- DOM/DOMHTMLElement.mm:
(-[DOMHTMLElement autocorrect]):
(-[DOMHTMLElement setAutocorrect:]):
(-[DOMHTMLElement autocapitalize]):
(-[DOMHTMLElement setAutocapitalize:]):
- DOM/DOMHTMLElementPrivate.h: Copied from Source/WebCore/html/Autocapitalize.h.
- DOM/DOMHTMLFormElement.mm:
(-[DOMHTMLFormElement autocorrect]): Deleted.
(-[DOMHTMLFormElement setAutocorrect:]): Deleted.
(-[DOMHTMLFormElement autocapitalize]): Deleted.
(-[DOMHTMLFormElement setAutocapitalize:]): Deleted.
- DOM/DOMHTMLInputElement.mm:
(-[DOMHTMLInputElement autocorrect]): Deleted.
(-[DOMHTMLInputElement setAutocorrect:]): Deleted.
(-[DOMHTMLInputElement autocapitalize]): Deleted.
(-[DOMHTMLInputElement setAutocapitalize:]): Deleted.
- DOM/DOMHTMLInputElementPrivate.h:
- DOM/DOMHTMLTextAreaElement.mm:
(-[DOMHTMLTextAreaElement autocorrect]): Deleted.
(-[DOMHTMLTextAreaElement setAutocorrect:]): Deleted.
(-[DOMHTMLTextAreaElement autocapitalize]): Deleted.
(-[DOMHTMLTextAreaElement setAutocapitalize:]): Deleted.
- DOM/DOMHTMLTextAreaElementPrivate.h:
We need to import DOMHTMLElementPrivate.h here to avoid breaking UIKit. We should follow this up with a UIKit
change to import DOMHTMLElementPrivate.h directly.
- DOM/DOMPrivate.h:
- DOM/WebAutocapitalizeTypes.h: Copied from Tools/WebKitTestRunner/ios/UIKitSPI.h.
- MigrateHeaders.make:
Source/WebKit2:
Consult HTMLElement::autocorrect() and HTMLElement::autocapitalizeType() when assembling the assisted node
information for the currently assisted node.
- Shared/AssistedNodeInformation.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(toUITextAutocapitalize):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Adds support for being able to test autocorrect and autocapitalize attributes in contenteditable areas. To do
this, we add removeAllDynamicDictionaries to UIScriptController in order to ensure that autocorrect suggestions
are reset to their defaults prior to running contenteditable-autocorrect-off.html.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::removeAllDynamicDictionaries):
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort._createSimulatorApp):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::removeAllDynamicDictionaries):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView _keyboardDidShow:]):
(-[TestRunnerWKWebView _keyboardDidHide:]):
Work around an issue where consecutive UIKeyboardDidShowNotification would cause keyboard appearance callbacks
to be fired multiple times. This was causing a single key press to cause two characters to be typed. While this
does not affect the correctness of existing tests, the new autocorrection test requires this workaround.
- WebKitTestRunner/ios/UIKitSPI.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):
(WTR::UIScriptController::removeAllDynamicDictionaries):
LayoutTests:
Adds new layout tests verifying that
autocorrect
andautocapitalize
attributes can be used to opt out of
autocapitalization and autocorrection in a contenteditable area in WK2. Additionally, tests that autocorrection
and autocapitalization attributes may be changed by settingelement.autocorrect
andelement.autocapitalize
,
respectively.
- fast/events/ios/contenteditable-autocapitalize-none-expected.txt: Added.
- fast/events/ios/contenteditable-autocapitalize-none.html: Added.
- fast/events/ios/contenteditable-autocorrect-off-expected.txt: Added.
- fast/events/ios/contenteditable-autocorrect-off.html: Added.
- 4:06 PM Changeset in webkit [208623] by
-
- 4 edits in trunk/Source
Move to modern TouchBar methods
https://bugs.webkit.org/show_bug.cgi?id=164655
-and corresponding-
rdar://problem/29226911
Reviewed by Wenson Hsieh.
customizationDefaultItemIdentifiers -> defaultItemIdentifiers
itemIdentifiers -> defaultItemIdentifiers
defaultItems -> templateItems
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebView _plainTextTouchBarDefaultItemIdentifiers]):
(-[WebView _richTextTouchBarDefaultItemIdentifiers]):
(-[WebView setUpTextTouchBar:]):
(-[WebView updateTextTouchBar]):
(-[WebView _plainTextTouchBarCustomizationDefaultItemIdentifiers]): Deleted.
(-[WebView _richTextTouchBarCustomizationDefaultItemIdentifiers]): Deleted.
Source/WebKit2:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::plainTextTouchBarDefaultItemIdentifiers):
(WebKit::richTextTouchBarDefaultItemIdentifiers):
(WebKit::WebViewImpl::setUpTextTouchBar):
(WebKit::WebViewImpl::updateTextTouchBar):
(WebKit::plainTextTouchBarCustomizationDefaultItemIdentifiers): Deleted.
(WebKit::richTextTouchBarCustomizationDefaultItemIdentifiers): Deleted.
- 3:50 PM Changeset in webkit [208622] by
-
- 2 edits in branches/safari-602-branch/Source/JavaScriptCore
Merge r208619. rdar://problem/29225966
- 3:50 PM Changeset in webkit [208621] by
-
- 3 edits1 add in branches/safari-602-branch
Merge r208614. rdar://problem/29225966
- 3:43 PM Changeset in webkit [208620] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Add support for paths as basic shapes.
https://bugs.webkit.org/show_bug.cgi?id=164661
Reviewed by Dean Jackson.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShapePath):
(WebCore::consumeBasicShape):
- 3:42 PM Changeset in webkit [208619] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed try to fix windows build after https://bugs.webkit.org/show_bug.cgi?id=164650
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- 3:28 PM Changeset in webkit [208618] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Support margin-box in shape parsing.
https://bugs.webkit.org/show_bug.cgi?id=164658
Reviewed by Sam Weinig.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShapeOrBox):
- 3:18 PM Changeset in webkit [208617] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Add support for -webkit-mask-source-type
https://bugs.webkit.org/show_bug.cgi?id=164657
Reviewed by Dean Jackson.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWebkitMaskSourceType):
(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):
- 3:08 PM Changeset in webkit [208616] by
-
- 9 edits2 adds in trunk
Updating class name doesn't update the slotted content's style
https://bugs.webkit.org/show_bug.cgi?id=164577
<rdar://problem/29205873>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: fast/shadow-dom/css-scoping-slotted-invalidation.html
Teach style invalidation code for attribute/class/id mutations about slotted rules.
- dom/ShadowRoot.cpp:
(WebCore::assignedShadowRootsIfSlotted):
Helper to find all assigned shadow roots (there may be more than one if slots are assigned to slots).
- dom/ShadowRoot.h:
- style/AttributeChangeInvalidation.cpp:
(WebCore::Style::mayBeAffectedByAttributeChange):
(WebCore::Style::mayBeAffectedByHostRules):
(WebCore::Style::mayBeAffectedBySlottedRules):
(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):
(WebCore::Style::mayBeAffectedByHostStyle): Deleted.
- style/ClassChangeInvalidation.cpp:
(WebCore::Style::mayBeAffectedByHostRules):
(WebCore::Style::mayBeAffectedBySlottedRules):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):
(WebCore::Style::mayBeAffectedByHostStyle): Deleted.
- style/ClassChangeInvalidation.h:
- style/IdChangeInvalidation.cpp:
(WebCore::Style::mayBeAffectedByHostRules):
(WebCore::Style::mayBeAffectedBySlottedRules):
(WebCore::Style::IdChangeInvalidation::invalidateStyle):
(WebCore::Style::mayBeAffectedByHostStyle): Deleted.
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
Fix a bug in style sharing where we were checking wrong element for host rules.
Tested by the included test too (the last empty div).
LayoutTests:
- fast/shadow-dom/css-scoping-slotted-invalidation-expected.html: Added.
- fast/shadow-dom/css-scoping-slotted-invalidation.html: Added.
- 3:04 PM Changeset in webkit [208615] by
-
- 3 edits in trunk/Source/WebCore
[CSS Parser] Support the spring animation timing function
https://bugs.webkit.org/show_bug.cgi?id=164654
Reviewed by Dean Jackson.
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeSpringFunction):
(WebCore::consumeAnimationTimingFunction):
(WebCore::consumeAnimationValue):
- 3:03 PM Changeset in webkit [208614] by
-
- 3 edits1 add in trunk
We recursively grab a lock in the DFGBytecodeParser causing us to deadlock
https://bugs.webkit.org/show_bug.cgi?id=164650
Reviewed by Geoffrey Garen.
JSTests:
- stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added.
(ident):
(let.o.set foo):
(foo):
Source/JavaScriptCore:
Some code was incorrectly holding a lock when recursively calling
back into the bytecode parser's via inlining a put_by_val as a put_by_id.
This can cause a deadlock if the inlinee CodeBlock is something we're
already holding a lock for. I've changed the range of the lock holder
to be as narrow as possible.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- 2:53 PM Changeset in webkit [208613] by
-
- 67 edits in trunk
WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
https://bugs.webkit.org/show_bug.cgi?id=164644
Reviewed by Brady Eidson.
Source/WebCore:
WorkerGlobalScope's indexedDB property should be on the prototype, not the instance
as per:
This is because WorkerGlobalScope is not marked as [Global] or [PrimaryGlobal] in
the IDL:
DedicatedWorkerGlobalScope is the one that is marked as [Global] and that should
have its attributes on the instance:
We were getting this mostly right, except for runtime-enabled attributes / operations
which would end up on the instance instead of the prototype. This patch adds support
for [PrimaryGlobal] / [Global] IDL extended attributes which determine the location
of properties. It also improves support for runtime-enabled properties so that they
can now be on either the instance or the prototype, exactly as if they were not
runtimed-enabled.
This gives us 100% pass rate on:
No new tests, updated existing test.
- bindings/scripts/CodeGeneratorJS.pm:
(IsGlobalOrPrimaryGlobalInterface):
(InterfaceRequiresAttributesOnInstance):
(AttributeShouldBeOnInstance):
(OperationShouldBeOnInstance):
(GenerateHeader):
(GeneratePropertiesHashTable):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.txt:
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceName::finishCreation):
- bindings/scripts/test/JS/JSInterfaceName.h:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::finishCreation):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactions::finishCreation):
- bindings/scripts/test/JS/JSTestCEReactions.h:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifier::finishCreation):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructor::finishCreation):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::finishCreation):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetter::finishCreation):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJIT::finishCreation):
- bindings/scripts/test/JS/JSTestDOMJIT.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::finishCreation):
- bindings/scripts/test/JS/JSTestEventConstructor.h:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::finishCreation):
- bindings/scripts/test/JS/JSTestEventTarget.h:
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::finishCreation):
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::finishCreation):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::finishCreation):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::finishCreation):
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterable::finishCreation):
- bindings/scripts/test/JS/JSTestIterable.h:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructor::finishCreation):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListener::finishCreation):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::finishCreation):
- bindings/scripts/test/JS/JSTestNamedConstructor.h:
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::finishCreation):
- bindings/scripts/test/JS/JSTestNode.h:
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministic::finishCreation):
- bindings/scripts/test/JS/JSTestNondeterministic.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::finishCreation):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::finishCreation):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::JSTestOverloadedConstructorsWithSequence::finishCreation):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltins::finishCreation):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::JSTestSerialization::finishCreation):
- bindings/scripts/test/JS/JSTestSerialization.h:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::finishCreation):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::finishCreation):
- bindings/scripts/test/JS/JSTestTypedefs.h:
- bindings/scripts/test/TestGlobalObject.idl:
- page/DOMWindow.idl:
- workers/DedicatedWorkerGlobalScope.idl:
LayoutTests:
Extend layout test coverage to check that:
- WorkerGlobalScope.indexedDB is on the prototype.
- WorkerGlobalScope.IDBDatabase constructor is on the instance
Both are enabled at runtime properties.
- fast/workers/WorkerGlobalScope-properties-prototype-expected.txt:
- fast/workers/WorkerGlobalScope-properties-prototype.html:
- fast/workers/self-hasOwnProperty-expected.txt:
- fast/workers/self-hasOwnProperty.html:
- 2:52 PM Changeset in webkit [208612] by
-
- 3 edits in trunk/Source/WebKit/win
[MediaStream] defer resolution of getUserMedia promise made in a background tab
https://bugs.webkit.org/show_bug.cgi?id=164643
<rdar://problem/29048317>
Unreviewed build fix after r208606.
- Plugins/PluginView.cpp:
(WebCore::PluginView::mediaCanStart):
- Plugins/PluginView.h:
- 2:16 PM Changeset in webkit [208611] by
-
- 6 edits in trunk/Source/WebKit2
Get rid of old sandbox rules for OS's we no longer support
https://bugs.webkit.org/show_bug.cgi?id=164638
Reviewed by Simon Fraser.
Clean up the various sandbox profiles to get rid of rules that applied to operating system
versions we no longer support, or were added in support of bugs that have long since been
fixed.
This should introduce no change in behavior.
- DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
- Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:59 PM Changeset in webkit [208610] by
-
- 6 edits2 adds in trunk
Shadow DOM: Toggling class in
.class ::slotted(*)
does not trigger style recalc
https://bugs.webkit.org/show_bug.cgi?id=160864
Reviewed by Ryosuke Niwa.
Source/WebCore:
Also fix similar issue with ::host
Test: fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation.html
- css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::invalidateIfNeeded):
If we have ::slotted rules and encounter a <slot>, invalidate the slotted host children.
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
Invalidate the shadow host if we have ::host rules.
- css/StyleInvalidationAnalysis.h:
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
Fix a bug where it was possible to mutate stylesheets in the inline stylesheet cache.
The included test covers this.
- style/StyleScope.cpp:
(WebCore::Style::Scope::updateActiveStyleSheets):
Handle the full invalidation case.
LayoutTests:
- fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation-expected.html: Added.
- fast/shadow-dom/css-scoping-host-and-slotted-context-invalidation.html: Added.
- 1:57 PM Changeset in webkit [208609] by
-
- 25 edits in trunk
IndexedDB 2.0: "close pending flag" and firing blocked events all need fixing.
https://bugs.webkit.org/show_bug.cgi?id=164641
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/IndexedDB/idbobjectstore-rename-store-expected.txt:
Source/WebCore:
No new tests (Covered by at least 3 existing tests).
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::maybeCloseInServer):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::databaseConnectionPendingClose):
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/client/IDBConnectionToServer.cpp:
(WebCore::IDBClient::IDBConnectionToServer::databaseConnectionPendingClose):
- Modules/indexeddb/client/IDBConnectionToServer.h:
- Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::databaseConnectionPendingClose):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/ServerOpenDBRequest.cpp:
(WebCore::IDBServer::ServerOpenDBRequest::maybeNotifyRequestBlocked):
(WebCore::IDBServer::ServerOpenDBRequest::notifyRequestBlocked): Deleted.
- Modules/indexeddb/server/ServerOpenDBRequest.h:
(WebCore::IDBServer::ServerOpenDBRequest::hasNotifiedBlocked): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::allConnectionsAreClosedOrClosing):
(WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::notifyCurrentRequestConnectionClosedOrFiredVersionChangeEvent):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionPendingCloseFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionIsClosing):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::databaseConnectionPendingClose):
- Modules/indexeddb/shared/InProcessIDBServer.h:
Source/WebKit2:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose):
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::WebIDBConnectionToServer::databaseConnectionPendingClose):
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
- 1:55 PM Changeset in webkit [208608] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Fix time unit parsing
https://bugs.webkit.org/show_bug.cgi?id=164649
Reviewed by Dean Jackson.
Make sure that a unitless value gets changed to milliseconds properly.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeTime):
- 1:50 PM Changeset in webkit [208607] by
-
- 3 edits in trunk/Source/WebCore
Reduce number of platformMemoryUsage calls
https://bugs.webkit.org/show_bug.cgi?id=164375
Reviewed by Andreas Kling.
platformMemoryUsage was being called all the time while logging the
results of various memory-purging operations. This logging is
subordinate to the needs of performance and so can be removed.
Behavior is now as follows:
- If memory-pressure relief logging is enabled, logging includes
memory usage information. On Cocoa, this logging is disabled by
default but can be enabled by setting LogMemoryJetsamDetails in
defaults
.
- Otherwise, if release-logging is enabled (as it is on Cocoa),
abbreviated memory pressure relief logging is performed: the logging
lines are printed but without any memory usage information.
- Otherwise, no logging is performed.
No new tests -- no tests for logging.
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
- platform/MemoryPressureHandler.h:
(WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
(WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
- 1:45 PM Changeset in webkit [208606] by
-
- 16 edits2 adds in trunk
[MediaStream] defer resolution of getUserMedia promise made in a background tab
https://bugs.webkit.org/show_bug.cgi?id=164643
<rdar://problem/29048317>
Reviewed by Brady Eidson.
Source/WebCore:
Test: fast/mediastream/get-user-media-background-tab.html
Do not start producing data when the document does not allow media
to start playing. Instead, register with the document for a callback
when playback is allowed and start then.
- Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::~MediaStream):
(WebCore::MediaStream::mediaCanStart):
(WebCore::MediaStream::startProducingData):
(WebCore::MediaStream::stopProducingData):
(WebCore::MediaStream::pageMutedStateDidChange):
- Modules/mediastream/MediaStream.h:
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::mediaCanStart): Deal with API change.
- Modules/webaudio/AudioContext.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaCanStart): Ditto.
- html/HTMLMediaElement.h:
- page/MediaCanStartListener.h:
- page/Page.cpp:
(WebCore::Page::takeAnyMediaCanStartListener): Return the listener and document.
(WebCore::Page::setCanStartMedia): Pass the document to the listener.
- page/Page.h:
Source/WebKit2:
Do not ask for user for access to capture devices when the document does not
allow media to play, wait until playback is allowed.
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::mediaCanStart):
(WebKit::UserMediaPermissionRequestManager::grantUserMediaDevicesSandboxExtension):
- WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::mediaCanStart):
- WebProcess/Plugins/PluginView.h:
LayoutTests:
- fast/mediastream/get-user-media-background-tab-expected.txt: Added.
- fast/mediastream/get-user-media-background-tab.html: Added.
- 1:20 PM Changeset in webkit [208605] by
-
- 5 edits in trunk/Source/WebCore
RenderFlowThread's containing block cache should be invalidated before calling styleDidChange.
https://bugs.webkit.org/show_bug.cgi?id=164646
Reviewed by Simon Fraser.
We have to invalidate the containing block cache for RenderFlowThreads soon after the containing block context
changes. Invalidating it in RenderBlock::styleDidChange is too late since we might run some code in some
of the subclasses that use this stale containing block cache.
No known behaviour change.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange): This change could trigger double invalidation.
However running this code twice shouldn't impact performance greatly.
(WebCore::RenderBlock::resetFlowThreadContainingBlockAndChildInfoIncludingDescendants):
(WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants): Deleted.
- rendering/RenderBlock.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::setStyle): We don't need to call the invalidation from initializeStyle(), since
we don't yet have cache at that point.
- rendering/RenderInline.cpp:
(WebCore::RenderInline::splitInlines):
- 12:38 PM Changeset in webkit [208604] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Call RuntimeAgent.disableControlFlowProfiler when Code Coverage Profiler is turned off
https://bugs.webkit.org/show_bug.cgi?id=163407
<rdar://problem/28764230>
Reviewed by Timothy Hatcher.
Turning Type Profiler off by clicking [T] icon now disables its backend by calling RuntimeAgent.disableTypeProfiler().
- UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
- 12:16 PM Changeset in webkit [208603] by
-
- 96 edits in trunk/Source
Move Node from ExceptionCode to ExceptionOr
https://bugs.webkit.org/show_bug.cgi?id=164515
Reviewed by Sam Weinig.
Source/WebCore:
- bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::selectElementIndexSetter): Call remove instead of removeByIndex.
Was renamed now that there is no conflict.
- bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore): Use ExceptionOr.
(WebCore::JSNode::replaceChild): Ditto.
(WebCore::JSNode::removeChild): Ditto.
(WebCore::JSNode::appendChild): Ditto.
- dom/Attr.cpp:
(WebCore::Attr::Attr): Take a reference.
(WebCore::Attr::create): Ditto.
(WebCore::Attr::createTextChild): Use a Ref.
(WebCore::Attr::setPrefix): Use ExceptionOr.
(WebCore::Attr::setNodeValue): Ditto.
(WebCore::Attr::attachToElement): Take a reference.
- dom/Attr.h: Updated for above. Also made setPrefix private.
- dom/CharacterData.cpp:
(WebCore::CharacterData::setNodeValue): Use ExceptionOr.
- dom/CharacterData.h: Updated for the above.
- dom/ContainerNode.cpp:
(WebCore::collectChildrenAndRemoveFromOldParent): Use ExceptionOr.
(WebCore::checkAcceptChild): Ditto.
(WebCore::checkAcceptChildGuaranteedNodeTypes): Ditto.
(WebCore::ContainerNode::ensurePreInsertionValidity): Ditto.
(WebCore::checkPreReplacementValidity): Ditto.
(WebCore::ContainerNode::insertBefore): Ditto.
(WebCore::ContainerNode::replaceChild): Ditto.
(WebCore::ContainerNode::removeChild): Ditto.
(WebCore::ContainerNode::appendChild): Ditto.
(WebCore::ContainerNode::appendChildWithoutPreInsertionValidityCheck): Ditto.
(WebCore::ContainerNode::cloneChildNodes): Ditto.
(WebCore::ContainerNode::append): Ditto.
(WebCore::ContainerNode::prepend): Ditto.
- dom/ContainerNode.h: Updated for above changes.
- dom/Document.cpp:
(WebCore::Document::setTitle): Removed unneeded ASSERT_NO_EXCEPTION.
(WebCore::Document::setBodyOrFrameset): Removed unneeded ignored
exception code.
- dom/Element.cpp:
(WebCore::Element::setPrefix): Use ExceptionOr.
(WebCore::Element::setAttributeNode): Updated for changes to Attr.
(WebCore::Element::setAttributeNodeNS): Ditto.
(WebCore::Element::setOuterHTML): Use ExceptionOr.
(WebCore::Element::ensureAttr): Updated for changes to Attr.
(WebCore::Element::insertAdjacent): Use ExceptionOr.
- dom/Element.h: Updated for above.
- dom/Node.cpp:
(WebCore::Node::setNodeValue): Use ExceptionOr.
(WebCore::Node::insertBefore): Ditto.
(WebCore::Node::replaceChild): Ditto.
(WebCore::Node::removeChild): Ditto.
(WebCore::Node::appendChild): Ditto.
(WebCore::Node::convertNodesOrStringsIntoNode): Ditto.
(WebCore::Node::before): Ditto.
(WebCore::Node::after): Ditto.
(WebCore::Node::replaceWith): Ditto.
(WebCore::Node::remove): Ditto.
(WebCore::Node::cloneNodeForBindings): Ditto.
(WebCore::Node::setPrefix): Ditto.
(WebCore::Node::checkSetPrefix): Ditto.
(WebCore::Node::setTextContent): Ditto.
- dom/Node.h: Updated for above.
- dom/Node.idl: Use non-legacy exceptions.
- dom/Range.cpp:
(WebCore::Range::processContents): Use ExceptionOr.
(WebCore::processContentsBetweenOffsets): Ditto.
(WebCore::processNodes): Ditto.
(WebCore::processAncestorsAndTheirSiblings): Ditto.
(WebCore::Range::insertNode): Ditto.
(WebCore::Range::surroundContents): Ditto.
- dom/Text.cpp:
(WebCore::Text::splitText): Use ExceptionOr.
(WebCore::Text::replaceWholeText): Removed unneeded IGNORE_EXCEPTION.
- editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNewDefaultParagraphElementAt): Ditto.
- editing/EditorCommand.cpp:
(WebCore::executeInsertNode): Use ExceptionOr.
- editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply): Removed unneeded IGNORE_EXCEPTION.
- editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply): Ditto.
(WebCore::MergeIdenticalElementsCommand::doUnapply): Use ExceptionOr.
- editing/RemoveNodeCommand.cpp:
(WebCore::RemoveNodeCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
- editing/ReplaceNodeWithSpanCommand.cpp:
(WebCore::swapInNodePreservingAttributesAndChildren): Removed unneeded
ASSERT_NO_EXCEPTION.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeNode): Ditto.
(WebCore::ReplacementFragment::insertNodeBefore): Ditto.
(WebCore::ReplacementFragment::insertFragmentForTestRendering): Ditto.
(WebCore::ReplacementFragment::restoreAndRemoveTestRenderingNodesToFragment): Ditto.
(WebCore::ReplaceSelectionCommand::insertAsListItems): Ditto.
- editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply): Use ExceptionOr.
(WebCore::SplitElementCommand::doUnapply): Removed unneeded IGNORE_EXCEPTION.
- editing/SplitTextNodeCommand.cpp:
(WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Use ExceptionOr.
- editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply): Removed unneeded
IGNORE_EXCEPTION.
(WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::styleForSelectionStart): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
- editing/htmlediting.cpp:
(WebCore::createTabSpanElement): Ditto.
- editing/markup.cpp:
(WebCore::fillContainerFromString): Ditto.
(WebCore::createFragmentFromText): Ditto.
(WebCore::removeElementFromFragmentPreservingChildren): Ditto.
(WebCore::replaceChildrenWithFragment): Use ExceptionOr.
(WebCore::replaceChildrenWithText): Ditto.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::addFragment): Removed unneeded exception
ignoring code.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
- html/ColorInputType.cpp:
(WebCore::ColorInputType::createShadowSubtree): Removed unneeded
ASSERT_NO_EXCEPTION.
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::appendEntry): Removed unneeded
IGNORE_EXCEPTION.
(WebCore::FTPDirectoryDocumentParser::createTDForFilename): Ditto.
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate): Ditto.
(WebCore::FTPDirectoryDocumentParser::createBasicDocument): Ditto.
- html/FileInputType.cpp:
(WebCore::FileInputType::createShadowSubtree): Ditto.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setText): Removed unneeded ASSERT_NO_EXCEPTION.
- html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot): Ditto.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::textToFragment): Use ExceptionOr.
(WebCore::HTMLElement::setOuterText): Ditto.
- html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::createMediaControls): Ditto.
- html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot): Ditto.
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.
(WebCore::HTMLOptionElement::setText): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
- html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::remove): Call remove, not removeByIndex,
since we were able to change the name.
- html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::setTextContentInternal): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
- html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::didAddUserAgentShadowRoot): Ditto.
- html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::setText): Ditto.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add): Use ExceptionOr.
(WebCore::HTMLSelectElement::remove): Renamed from removeByIndex since
there is no conflict with remove any more.
(WebCore::HTMLSelectElement::setOption): Call remove.
- html/HTMLSelectElement.h: Updated for above.
- html/HTMLSelectElement.idl: Got rid of ImplementedAs=removeByIndex.
- html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::HTMLTableElement): Initialize data members in
class definition instead of here.
(WebCore::HTMLTableElement::caption): Simplified using childrenOfType.
(WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
(WebCore::HTMLTableElement::setTHead): Ditto.
(WebCore::HTMLTableElement::setTFoot): Ditto.
(WebCore::HTMLTableElement::deleteTFoot): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
(WebCore::HTMLTableElement::createTBody): Ditto.
(WebCore::HTMLTableElement::deleteCaption): Ditto.
(WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
- html/HTMLTableElement.h: Updated for above.
- html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
(WebCore::HTMLTableRowElement::deleteCell): Ditto.
- html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::insertRow): Ditto.
(WebCore::HTMLTableSectionElement::deleteRow): Ditto.
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
(WebCore::HTMLTextAreaElement::setDefaultValue): Ditto.
(WebCore::HTMLTextAreaElement::updatePlaceholderText): Ditto.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
- html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::setText): Ditto.
- html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure): Ditto.
(WebCore::MediaDocument::replaceMediaElementTimerFired): Ditto.
- html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure): Ditto.
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createShadowSubtree): Ditto.
- html/SearchInputType.cpp:
(WebCore::SearchInputType::createShadowSubtree): Ditto.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::createShadowSubtree): Ditto.
(WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
(WebCore::TextFieldInputType::createContainer): Ditto.
(WebCore::TextFieldInputType::createAutoFillButton): Ditto.
- html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer): Ditto.
(WebCore::ValidationMessage::buildBubbleTree): Ditto.
(WebCore::ValidationMessage::deleteBubbleTree): Ditto.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Ditto.
- html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay): Ditto.
- html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::MediaControlsApple): Initialize data members
in class definition instead of here.
(WebCore::MediaControlsApple::tryCreateControls): Use ExceptionOr.
- html/shadow/MediaControlsApple.h: Updated for above.
- html/track/VTTCue.cpp:
(WebCore::VTTCue::copyWebVTTNodeToDOMTree): Removed unneeded ASSERT_NO_EXCEPTION
and IGNORE_EXCEPTION.
(WebCore::VTTCue::getDisplayTree): Ditto.
- html/track/VTTRegion.cpp:
(WebCore::VTTRegion::appendTextTrackCueBox): Ditto.
- inspector/DOMEditor.cpp: Use ExceptionOr in action classes.
(WebCore::DOMEditor::DOMEditor): Take a reference.
(WebCore::DOMEditor::insertBefore): Use ExceptionOr.
(WebCore::DOMEditor::removeChild): Ditto.
(WebCore::DOMEditor::setAttribute): Ditto.
(WebCore::DOMEditor::removeAttribute): Ditto.
(WebCore::DOMEditor::setOuterHTML): Ditto.
(WebCore::DOMEditor::replaceWholeText): Ditto.
(WebCore::DOMEditor::replaceChild): Ditto.
(WebCore::DOMEditor::setNodeValue): Ditto.
(WebCore::populateErrorString): Ditto.
- inspector/DOMEditor.h: Updated for above changes.
- inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument): Updated to use references,
to use ExceptionOr, and to use a struct without a constructor for Digest.
(WebCore::DOMPatchSupport::DOMPatchSupport): Ditto.
(WebCore::DOMPatchSupport::patchNode): Ditto.
(WebCore::DOMPatchSupport::innerPatchNode): Ditto.
(WebCore::DOMPatchSupport::diff): Ditto.
(WebCore::DOMPatchSupport::innerPatchChildren): Ditto.
(WebCore::DOMPatchSupport::createDigest): Ditto.
(WebCore::DOMPatchSupport::insertBeforeAndMarkAsUsed): Ditto.
(WebCore::DOMPatchSupport::removeChildAndMoveToNew): Ditto.
(WebCore::DOMPatchSupport::markNodeAsUsed): Ditto.
- inspector/DOMPatchSupport.h: Updated for above.
- inspector/InspectorCSSAgent.cpp: Use ExceptionOr in the action classes.
(WebCore::InspectorCSSAgent::getStyleSheetText): Use ExceptionOr.
(WebCore::InspectorCSSAgent::setStyleSheetText): Ditto.
(WebCore::InspectorCSSAgent::setStyleText): Ditto.
(WebCore::InspectorCSSAgent::setRuleSelector): Ditto.
(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument): Ditto.
(WebCore::InspectorCSSAgent::addRule): Ditto.
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend): Ditto.
(WebCore::InspectorDOMAgent::setAttributeValue): Ditto.
(WebCore::InspectorDOMAgent::setAttributesAsText): Ditto.
(WebCore::InspectorDOMAgent::removeAttribute): Ditto.
(WebCore::InspectorDOMAgent::setOuterHTML): Ditto.
(WebCore::InspectorDOMAgent::setNodeValue): Ditto.
(WebCore::InspectorDOMAgent::undo): Ditto.
(WebCore::InspectorDOMAgent::redo): Ditto.
- inspector/InspectorHistory.cpp:
(WebCore::InspectorHistory::Action::Action): Moved to header.
(WebCore::InspectorHistory::Action::~Action): Ditto.
(WebCore::InspectorHistory::Action::toString): Ditto.
(WebCore::InspectorHistory::Action::isUndoableStateMark): Ditto.
(WebCore::InspectorHistory::Action::mergeId): Ditto.
(WebCore::InspectorHistory::Action::merge): Ditto.
(WebCore::InspectorHistory::InspectorHistory): Deleted.
(WebCore::InspectorHistory::~InspectorHistory): Deleted.
(WebCore::InspectorHistory::perform): Updated exception handling.
(WebCore::InspectorHistory::markUndoableState): Ditto.
(WebCore::InspectorHistory::undo): Ditto.
(WebCore::InspectorHistory::redo): Ditto.
- inspector/InspectorHistory.h: Updated for above.
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setDocumentContent): Use reference.
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::text): Use ExceptionOr and renamed from
getText since this now has a return value.
(WebCore::InspectorStyle::populateAllProperties): Updated for above.
(WebCore::InspectorStyle::setText): Use ExceptionOr.
(WebCore::InspectorStyleSheet::setText): Ditto.
(WebCore::InspectorStyleSheet::ruleSelector): Ditto.
(WebCore::InspectorStyleSheet::setRuleSelector): Ditto.
(WebCore::InspectorStyleSheet::addRule): Ditto.
(WebCore::InspectorStyleSheet::deleteRule): Ditto.
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet): Ditto.
(WebCore::InspectorStyleSheet::buildObjectForStyle): Ditto.
(WebCore::InspectorStyleSheet::setStyleText): Ditto.
(WebCore::InspectorStyleSheet::text): Use ExceptionOr and renamed.
(WebCore::InspectorStyleSheet::checkPageStyleSheet): Deleted.
Just wrote this code inline in each place this was called since it's
just a single null check.
(WebCore::InspectorStyleSheetForInlineStyle::text): Use ExceptionOr
and renamed.
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Ditto.
(WebCore::InspectorStyle::getText): Deleted.
- inspector/InspectorStyleSheet.h: Updated for above changes.
- page/DragController.cpp:
(WebCore::documentFragmentFromDragData): Removed unneeded
ASSERT_NO_EXCEPTION and IGNORE_EXCEPTION.
- page/ios/FrameIOS.mm:
(WebCore::Frame::initWithSimpleHTMLDocument): Ditto.
- svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::updateReferencedText): Ditto.
(WebCore::SVGTRefElement::detachTarget): Ditto.
- xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView): Ditto.
Source/WebKit/mac:
- DOM/DOMHTMLSelectElement.mm:
(-[DOMHTMLSelectElement remove:]): Call remove instead of removeByIndex
now that it was renamed.
- DOM/DOMNode.mm:
(-[DOMNode setNodeValue:]): Updated exception handling.
(-[DOMNode setPrefix:]): Ditto.
(-[DOMNode setTextContent:]): Ditto.
(-[DOMNode insertBefore:refChild:]): Ditto.
(-[DOMNode replaceChild:oldChild:]): Ditto.
(-[DOMNode removeChild:]): Ditto.
(-[DOMNode appendChild:]): Ditto.
(-[DOMNode cloneNode:]): Ditto.
Source/WebKit/win:
- DOMCoreClasses.cpp:
(DOMNode::insertBefore): Update exception handling.
(DOMNode::removeChild): Ditto.
Source/WebKit2:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
(webkit_dom_html_select_element_remove): Updated exception handling.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp:
(webkit_dom_node_insert_before): Ditto.
(webkit_dom_node_replace_child): Ditto.
(webkit_dom_node_remove_child): Ditto.
(webkit_dom_node_append_child): Ditto.
(webkit_dom_node_clone_node_with_error): Ditto.
(webkit_dom_node_set_node_value): Ditto.
(webkit_dom_node_set_text_content): Ditto.
- WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode insertNode:before:]): Ditto.
(-[WKDOMNode appendChild:]): Ditto.
(-[WKDOMNode removeChild:]): Ditto.
- WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin): Removed unneeded ASSERT_NO_EXCEPTION.
- WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): Ditto.
- 12:12 PM Changeset in webkit [208602] by
-
- 44 edits1 copy in trunk
Rename CryptoKeyUsage to CryptoKeyUsageBitmap and CryptoKey::Usage to CryptoKeyUsage
https://bugs.webkit.org/show_bug.cgi?id=164624
<rdar://problem/29210140>
Reviewed by Brent Fulgham.
Source/WebCore:
This patch allows IDLType CryptoKeyUsage to be shared among different IDLs, i.e. CryptoKey.idl,
SubtleCrypto.idl and JsonWebKey.idl such that it can simplify the customized binding codes.
Covered by existing tests.
- CMakeLists.txt:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSCryptoKeySerializationJWK.cpp:
- bindings/js/JSCryptoKeySerializationJWK.h:
- bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::toCryptoKeyUsageBitmap):
(WebCore::cryptoKeyUsageBitmapFromJSValue):
(WebCore::toKeyData):
(WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
(WebCore::jsSubtleCryptoFunctionImportKeyPromise):
(WebCore::cryptoKeyUsageFromString): Deleted.
(WebCore::cryptoKeyUsagesFromJSValue): Deleted.
- bindings/js/JSWebKitSubtleCryptoCustom.cpp:
- bindings/js/SerializedScriptValue.cpp:
- crypto/CryptoAlgorithm.cpp:
- crypto/CryptoAlgorithm.h:
- crypto/CryptoKey.cpp:
- crypto/CryptoKey.h:
- crypto/CryptoKey.idl:
- crypto/CryptoKeySerialization.h:
- crypto/CryptoKeyUsage.h:
- crypto/CryptoKeyUsage.idl: Added.
- crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:
- crypto/JsonWebKey.h:
- crypto/JsonWebKey.idl:
- crypto/SubtleCrypto.idl:
- crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
- crypto/algorithms/CryptoAlgorithmAES_CBC.h:
- crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
- crypto/algorithms/CryptoAlgorithmAES_KW.h:
- crypto/algorithms/CryptoAlgorithmHMAC.cpp:
- crypto/algorithms/CryptoAlgorithmHMAC.h:
- crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
- crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
- crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
- crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
- crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
- crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
- crypto/keys/CryptoKeyAES.cpp:
- crypto/keys/CryptoKeyAES.h:
- crypto/keys/CryptoKeyHMAC.cpp:
- crypto/keys/CryptoKeyHMAC.h:
- crypto/keys/CryptoKeyRSA.cpp:
- crypto/keys/CryptoKeyRSA.h:
- crypto/keys/CryptoKeySerializationRaw.cpp:
- crypto/keys/CryptoKeySerializationRaw.h:
- crypto/mac/CryptoKeyRSAMac.cpp:
LayoutTests:
- crypto/subtle/generate-key-malformed-parameters-expected.txt:
- crypto/subtle/import-key-malformed-parameters-expected.txt:
- 11:46 AM Changeset in webkit [208601] by
-
- 3 edits in trunk/Tools
Build all Mac API tests
https://bugs.webkit.org/show_bug.cgi?id=164633
Patch by Alex Christensen <achristensen@webkit.org> on 2016-11-11
Reviewed by Gyuyoung Kim.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/NavigatorLanguage.mm:
- 11:11 AM Changeset in webkit [208600] by
-
- 4 edits in trunk
Allow mutable lambdas in HashMap::ensure
https://bugs.webkit.org/show_bug.cgi?id=164642
Reviewed by Sam Weinig.
Source/WTF:
- wtf/HashMap.h:
(WTF::HashMapEnsureTranslator::translate):
(WTF::X>::removeIf):
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- 11:09 AM Changeset in webkit [208599] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Fix basic shape parsing
https://bugs.webkit.org/show_bug.cgi?id=164645
Reviewed by Dean Jackson.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShape):
- 11:02 AM Changeset in webkit [208598] by
-
- 1 edit1 add in trunk/LayoutTests
Add ios-simulator baseline for compositing/tiling/visiblerect-accumulated-offset.html.
Unreviewed test gardening.
- platform/ios-simulator/compositing/tiling/visiblerect-accumulated-offset-expected.txt: Added.
- 10:56 AM Changeset in webkit [208597] by
-
- 14 edits in trunk/Source/WebCore
RenderFlowThread::removeLineRegionInfo shouldn't call HashMap::contains before HashMap::remove
https://bugs.webkit.org/show_bug.cgi?id=164639
Reviewed by Simon Fraser.
Also instead of asserting that the incoming renderer is not nullptr, we could just pass a reference in.
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::invalidateFlowThreadContainingBlockIncludingDescendants):
(WebCore::canComputeRegionRangeForBox):
(WebCore::RenderBlock::computeRegionRangeForBoxChild):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::hasRegionRangeInFlowThread):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::removeFromRenderFlowThreadIncludingDescendants):
- rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::removeFlowChildInfo):
(WebCore::RenderFlowThread::validateRegions):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
(WebCore::RenderFlowThread::removeLineRegionInfo):
(WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
(WebCore::RenderFlowThread::setRegionRangeForBox):
(WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
(WebCore::RenderFlowThread::computedRegionRangeForBox):
(WebCore::RenderFlowThread::checkLinesConsistency):
- rendering/RenderFlowThread.h:
- rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
- rendering/RenderMultiColumnFlowThread.h:
- rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::clearObjectStyleInRegion):
- rendering/RenderNamedFlowFragment.h:
- rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
(WebCore::RenderNamedFlowThread::removeFlowChildInfo):
- rendering/RenderNamedFlowThread.h:
- rendering/RenderRegion.cpp:
(WebCore::RenderRegion::removeRenderBoxRegionInfo):
- rendering/RenderRegion.h:
- 10:54 AM Changeset in webkit [208596] by
-
- 5 edits in trunk/Source
[Cocoa] Support wide gamut for Drag Image UI
https://bugs.webkit.org/show_bug.cgi?id=164490
Patch by Megan Gardner <Megan Gardner> on 2016-11-11
Reviewed by Tim Horton.
Source/WebCore:
Fixed an error in the support define for wide gamut on Mac.
The testing infrastructure to test this does not exist, and will be landing in another patch.
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::extendedSRGBColorSpaceRef):
Source/WebKit2:
Fixed an error in the gating for the new wide gamut support in ShareableBitmap.
We should always respect the flags straight out, and not make decisions later, it can lead to mismatched data and data storage.
Added support for wide gamut in createCGImage.
- Shared/cg/ShareableBitmapCG.cpp:
(WebKit::bitmapInfo):
(WebKit::colorSpace):
(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::createCGImage):
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
(WebKit::WebDragClient::startDrag):
- 10:54 AM Changeset in webkit [208595] by
-
- 8 edits in trunk/Source
Get touch bar code building for open source builds
https://bugs.webkit.org/show_bug.cgi?id=164610
Reviewed by Wenson Hsieh.
Source/WebCore:
- config.h:
Source/WebKit/mac:
- WebKitPrefix.h:
Source/WebKit2:
- config.h:
Source/WTF:
- wtf/Platform.h:
- 10:52 AM Changeset in webkit [208594] by
-
- 3 edits in trunk/Source/WebCore
[CSS Parser] Fix SVG markers and colors
https://bugs.webkit.org/show_bug.cgi?id=164640
Reviewed by Dean Jackson.
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertSVGColor):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseShorthand):
- 10:38 AM Changeset in webkit [208593] by
-
- 8 edits2 moves3 adds in trunk
Composition state should be cleared when changing focus to a non-editable element
https://bugs.webkit.org/show_bug.cgi?id=164595
<rdar://problem/26412551>
Reviewed by Enrica Casucci.
Source/WebCore:
When canceling or confirming a composition, always ensure that the composition node and composition underlines
being tracked are reset, even when there is no current selection. This prevents us from getting into a bad state
where focus has already changed from an element with a pending composition to a different element and the
composition is canceled, but the Editor still maintains its composition node.
Test: editing/input/focus-change-with-marked-text.html
- editing/Editor.cpp:
(WebCore::Editor::setComposition):
Tools:
Adds support for window.textInputController in DumpRenderTree on iOS. So far, only the methods needed for the
new layout test (editing/focus-change-with-marked-text.html) are supported. These are insertText, setMarkedText,
and markedRange.
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
- DumpRenderTree/TextInputController.h: Renamed from Tools/DumpRenderTree/mac/TextInputController.h.
Remove the PLATFORM(MAC) guard for defining the TextInputController. Also, move the TextInputController header
out of the /mac platform directory.
- DumpRenderTree/ios/TextInputControllerIOS.m: Added.
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController initWithWebView:]):
(-[TextInputController markedRange]):
(-[TextInputController insertText:]):
(-[TextInputController setMarkedText:selectedFrom:length:]):
Introduces TextInputControllerIOS.m, which contains an iOS implementation of TextInputController. Only a subset
of the methods available on the Mac version will be available on iOS for now (see above).
- DumpRenderTree/mac/FrameLoadDelegate.mm:
Remove the PLATFORM(MAC) guard for initializing the TextInputController and binding it to the window object.
(-[FrameLoadDelegate didClearWindowObjectInStandardWorldForFrame:]):
- DumpRenderTree/mac/TextInputControllerMac.m: Renamed from Tools/DumpRenderTree/mac/TextInputController.m.
(-[WebHTMLView interpretKeyEvents:]):
(-[WebNSRange initWithNSRange:]):
(-[WebNSRange location]):
(-[WebNSRange length]):
(+[WebNSRange isSelectorExcludedFromWebScript:]):
(+[NSMutableAttributedString isSelectorExcludedFromWebScript:]):
(+[NSMutableAttributedString webScriptNameForSelector:]):
(-[NSMutableAttributedString getLength]):
(-[NSMutableAttributedString ranges]):
(-[NSMutableAttributedString attributeNamesAtIndex:]):
(-[NSMutableAttributedString valueOfAttribute:atIndex:]):
(-[NSMutableAttributedString addAttribute:value:]):
(-[NSMutableAttributedString addAttribute:value:from:length:]):
(-[NSMutableAttributedString addColorAttribute:red:green:blue:alpha:]):
(-[NSMutableAttributedString addColorAttribute:red:green:blue:alpha:from:length:]):
(-[NSMutableAttributedString addFontAttribute:fontName:size:]):
(-[NSMutableAttributedString addFontAttribute:fontName:size:from:length:]):
(+[TextInputController isSelectorExcludedFromWebScript:]):
(+[TextInputController webScriptNameForSelector:]):
(-[TextInputController initWithWebView:]):
(-[TextInputController dealloc]):
(-[TextInputController textInput]):
(-[TextInputController insertText:]):
(-[TextInputController doCommand:]):
(-[TextInputController setMarkedText:selectedFrom:length:]):
(-[TextInputController unmarkText]):
(-[TextInputController hasMarkedText]):
(-[TextInputController conversationIdentifier]):
(-[TextInputController substringFrom:length:]):
(-[TextInputController attributedSubstringFrom:length:]):
(-[TextInputController legacyAttributedString:]):
(-[TextInputController markedRange]):
(-[TextInputController selectedRange]):
(-[TextInputController firstRectForCharactersFrom:length:]):
(-[TextInputController characterIndexForPointX:Y:]):
(-[TextInputController validAttributesForMarkedText]):
(-[TextInputController attributedStringWithString:]):
(-[TextInputController stringWithUndoGroupingInsertion:]):
(-[TextInputController dictatedStringWithPrimaryString:alternative:alternativeOffset:alternativeLength:]):
(-[TextInputController setInputMethodHandler:]):
(-[TextInputController interpretKeyEvents:withSender:]):
Fixes miscellaneous style issues.
LayoutTests:
Adds a new layout test to ensure that when changing focus from an element with pending composition text to
another element, the composition is committed and there should not still be a pending composition.
- editing/input/focus-change-with-marked-text-expected.txt: Added.
- editing/input/focus-change-with-marked-text.html: Added.
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 10:21 AM Changeset in webkit [208592] by
-
- 53 edits12 deletes in trunk
Unreviewed, rolling out r208584.
Seems to have regressed Speedometer by 1% on Mac
Reverted changeset:
"We should have a more concise way of determining when we're
varargs calling a function using rest parameters"
https://bugs.webkit.org/show_bug.cgi?id=164258
http://trac.webkit.org/changeset/208584
- 10:20 AM Changeset in webkit [208591] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Settings tab: make the header smaller to fit more content
https://bugs.webkit.org/show_bug.cgi?id=164613
<rdar://problem/29206007>
Reviewed by Timothy Hatcher.
- UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .header):
Use hv units for margin. 1vh = 1% of viewport height. When Web Inspector window is taller, the margin is larger.
(.content-view.settings > .setting-container):
Convert padding to margin to make spacing between the header and the first section better.
- 9:31 AM Changeset in webkit [208590] by
-
- 2 edits in trunk/Source/WebCore
[CSS Parser] Support -webkit-svg-shadow
https://bugs.webkit.org/show_bug.cgi?id=164637
Reviewed by Zalan Bujtas.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
- 9:18 AM Changeset in webkit [208589] by
-
- 5 edits1 move in trunk/Source/WebKit2
Remove unused FontService from sandbox profile
https://bugs.webkit.org/show_bug.cgi?id=164625
<rdar://problem/26899976>
Reviewed by Alex Christensen.
Part of some general sandbox profile gardening.
Convert the Plugin process sandbox into
- Configurations/WebKit.xcconfig: Add exclude for com.apple.WebKit.plugin-common.sb.in.
- DerivedSources.make: Update to generate com.apple.WebKit.plugin-common.sb from .in file
- PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: Copied from Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb.
- Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Removed.
- WebKit2.xcodeproj/project.pbxproj: Update for new .in file.
- WebProcess/com.apple.WebProcess.sb.in: Remove com.apple.FontServer
from macOS Sierra and newer.
- 8:50 AM Changeset in webkit [208588] by
-
- 29 edits4 deletes in trunk
Unreviewed, rolling out r208117 and r208160.
Regressed Speedometer by >1.5%
Reverted changesets:
"We should have a way of profiling when a get_by_id is pure
and to emit a PureGetById in the DFG/FTL"
https://bugs.webkit.org/show_bug.cgi?id=163305
http://trac.webkit.org/changeset/208117
"Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing
out"
https://bugs.webkit.org/show_bug.cgi?id=164227
http://trac.webkit.org/changeset/208160
- 5:09 AM Changeset in webkit [208587] by
-
- 3 edits in trunk/Source/WebCore
[WebRTC][OpenWebRTC] Implement device permissions handling solution for owr backend in the UI process
https://bugs.webkit.org/show_bug.cgi?id=164010
Patch by Alejandro G. Castro <alex@igalia.com> on 2016-11-11
Reviewed by Philippe Normand.
Move the capture of the sources for the OWR backend to the
WebProcess. In the UI we continue checking if the user allows
access to the audio and video capture. When device handling is
added in the future we will need some persistent ID and API to
pass from the UI process to the Web process.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp:
(WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
Add the proper audio and video sources to allow the UI message to
be properly rendered. We are adding the specific devices, even
though the dialog just asks for general audio and video. There was
already a FIXME about improving this.
(WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): We are
capturing the devices here when the allowed message arrived from
the UI process. We store the completion handler to use it later
when the aync owr API finishes capture devices process.
(WebCore::RealtimeMediaSourceCenterOwr::mediaSourcesAvailable): We
now call the completion handler in this callback called when the
owr library finishes the capture of the devices. Now this happens
in the WebProcess for OWR port.
- platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h:
Add an attribute to store the completion handler.
- 3:08 AM Changeset in webkit [208586] by
-
- 6 edits4 adds in trunk
[css-grid] ASSERTION FAILED: !m_gridIsDirty in WebCore::RenderGrid::gridRowCount
https://bugs.webkit.org/show_bug.cgi?id=163450
Reviewed by Darin Adler.
Source/WebCore:
The issue is that in the test case a simplifiedLayout() is performed.
So in RenderGrid::layoutBlock() we early return and the grid is not populated,
so the m_gridIsDirty flag is not cleared when we try to check the size of the grid
in RenderGrid::layoutPositionedObject().
We should avoid to do a simplified layout if we have to layout
some positioned grid items and the grid is dirty.
The problem was not only the ASSERT, but the current behavior was wrong too.
As we didn't do a proper layout of the grid container, the positioned item
won't be placed on the expected position. Added tests verifying this.
Tests: fast/css-grid-layout/grid-positioned-item-dynamic-change.html
fast/css-grid-layout/grid-simplified-layout-positioned.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::canPerformSimplifiedLayout): Check if we can perform or not
a simplified layout.
(WebCore::RenderBlock::simplifiedLayout): Extract initial check
into canPerformSimplifiedLayout().
- rendering/RenderBlock.h: Add new header for canPerformSimplifiedLayout().
- rendering/RenderGrid.cpp: Implement our own version of canPerformSimplifiedLayout()
to verify that the grid is not dirty if we have to layout some positioned items.
(WebCore::RenderGrid::canPerformSimplifiedLayout):
- rendering/RenderGrid.h: Add canPerformSimplifiedLayout() header.
LayoutTests:
The tests shouldn't crash in debug to verify that the bug is fixed.
On top of that the positioned grid items should appear in the right position too.
- fast/css-grid-layout/grid-positioned-item-dynamic-change-expected.html: Added.
- fast/css-grid-layout/grid-positioned-item-dynamic-change.html: Added.
- fast/css-grid-layout/grid-simplified-layout-positioned-expected.html: Added.
- fast/css-grid-layout/grid-simplified-layout-positioned.html: Added.
- 1:48 AM Changeset in webkit [208585] by
-
- 5 edits8 adds in trunk
[Modern Media Controls] Media Controller: media tracks control support
https://bugs.webkit.org/show_bug.cgi?id=164618
<rdar://problem/27989483>
Reviewed by Dean Jackson.
We introduce the TracksSupport class to only enable the media tracks button
in the media controls when text tracks and/or multiple audio tracks are available.
Tests: media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html
media/modern-media-controls/tracks-support/tracks-support-no-tracks.html
media/modern-media-controls/tracks-support/tracks-support-text-tracks.html
- Modules/modern-media-controls/js-files:
- Modules/modern-media-controls/media/media-controller.js:
(MediaController.prototype._updateControlsIfNeeded):
- Modules/modern-media-controls/media/tracks-support.js: Added.
(TracksSupport):
(TracksSupport.prototype.destroy):
(TracksSupport.prototype.get control):
(TracksSupport.prototype.get mediaEvents):
(TracksSupport.prototype.buttonWasClicked):
(TracksSupport.prototype.syncControl):
- WebCore.xcodeproj/project.pbxproj:
- 12:33 AM Changeset in webkit [208584] by
-
- 53 edits4 copies8 adds in trunk
We should have a more concise way of determining when we're varargs calling a function using rest parameters
https://bugs.webkit.org/show_bug.cgi?id=164258
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/call-using-spread.js: Added.
(bar):
(foo):
- microbenchmarks/spread-large-array.js: Added.
(foo):
(arrays.push):
- microbenchmarks/spread-small-array.js: Added.
(foo):
- stress/spread-array-iterator-watchpoint-2.js: Added.
(foo):
(arrayIterator.next):
- stress/spread-array-iterator-watchpoint.js: Added.
(foo):
(Array.prototype.Symbol.iterator):
- stress/spread-non-array.js: Added.
(assert):
(foo):
(let.customIterator.Symbol.iterator):
(bar):
Source/JavaScriptCore:
This patch adds two new bytecodes and DFG nodes for the following code patterns:
`
foo(a, b, ...c)
let x = [a, b, ...c];
`
To do this, I've introduced two new bytecode operations (and their
corresponding DFG nodes):
op_spread and op_new_array_with_spread.
op_spread takes a single input and performs the ES6 iteration protocol on it.
It returns the result of doing the spread inside a new class I've
made called JSFixedArray. JSFixedArray is a cell with a single 'size'
field and a buffer of values allocated inline in the cell. Abstracting
the protocol into a single node is good because it will make IR analysis
in the future much simpler. For now, it's also good because it allows
us to create fast paths for array iteration (which is quite common).
This fast path allows us to emit really good code for array iteration
inside the DFG/FTL.
op_new_array_with_spread is a variable argument bytecode that also
has a bit vector associated with it. The bit vector indicates if
any particular argument is to be spread or not. Arguments that
are spread are known to be JSFixedArray because we must emit an
op_spread before op_new_array_with_spread consumes the value.
For example, for this array:
[a, b, ...c, d, ...e]
we will have this bit vector:
[0, 0, 1, 0, 1]
The reason I've chosen this IR is that it will make eliminating
a rest allocation for this type of code much easier:
`
function foo(...args) {
return bar(a, b, ...args);
}
`
It will be easier to analyze the IR now that the operations
will be described at a high level.
This patch is an ~8% speedup on ES6SampleBench on my MBP.
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/IteratorHelpers.js: Added.
(performIteration):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::generateConditionForSelfEquivalence):
- bytecode/ObjectPropertyConditionSet.h:
- bytecode/TrackedReferences.cpp:
(JSC::TrackedReferences::check):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::bitVectors):
(JSC::UnlinkedCodeBlock::bitVector):
(JSC::UnlinkedCodeBlock::addBitVector):
(JSC::UnlinkedCodeBlock::shrinkToFit):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewArrayWithSpread):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::ArrayNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::watchHavingABadTime):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::isWatchingArrayIteratorProtocolWatchpoint):
- dfg/DFGNode.h:
(JSC::DFG::Node::bitVector):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStructureRegistrationPhase.cpp:
(JSC::DFG::StructureRegistrationPhase::run):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedCell):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitAllocateVariableSizedCell):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_array_with_spread):
(JSC::JIT::emit_op_spread):
- jit/JITOperations.h:
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LLIntSlowPaths.cpp:
- llint/LowLevelInterpreter.asm:
- runtime/ArrayIteratorAdaptiveWatchpoint.cpp: Added.
(JSC::ArrayIteratorAdaptiveWatchpoint::ArrayIteratorAdaptiveWatchpoint):
(JSC::ArrayIteratorAdaptiveWatchpoint::handleFire):
- runtime/ArrayIteratorAdaptiveWatchpoint.h: Added.
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/IteratorOperations.h:
(JSC::forEachInIterable):
- runtime/JSCInlines.h:
- runtime/JSFixedArray.cpp: Added.
(JSC::JSFixedArray::visitChildren):
- runtime/JSFixedArray.h: Added.
(JSC::JSFixedArray::createStructure):
(JSC::JSFixedArray::createFromArray):
(JSC::JSFixedArray::get):
(JSC::JSFixedArray::buffer):
(JSC::JSFixedArray::size):
(JSC::JSFixedArray::offsetOfSize):
(JSC::JSFixedArray::offsetOfData):
(JSC::JSFixedArray::create):
(JSC::JSFixedArray::JSFixedArray):
(JSC::JSFixedArray::allocationSize):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::objectPrototypeIsSane): Deleted.
(JSC::JSGlobalObject::arrayPrototypeChainIsSane): Deleted.
(JSC::JSGlobalObject::stringPrototypeChainIsSane): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::arrayIteratorProtocolWatchpoint):
(JSC::JSGlobalObject::iteratorProtocolFunction):
- runtime/JSGlobalObjectInlines.h: Added.
(JSC::JSGlobalObject::objectPrototypeIsSane):
(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):
(JSC::JSGlobalObject::isArrayIteratorProtocolFastAndNonObservable):
- runtime/JSType.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 12:08 AM Changeset in webkit [208583] by
-
- 2 edits5 deletes in trunk/Tools
[GTK][JHbuild] bump libnice version in openwebrtc.modules
https://bugs.webkit.org/show_bug.cgi?id=164586
Reviewed by Michael Catanzaro.
Update to a recent libnice git snapshot and remove patches already
upstream or not applying anymore. The patches not upstream yet
will be reported in Phabricator.
- gtk/openwebrtc.modules:
- gtk/patches/libnice-0001-agent-Remove-unnecessary-NULL-check.patch: Removed.
- gtk/patches/libnice-0002-Do-not-update-a-remote-candidate-s-type.patch: Removed.
- gtk/patches/libnice-0002-TURN-handle-437-Allocation-Mismatch-responses.patch: Removed.
- gtk/patches/libnice-0003-Do-not-compare-scope-for-IPv6-address-when-scope-is-.patch: Removed.
- gtk/patches/libnice-0004-Removing-no-op-assignment.patch: Removed.