Timeline
Aug 26, 2018:
- 11:57 PM Changeset in webkit [235353] by
-
- 2 edits1221 adds in trunk/LayoutTests
Unreviewed WPE gardening. Enabling more tests under the fast/ directory.
- platform/wpe/TestExpectations:
- platform/wpe/fast/backgrounds: Added 28 baselines.
- platform/wpe/fast/block: Added 267 baselines.
- platform/wpe/fast/body-propagation: Added 65 baselines.
- platform/wpe/fast/borders: Added 69 baselines.
- platform/wpe/fast/css: Added 193 baselines.
- platform/wpe/fast/css3-text: Added 2 baselines.
- platform/wpe/fast/frames: Added 27 baselines.
- platform/wpe/fast/hidpi: Added 20 baselines.
- platform/wpe/fast/html: Added 64 baselines.
- platform/wpe/fast/images: Added 14 baselines.
- platform/wpe/fast/layers: Added 12 baselines.
- platform/wpe/fast/multicol: Added 98 baselines.
- platform/wpe/fast/overflow: Added 43 baselines.
- platform/wpe/fast/reflections: Added 9 baselines.
- platform/wpe/fast/selectors: Added 101 baselines.
- platform/wpe/fast/sub-pixel: Added 6 baselines.
- platform/wpe/fast/table: Added 162 baselines.
- platform/wpe/fast/visual-viewport: Added 1 baseline.
- 10:01 PM Changeset in webkit [235352] by
-
- 6 edits2 moves in trunk/Source/WebCore
[LFC][Floating] FloatBox -> FloatAvoider
https://bugs.webkit.org/show_bug.cgi?id=188941
Reviewed by Antti Koivisto.
This is in preparation for the float avoidance feature where formatting context root boxes avoid existing floats.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/displaytree/DisplayBox.h:
- layout/floats/FloatAvoider.cpp: Renamed from Source/WebCore/layout/floats/FloatBox.cpp.
(WebCore::Layout::FloatAvoider::FloatAvoider):
(WebCore::Layout::FloatAvoider::initializePosition):
(WebCore::Layout::FloatAvoider::isLeftAligned const):
(WebCore::Layout::FloatAvoider::setLeft):
(WebCore::Layout::FloatAvoider::setTopLeft):
(WebCore::Layout::FloatAvoider::resetVertically):
(WebCore::Layout::FloatAvoider::resetHorizontally):
(WebCore::Layout::FloatAvoider::topLeftInContainingBlock const):
- layout/floats/FloatAvoider.h: Renamed from Source/WebCore/layout/floats/FloatBox.h.
(WebCore::Layout::FloatAvoider::top const):
(WebCore::Layout::FloatAvoider::left const):
(WebCore::Layout::FloatAvoider::marginTop const):
(WebCore::Layout::FloatAvoider::marginLeft const):
(WebCore::Layout::FloatAvoider::marginBottom const):
(WebCore::Layout::FloatAvoider::marginRight const):
(WebCore::Layout::FloatAvoider::rectWithMargin const):
(WebCore::Layout::FloatAvoider::setTop):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::floatingPosition const):
- layout/floats/FloatingContext.h:
- 9:55 PM Changeset in webkit [235351] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Implement deleteCookie()
https://bugs.webkit.org/show_bug.cgi?id=188908
Reviewed by Fujii Hironori.
Support deleting cookies from the web inspector
Tested from the web inspector.
- platform/network/curl/CookieJarCurlDatabase.cpp:
(WebCore::CookieJarCurlDatabase::deleteCookie const):
- 9:03 PM Changeset in webkit [235350] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Floating] Simplify FloatingState::FloatItem class
https://bugs.webkit.org/show_bug.cgi?id=188912
Reviewed by Antti Koivisto.
Let's remove some redundant code now that FloatingState::FloatItem is not used for incoming floats anymore.
- layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
- layout/floats/FloatBox.cpp:
(WebCore::Layout::FloatBox::resetVertically):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::FloatingPair::intersects const):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::bottom const):
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::FloatItem::operator== const):
(WebCore::Layout::FloatingState::FloatItem::isLeftPositioned const):
(WebCore::Layout::FloatingState::FloatItem::rectWithMargin const):
(WebCore::Layout::FloatingState::FloatItem::bottom const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::FloatItem::inFormattingContext const):
(WebCore::Layout::FloatingState::FloatItem::layoutBox const): Deleted.
(WebCore::Layout::FloatingState::FloatItem::containingBlock const): Deleted.
(WebCore::Layout::FloatingState::FloatItem::displayBox const): Deleted.
(WebCore::Layout::FloatingState::FloatItem::containingBlockDisplayBox const): Deleted.
- 8:32 PM Changeset in webkit [235349] by
-
- 15 edits2 copies1 add in trunk
[Apple Pay] Introduce new values for -apple-pay-button-type
https://bugs.webkit.org/show_bug.cgi?id=188949
<rdar://problem/39992228>
Reviewed by Anders Carlsson.
Source/WebCore:
Added "in-store", "checkout", "book", and "subscribe" keywords for -apple-pay-button-type,
and mapped those values to their equivalent PKPaymentButtonTypes.
Tests: http/tests/ssl/applepay/ApplePayButton.html
http/tests/ssl/applepay/ApplePayButtonV4.html
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
- rendering/RenderThemeCocoa.mm:
(WebCore::toPKPaymentButtonType):
- rendering/style/RenderStyleConstants.h:
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h:
LayoutTests:
- http/tests/ssl/applepay/ApplePayButton.html: Added.
- http/tests/ssl/applepay/ApplePayButtonV4.html: Added.
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png:
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt:
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
- platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png: Added.
- platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt: Added.
- platform/mac-wk2/TestExpectations:
- 7:54 PM Changeset in webkit [235348] by
-
- 2 edits in trunk
[CMake] Remove stale comment from WebKitFeatures.cmake
https://bugs.webkit.org/show_bug.cgi?id=188918
Reviewed by Fujii Hironori.
This comment at the top of WebKitFeatures.cmake is no longer accurate because feature defaults are no longer defined in FeatureList.pm (thank goodness!)
- Source/cmake/WebKitFeatures.cmake:
- 7:48 PM Changeset in webkit [235347] by
-
- 1 edit2 moves2 adds in trunk/LayoutTests
Update test expectations for http/tests/ssl/applepay/ApplePayButton.html on macOS High Sierra.
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png: Renamed from LayoutTests/platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.png.
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt: Renamed from LayoutTests/platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.txt.
- 7:45 PM Changeset in webkit [235346] by
-
- 4 edits in trunk
Using _WKRemoteObjectInterface with a protocol that inherits from a non-NSObject protocol crashes
https://bugs.webkit.org/show_bug.cgi?id=188958
Patch by Sam Weinig <sam@webkit.org> on 2018-08-26
Reviewed by Anders Carlsson.
Source/WebKit:
- Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(initializeMethods):
Fix infinite recursion by using the passed in protocol rather
than always using the one from the initial interface.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
Update test protocol to have inheritance.
- 7:44 PM Changeset in webkit [235345] by
-
- 4 edits in trunk/Source/WebCore
Make IDBCursor::m_request a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=188938
Reviewed by Alex Christensen.
Make m_request a WeakPtr so that if m_request is destroyed, the related cursor will not use the invalid pointer.
Covered by existing tests.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continuePrimaryKey): Other continue and advance methods that are calling uncheckedIterateCursor do check for m_request.
Apply the same check for continuePrimaryKey.
(WebCore::IDBCursor::uncheckedIterateCursor):
- Modules/indexeddb/IDBCursor.h:
(WebCore::IDBCursor::setRequest):
(WebCore::IDBCursor::clearRequest):
(WebCore::IDBCursor::request):
- Modules/indexeddb/IDBRequest.h:
- 7:43 PM Changeset in webkit [235344] by
-
- 10 edits in trunk/Source/WebCore
IDBCursor does not need to be an ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=188937
Reviewed by Alex Christensen.
Remove ActiveDOMObject from IDBCursor IDL.
Update constructors and call sites accordingly.
This allows removing m_outstandingRequestCount and related code in IDBRequest.
Covered by existing tests.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::create):
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::activeDOMObjectName const): Deleted.
(WebCore::IDBCursor::canSuspendForDocumentSuspension const): Deleted.
(WebCore::IDBCursor::hasPendingActivity const): Deleted.
(WebCore::IDBCursor::decrementOutstandingRequestCount): Deleted.
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBCursor.idl:
- Modules/indexeddb/IDBCursorWithValue.cpp:
(WebCore::IDBCursorWithValue::create):
(WebCore::IDBCursorWithValue::IDBCursorWithValue):
- Modules/indexeddb/IDBCursorWithValue.h:
- Modules/indexeddb/IDBCursorWithValue.idl:
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
- Modules/indexeddb/IDBRequest.h:
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::requestOpenCursor):
- WebCore.xcodeproj/project.pbxproj:
- 7:37 PM Changeset in webkit [235343] by
-
- 38 edits1 add in trunk
[Attachment Support] Dropping and pasting images should insert inline image elements with _WKAttachments
https://bugs.webkit.org/show_bug.cgi?id=188933
<rdar://problem/43699724>
Reviewed by Darin Adler.
Source/WebCore:
Support the ability to drop and paste images as image elements, with attachment elements, only if attachment
elements are enabled. See changes below for more detail.
Tests: WKAttachmentTests.CutAndPastePastedImage
WKAttachmentTests.MovePastedImageByDragging
WKAttachmentTests.RemoveNewlinesBeforePastedImage
- editing/Editor.h:
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment):
Adjust this helper to take an Element& rather than an HTMLAttachmentElement&, and address a FIXME by writing the
document origin identifier to the pasteboard via custom pasteboard data when dragging an attachment. This allows
us to avoid creating extra image and attachment elements when dragging an image backed by an attachment within
the same document.
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::contentTypeIsSuitableForInlineImageRepresentation):
Add a helper to determine whether a content type (UTI or MIME type) should be read as an inline image.
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::WebContentReader::readFilePaths):
Teach codepaths where we currently create attachment elements to instead create image elements if the MIME type,
is something suitable for display via an inline image element; add the attachment element under the shadow root
of the image element.
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendCustomAttributes):
(WebCore::restoreAttachmentElementsInFragment):
When dragging or copying an image element, we need to make sure that any attachment element backing the image
is preserved in the pasted or dropped fragment. To do this, we use a technique similar to what was done for
r180785 and r224593 and write a temporary "webkitattachmentid" attribute to the serialized markup on copy. Upon
deserializing the markup back to a fragment, we then create an attachment element with the same identifier under
the image.
(WebCore::createFragmentFromMarkup):
- html/HTMLAttachmentElement.h:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::setAttachmentElement):
(WebCore::HTMLImageElement::attachmentElement const):
Helper methods to get and set an attachment element under an image element. Setting an image's attachment
element puts that attachment element under the shadow root of the image, and also hides the attachment element.
(WebCore::HTMLImageElement::attachmentIdentifier const):
Returns the identifier of an attachment element associated with the image element, or null.
- html/HTMLImageElement.h:
- html/HTMLImageElement.idl:
Add HTMLImageElement.webkitAttachmentIdentifier, a readonly attribute guarded by runtime-enabled attachment
element feature.
- page/DragController.cpp:
(WebCore::DragController::startDrag):
In the case of dragging an image, if that image element is backed by an attachment element, don't bother writing
the image data to the clipboard; instead, write the attachment data as a promise.
(WebCore::DragController::doImageDrag):
Plumb promised attachment information to DragController::doSystemDrag.
(WebCore::DragController::promisedAttachmentInfo):
Teach this to handle attachment elements as well as image elements that are backed by attachment elements.
- page/DragController.h:
- platform/PromisedAttachmentInfo.h:
(WebCore::PromisedAttachmentInfo::operator bool const):
A valid PromisedAttachmentInfo no longer requires a contentType to be set; instead, an attachment identifier
alone is sufficient, since an up-to-date content type can be requested in the UI process from the API attachment
object.
Source/WebKit:
Support the ability to drop and paste images as image elements, with attachment elements, only if attachment
elements are enabled. See changes below for more detail.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PromisedAttachmentInfo>::encode):
(IPC::ArgumentCoder<PromisedAttachmentInfo>::decode):
Rename "filename" to "fileName", for consistency with WKContentView and WebViewImpl.
- UIProcess/API/APIAttachment.cpp:
(API::Attachment::mimeType const):
(API::Attachment::fileName const):
- UIProcess/API/APIAttachment.h:
Push getters for MIME type, UTI, and the file name down from _WKAttachment to API::Attachment. This allows
WKContentView and WebViewImpl to ask an API::Attachment questions about its UTI and file name without
additionally creating a wrapper object.
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm: Added.
(API::mimeTypeInferredFromFileExtension):
(API::isDeclaredOrDynamicTypeIdentifier):
(API::Attachment::mimeType const):
(API::Attachment::utiType const):
(API::Attachment::fileName const):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
Add a private delegate hook to notify the UI delegate when a drop has been performed. This is used by tests to
know when a drop with file promises has been processed by the page.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _web_didPerformDragOperation:]):
- UIProcess/API/Cocoa/_WKAttachment.mm:
(-[_WKAttachmentInfo initWithFileWrapper:filePath:mimeType:utiType:]):
(-[_WKAttachmentInfo fileWrapper]):
(-[_WKAttachmentInfo contentType]):
(-[_WKAttachment info]):
(-[_WKAttachmentInfo initWithFileWrapper:filePath:contentType:]): Deleted.
(isDeclaredOrDynamicTypeIdentifier): Deleted.
(-[_WKAttachmentInfo _typeIdentifierFromPathExtension]): Deleted.
(-[_WKAttachmentInfo mimeType]): Deleted.
(-[_WKAttachmentInfo utiType]): Deleted.
Moved to APIAttachmentCocoa.mm.
- UIProcess/API/mac/WKView.mm:
(-[WKView _web_didPerformDragOperation:]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKPromisedAttachmentContext initWithIdentifier:blobURL:fileName:]):
Adjust this constructor to take each piece of data separately. This is because, in the case where our
PromisedAttachmentInfo contains an attachment identifier, we determine the UTI and file name from the associated
file wrapper.
(-[WKPromisedAttachmentContext fileName]):
(WebKit::WebViewImpl::fileNameForFilePromiseProvider):
(WebKit::WebViewImpl::didPerformDragOperation):
(WebKit::WebViewImpl::startDrag):
Determine UTI and file name from the attachment element corresponding to the attachment identifier when
dragging. This is because the attachment element in the web process shouldn't need to have type and title
attributes set when starting a drag if it already has an identifier that maps to attachment data in the UI
process. An example of this is in inline images backed by attachments, for which we don't need to bother keeping
specifying display attributes, since they are never visible.
(-[WKPromisedAttachmentContext initWithAttachmentInfo:]): Deleted.
(-[WKPromisedAttachmentContext filename]): Deleted.
- UIProcess/PageClient.h:
(WebKit::PageClient::didPerformDragOperation):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didPerformDragOperation):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
Rename DidPerformDataInteractionControllerOperation to DidPerformDragOperation, and make it cross-platform (this
was previously only sent on iOS). Add plumbing through PageClient and friends on macOS to notify the UI
delegate when a drop is handled by the web process.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didPerformDragOperation):
(WebKit::PageClientImpl::didPerformDataInteractionControllerOperation): Deleted.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didPerformDragOperation:]):
(-[WKContentView _prepareToDragPromisedAttachment:]):
Just like in WebViewImpl::startDrag, infer content type and file name from the API attachment object.
(-[WKContentView _didPerformDataInteractionControllerOperation:]): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didPerformDataInteractionControllerOperation): Deleted.
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didPerformDragOperation):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
Tools:
Rebaseline existing API tests that involve dropping or pasting image files, and additionally write some new
tests. These new tests exercise the following cases:
- Inserting and removing newlines before an inline image with an attachment element does not cause new
_WKAttachments to be created and destroyed.
- Pasting an image, cutting it, and then pasting it again propagates an attachment update to the UI
process with the original _WKAttachment.
- A pasted attachment in the document can be moved around by dragging, and doing so does not cause us to
lose a _WKAttachment.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView expectElementCount:tagName:]):
(TestWebKitAPI::TEST):
Add the new tests described above, and also adjust existing tests to check that images are dropped or pasted
as image elements, but still have associated attachment elements whose attachment identifiers (observed via
script) match that of the corresponding _WKAttachment's uniqueIdentifier in the UI process.
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator continueDragSession]):
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
Teach DragAndDropSimulator on macOS to wait until the drop has been handled by the web process before returning
execution to the caller. This ensures that tests which involve dropping promised files as attachments aren't
flaky, due to how the promised data is retrieved asynchronously when performing the drop.
(-[DragAndDropSimulator _webView:didPerformDragOperation:]):
- 6:39 PM Changeset in webkit [235342] by
-
- 6 edits in trunk
[Apple Pay] PaymentRequest.show() should reject when an unsupported ApplePayRequest version is specified
https://bugs.webkit.org/show_bug.cgi?id=188954
Reviewed by Darin Adler.
Source/WebCore:
In Apple Pay JS, calling the ApplePaySession constructor with an unsupported version results
in an exception being thrown. We need to do something similar for Payment Request.
This patch moves the logic for validating the version from ApplePaySession to a common
routine in ApplePayRequestBase that both APIs call to convert requests into a common format.
In Apple Pay JS, an exception will still be thrown when constructing an ApplePaySession. In
Payment Request, the promise returned by show() will be rejected.
Added test cases to http/tests/ssl/applepay/PaymentRequest.https.html.
- Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate):
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::create):
LayoutTests:
- http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
- http/tests/ssl/applepay/PaymentRequest.https.html:
- 6:27 PM Changeset in webkit [235341] by
-
- 1 edit9 adds in trunk/LayoutTests
[Apple Pay] Add a test for rendering Apple Pay buttons
https://bugs.webkit.org/show_bug.cgi?id=188947
Reviewed by Sam Weinig.
- http/tests/ssl/applepay/ApplePayButton.html: Added.
- platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
- platform/mac-sierra/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png: Added.
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
- 6:00 PM Changeset in webkit [235340] by
-
- 2 edits in trunk/Source/WebKitLegacy
[Xcode] Don’t make unnecessary, broken WebKitPluginAgent symlink when WK_USE_OVERRIDE_FRAMEWORKS_DIR=YES
https://bugs.webkit.org/show_bug.cgi?id=188956
<rdar://problem/43253221>
Reviewed by Darin Adler.
- WebKitLegacy.xcodeproj/project.pbxproj: Updated the Symlink WebKitPluginHost build phase.
- 5:48 PM Changeset in webkit [235339] by
-
- 1 edit in trunk/Tools/ChangeLog
Open for business.
Aug 24, 2018:
- 4:33 PM Changeset in webkit [235338] by
-
- 2 edits in trunk/Tools
Unreviewed test fix after r235249
https://bugs.webkit.org/show_bug.cgi?id=178981
- WebGPUShadingLanguageRI/Test.js:
- 4:12 PM Changeset in webkit [235337] by
-
- 4 edits in trunk
Click event from click() is not composed
https://bugs.webkit.org/show_bug.cgi?id=170211
Reviewed by Wenson Hsieh.
LayoutTests/imported/w3c:
Rebaselined the test now that all test cases pass.
- web-platform-tests/shadow-dom/event-composed-expected.txt:
Source/WebCore:
Fixed the bug. All simulated clicks should be composed regardless of whether it's trusted or not.
See: https://html.spec.whatwg.org/multipage/interaction.html#dom-click
https://html.spec.whatwg.org/multipage/webappapis.html#fire-a-synthetic-mouse-event
- dom/SimulatedClick.cpp:
- 3:54 PM Changeset in webkit [235336] by
-
- 2 edits in trunk/Source/WTF
Improve unified source generator script logging and error messages
https://bugs.webkit.org/show_bug.cgi?id=188932
Reviewed by Simon Fraser.
- Scripts/generate-unified-source-bundles.rb:
Add the ability to explain why you're getting usage() instead of just printing it.
Capitalize log messages, and improve the wording in a few places.
- 3:51 PM Changeset in webkit [235335] by
-
- 13 edits in trunk/Source/WebCore
Avoid calling setUntrusted in SimulatedMouseEvent
https://bugs.webkit.org/show_bug.cgi?id=188929
Reviewed by Simon Fraser.
Added IsTrusted flag to Event constructors instead of creating a trusted event
and making it untrusted in the constructor of SimulatedMouseEvent.
This makes EventTarget::dispatchEventForBindings the only caller of setUntrusted().
- dom/Event.cpp:
(WebCore::Event::Event):
- dom/Event.h:
- dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
- dom/MouseEvent.h:
- dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
- dom/MouseRelatedEvent.h:
- dom/SimulatedClick.cpp:
- dom/UIEvent.cpp:
(WebCore::UIEvent::UIEvent):
- dom/UIEvent.h:
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::UIEventWithKeyState):
- dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
- 2:40 PM Changeset in webkit [235334] by
-
- 3 edits2 adds in trunk
Using Touch Bar to scrub video on Youtube results in video playback freeze
https://bugs.webkit.org/show_bug.cgi?id=188926
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-seek-twice.html
When converting from a double-precision float to a MediaTime, a certain amount of precision is lost. If that
results in a round-trip betweenfloat in -> MediaTime -> float out
where in != out, we will wait forever for
the time jump observer to fire. Break the cycle by comparing m_lastSeekTime to the synchronizerTime only after
m_lastSeekTime has been normalized into a rational-time value.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
LayoutTests:
- media/media-source/media-source-seek-twice-expected.txt: Added.
- media/media-source/media-source-seek-twice.html: Added.
- 2:15 PM Changeset in webkit [235333] by
-
- 3 edits in trunk/Source/JavaScriptCore
YARR: Update UCS canonicalization tables for Unicode 11
https://bugs.webkit.org/show_bug.cgi?id=188928
Reviewed by Mark Lam.
Generated YarrCanonicalizeUCS2.cpp from YarrCanonicalizeUCS2.js.
This passes JavaScriptCore and test262 tests.
- yarr/YarrCanonicalizeUCS2.cpp:
- yarr/YarrCanonicalizeUCS2.js:
(printHeader):
- 1:36 PM Changeset in webkit [235332] by
-
- 4 edits in trunk/Source/WebKit
Remove -[WKNavigationDelegate _webView:decidePolicyForPluginLoadWithCurrentPolicy:pluginInfo:unavailabilityDescription:]
https://bugs.webkit.org/show_bug.cgi?id=188889
Reviewed by Alex Christensen.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
Remove obsolete method.
- UIProcess/Cocoa/NavigationState.h:
Remove obsolete flag.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
Remove obsolete flag.
(WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad):
Remove support for obsolete delegate method.
- 1:14 PM Changeset in webkit [235331] by
-
- 34 edits in trunk/Source
Pass in IsComposed flag to Event constructors
https://bugs.webkit.org/show_bug.cgi?id=188720
<rdar://problem/43580387>
Reviewed by Simon Fraser.
Source/WebCore:
This patch replaces the logic in Event::isComposed to decide whether an event is composed or not by
explicitly passing IsComposed flag to Event constructor. This decouples being composed from whether
an event is trusted and of a partciular event type, paving our way to make synthetic click event
dispatched by an author script composable in webkit.org/b/170211.
This patch also removes IsTrusted from the argument list of event constructors and create functions
to systematically eliminate the possibility of this patch making an event uncomposed by not setting
IsComposed flag.
No new tests since there should be no behavioral change.
- dom/ClipboardEvent.cpp:
(WebCore::ClipboardEvent::ClipboardEvent): A trusted ClipboardEvent is composed.
- dom/ClipboardEvent.h:
(WebCore::ClipboardEvent::ClipboardEvent): Removed IsTrusted from the variant which takes Init object
to make sure this refactoring is correct.
(WebCore::ClipboardEvent::create): Ditto.
- dom/CompositionEvent.cpp:
(WebCore::CompositionEvent::CompositionEvent): A trusted CompositionEvent is composed.
- dom/CompositionEvent.h:
- dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent): A trusted dblclick event is composed (this is a non-standard
event but virtually every mouse event is composed so it makes sense to make this composed).
- dom/Event.cpp:
(WebCore::Event::Event):
(WebCore::Event::create):
(WebCore::Event::composed const): Deleted. The trival implementation moved to the header file.
- dom/Event.h:
(WebCore::Event::composed const):
- dom/FocusEvent.cpp:
(WebCore::FocusEvent::FocusEvent): A trusted Focus event is composed.
- dom/FocusEvent.h:
(WebCore::FocusEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::FocusEvent::FocusEvent): Ditto.
- dom/InputEvent.cpp:
(WebCore::InputEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::InputEvent::InputEvent): A trsuted InputEvent is composed.
- dom/InputEvent.h:
- dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent): A trsuted KeyboardEvent is composed.
(WebCore::KeyboardEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
- dom/KeyboardEvent.h:
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
(WebCore::MouseEvent::MouseEvent): Explicitly take IsComposed flag from subclasses since simulated click
does not currently compose.
- dom/MouseEvent.h:
- dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent): A trusted touch event is composed.
- dom/MouseRelatedEvent.h:
- dom/Node.cpp:
(WebCore::Node::dispatchDOMActivateEvent): A trusted DOMActivateEvent event is composed.
(WebCore::Node::dispatchInputEvent): A trusted input event is composed.
- dom/SimulatedClick.cpp:
(SimulatedMouseEvent::SimulatedMouseEvent): A simulated click is composed if it's a trusted event for now.
This is the bug to be fixed in webkit.org/b/170211.
- dom/TextEvent.cpp:
(WebCore::TextEvent::TextEvent): A trsuted textInput event is composed.
- dom/UIEvent.cpp:
(WebCore::UIEvent::UIEvent): Added IsComposed as an argument to the variant which creates a trusted event,
and removed IsTrusted from Init variant for the correctness guarantee.
- dom/UIEvent.h:
(WebCore::UIEvent::create): Ditto.
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::UIEventWithKeyState): Ditto.
- dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent): A trusted Wheel event, which is a subclass of MouseEvent, is composed.
(WebCore::WheelEvent::create): Removed IsTrusted from Init variant for the correctness guarantee.
- dom/WheelEvent.h:
- editing/Editor.cpp:
(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchInputEvent):
(WebCore::dispatchClipboardEvent): Call the newly added variant which takes DataTransfer directly so that
we can remove IsTrusted from the variant which takes Init for the correctness guarantee.
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent): A trusted mouse event is composed.
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick): A trusted click event is composed regardless of
whether it's simulated or not.
Source/WebKitLegacy/ios:
- WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]): A trusted click event is composed regardless
of whether it's simulated or not.
Source/WebKitLegacy/mac:
- WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]): A trusted click event is composed regardless of
whether it's simulated or not.
- 1:12 PM Changeset in webkit [235330] by
-
- 2 edits in trunk/LayoutTests
Remove the flaky test expectation now that the test isn't flaky on bots after r235274.
- platform/wk2/TestExpectations:
- 1:07 PM Changeset in webkit [235329] by
-
- 13 edits1 copy3 adds in trunk
Add getModifierState to MouseEvent
https://bugs.webkit.org/show_bug.cgi?id=188913
<rdar://problem/43668772>
Reviewed by Simon Fraser.
Source/WebCore:
Moved getModifierState from KeyboardEvent to UIEventWithKeyState and exposed it in MouseEvent.
See https://www.w3.org/TR/2016/WD-uievents-20160804/#mouseevent
This patch also fixes the bug that initMouseEvent was not clearing AltGraph and CapsLock states,
which was preserved in the refactoring done in r235158.
Tests: fast/events/constructors/mouse-event-getModifierState.html
fast/events/dblclick-event-getModifierState.html
- dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::getModifierState const): Moved to UIEventWithKeyState.
- dom/KeyboardEvent.h:
- dom/KeyboardEvent.idl: Insert a blank line to match the spec's IDL.
- dom/MouseEvent.idl: Added getModifierState.
- dom/UIEventWithKeyState.cpp:
(WebCore::UIEventWithKeyState::modifiersFromInitializer): Moved from the header file.
(WebCore::UIEventWithKeyState::getModifierState const):
(WebCore::UIEventWithKeyState::setModifierKeys): Moved from the header file.
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::modifierKeys const):
(WebCore::UIEventWithKeyState::setModifierKeys): Deleted the variant which didn't take altGraphKey
since that variant behaves same as the one which takes altGraphKey.
LayoutTests:
Added two tests for getModifierState: one manually setting modifier key states in MouseEvent's constructor,
and another one for dblclick inheriting modifier key states from the click event.
Also improved the test coverage for KeyboardEvent's getModifierState.
- fast/events/constructors/keyboard-event-getModifierState-expected.txt:
- fast/events/constructors/keyboard-event-getModifierState.html: Added more test cases.
- fast/events/constructors/mouse-event-getModifierState-expected.txt: Added.
- fast/events/constructors/mouse-event-getModifierState.html: Added.
- fast/events/dblclick-event-getModifierState-expected.txt: Added.
- fast/events/dblclick-event-getModifierState.html: Added.
- fast/events/init-event-clears-capslock-expected.txt:
- fast/events/init-event-clears-capslock.html: Added tests for MouseEvent. Note that initMouseEvent doesn't
take altGraphKey boolean unlike initKeyboardEvent.
- platform/ios/TestExpectations: Skip the dblclick test in iOS since click event isn't supported on iOS.
- 12:43 PM Changeset in webkit [235328] by
-
- 3 edits in trunk/Source/WebKit
Add WKWebView._mainFrame SPI
https://bugs.webkit.org/show_bug.cgi?id=188925
Reviewed by Brian Burg.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mainFrame]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- 12:30 PM Changeset in webkit [235327] by
-
- 11 edits in trunk
libwebrtc PeerConnection::AddTrack sometimes fail
https://bugs.webkit.org/show_bug.cgi?id=188914
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-addTrack.https-expected.txt:
Source/WebCore:
AddTrack may fail so test the result and if not successful, make JS addTrack to throw an exception.
This makes some tests to fail now.
These tests should pass again when unified plan will be enabled.
Covered by rebased tests.
- Modules/mediastream/PeerConnectionBackend.h:
(WebCore::PeerConnectionBackend::notifyAddedTrack):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::addTransceiver):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addTrack):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::notifyAddedTrack):
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
LayoutTests:
- fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
- 12:14 PM Changeset in webkit [235326] by
-
- 3 edits in trunk/Source/WebKit
[Curl] Match the interface used in NetworkDataTask and ResourceHandle.
https://bugs.webkit.org/show_bug.cgi?id=188922
Reviewed by Alex Christensen.
The interfaces for NetworkDataTask and ResourceHandle are diverged.
It should be same for the same purpose because they do same thing.
No change in behavior.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::createCurlRequest):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::restartWithCredential):
- NetworkProcess/curl/NetworkDataTaskCurl.h:
- 12:13 PM Changeset in webkit [235325] by
-
- 2 edits in trunk/Source/WebCore
[FreeType] Do not cast through GLib types in FontCustomPlatformDataFreeType.cpp
https://bugs.webkit.org/show_bug.cgi?id=188919
Reviewed by Michael Catanzaro.
No new tests needed.
- platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData): Cast
through "void (*)(void)" instead of GCallback to avoid the warning
produced by -Wcast-function-type.
- 12:10 PM Changeset in webkit [235324] by
-
- 3 edits in trunk/Source/WebKit
Follow up to r235323
https://bugs.webkit.org/show_bug.cgi?id=188923
<rdar://problem/34657861>
- UIProcess/API/C/mac/WKInspectorPrivateMac.h:
- UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspector]):
A _WKInspector * accessor in the WKWebInspectorProxyObjCAdapter is nice, too.
- 11:41 AM Changeset in webkit [235323] by
-
- 7 edits3 adds in trunk
Introduce _WKInspector
https://bugs.webkit.org/show_bug.cgi?id=188923
<rdar://problem/34657861>
Reviewed by Brian Burg.
Source/WebKit:
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _inspector]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/_WKInspector.h: Added.
- UIProcess/API/Cocoa/_WKInspector.mm: Added.
(-[_WKInspector webView]):
(-[_WKInspector isConnected]):
(-[_WKInspector isVisible]):
(-[_WKInspector isFront]):
(-[_WKInspector isProfilingPage]):
(-[_WKInspector isElementSelectionActive]):
(-[_WKInspector connect]):
(-[_WKInspector show]):
(-[_WKInspector hide]):
(-[_WKInspector close]):
(-[_WKInspector showConsole]):
(-[_WKInspector showResources]):
(-[_WKInspector showMainResourceForFrame:]):
(-[_WKInspector attach]):
(-[_WKInspector detach]):
(-[_WKInspector showTimelines]):
(-[_WKInspector togglePageProfiling]):
(-[_WKInspector toggleElementSelection]):
(-[_WKInspector printErrorToConsole:]):
(-[_WKInspector _apiObject]):
- UIProcess/API/Cocoa/_WKInspectorInternal.h: Added.
- WebKit.xcodeproj/project.pbxproj:
Tools:
- MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController showHideWebInspector:]):
- 11:22 AM Changeset in webkit [235322] by
-
- 3 edits in trunk/Source/JavaScriptCore
YARR: JIT RegExps with non-greedy parenthesized sub patterns
https://bugs.webkit.org/show_bug.cgi?id=180876
Reviewed by Filip Pizlo.
Implemented the non-greedy nested parenthesis based on the prior greedy nested parenthesis work.
For the matching code, the greedy path was correct except that we don't try matching for the
non-greedy case. Added a jump out to the term after the parenthesis and a label to perform the
first / next match when we backtrack. The backtracking code needs to check to see if we have
tried the first match or if we can do another match.
Updated the disassembly annotations to include parenthesis capturing info, quantifier type and
count. Did other minor cleanup as well.
Fixed function name typo, added missing 't' in "setUsesPaternContextBuffer()".
Updated the text in some comments, both for this change as well as accuracy for existing code.
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::dumpCompileFailure):
(JSC::Yarr::jitCompile):
- yarr/YarrJIT.h:
(JSC::Yarr::YarrCodeBlock::setUsesPatternContextBuffer):
(JSC::Yarr::YarrCodeBlock::setUsesPaternContextBuffer): Deleted.
- 10:46 AM Changeset in webkit [235321] by
-
- 2 edits in trunk/Source/WebKit
Don't launch network process in WebCookieManagerProxy::setHTTPCookieAcceptPolicy
https://bugs.webkit.org/show_bug.cgi?id=188906
<rdar://problem/43539661>
Reviewed by Geoffrey Garen.
In WebCookieManagerProxy::setHTTPCookieAcceptPolicy, we persist the cookieAcceptPolicy of
sharedCookieStorage. When we launch the network process later, we pass the
identifier of sharedCookieStorage to network process, so network process has the correct
cookieAcceptPolicy. Therefore, we don't have to launch the network process and send the
setting message if the network process is not launched.
- UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
- 9:35 AM Changeset in webkit [235320] by
-
- 2 edits in trunk/LayoutTests
Mark media/video-load-preload-metadata.html as flaky on iOS
https://bugs.webkit.org/show_bug.cgi?id=128312
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:56 AM Changeset in webkit [235319] by
-
- 2 edits in branches/safari-606-branch/Tools
Cherry-pick r235317. rdar://problem/43646060
Fix handling of iOS minor versions in default_baseline_search_path
https://bugs.webkit.org/show_bug.cgi?id=188902
Reviewed by Aakash Jain.
- Scripts/webkitpy/port/ios.py: (IOSPort.default_baseline_search_path): When the major version matches the major version of the CURRENT_VERSION, treat it as a the CURRENT_VERSION.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@235317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:20 AM Changeset in webkit [235318] by
-
- 11 edits in trunk
[Apple Pay] Allow $0 totals
https://bugs.webkit.org/show_bug.cgi?id=185150
<rdar://problem/39212331>
Reviewed by Dan Bernstein.
Source/WebCore:
Relaxed payment request validation to allow $0 totals. This matches PassKit behavior.
Updated test cases in http/tests/ssl/applepay/.
- Modules/applepay/PaymentRequestValidator.mm:
(WebCore::PaymentRequestValidator::validateTotal):
LayoutTests:
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html:
- http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
- http/tests/ssl/applepay/ApplePaySessionV3.html:
- http/tests/ssl/applepay/ApplePaySessionV4-expected.txt:
- http/tests/ssl/applepay/ApplePaySessionV4.html:
- http/tests/ssl/applepay/PaymentRequest.https-expected.txt:
- http/tests/ssl/applepay/PaymentRequest.https.html:
- 7:03 AM Changeset in webkit [235317] by
-
- 2 edits in trunk/Tools
Fix handling of iOS minor versions in default_baseline_search_path
https://bugs.webkit.org/show_bug.cgi?id=188902
Reviewed by Aakash Jain.
- Scripts/webkitpy/port/ios.py:
(IOSPort.default_baseline_search_path): When the major version matches the major version of the CURRENT_VERSION, treat
it as a the CURRENT_VERSION.
- 3:12 AM Changeset in webkit [235316] by
-
- 5 edits in trunk/Source/WebCore
Remove ScrollByPrecisePixel granularity
https://bugs.webkit.org/show_bug.cgi?id=188915
Patch by Frederic Wang <fwang@igalia.com> on 2018-08-24
Reviewed by Carlos Garcia Campos.
ScrollByPrecisePixel was introduced in bug 87535 and bug 91020 for Chromium Linux/Windows but
it is no longer used.
No new tests, behavior unchanged.
- platform/ScrollAnimatorSmooth.cpp:
(WebCore::ScrollAnimatorSmooth::scroll): Remove special handling for ScrollByPrecisePixel.
- platform/ScrollTypes.h: Remove ScrollByPrecisePixel, it is never used.
- platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::scroll): Remove special handling for ScrollByPrecisePixel.
- platform/gtk/ScrollAnimatorGtk.cpp:
(WebCore::ScrollAnimatorGtk::scroll): Remove special handling for ScrollByPrecisePixel.
- 2:30 AM Changeset in webkit [235315] by
-
- 9 edits in trunk
Allow creating WeakPtrs to const objects
https://bugs.webkit.org/show_bug.cgi?id=188785
Reviewed by Geoff Garen.
Source/WebCore:
Remove some unneeded const_casts.
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
(WebCore::MediaQueryEvaluator::evaluate const):
- css/MediaQueryEvaluator.h:
- rendering/FloatingObjects.cpp:
(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter::ComputeFloatOffsetForFloatLayoutAdapter):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter::ComputeFloatOffsetForLineLayoutAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
(WebCore::FloatingObjects::FloatingObjects):
- rendering/FloatingObjects.h:
(WebCore::FloatingObjects::renderer const):
Source/WTF:
const Foo foo;
WeakPtr<const Foo> weakConstFoo = makeWeakPtr(foo);
- wtf/WeakPtr.h:
(WTF::WeakPtrFactory::createWeakPtr const):
Add a separate factory function for const T.
The underlying WeakReference is kept non-const in all cases.
Tools:
- TestWebKitAPI/Tests/WTF/WeakPtr.cpp:
(TestWebKitAPI::Base::weakPtrFactory const):
(TestWebKitAPI::TEST):
(TestWebKitAPI::Base::weakPtrFactory): Deleted.
- 2:13 AM Changeset in webkit [235314] by
-
- 3 edits in trunk/Source/WebCore
[CoordGraphics] Move inline methods on CoordinatedGraphicsLayer out-of-line
https://bugs.webkit.org/show_bug.cgi?id=188916
Reviewed by Carlos Garcia Campos.
Style checker produced complaints that CoordinatedGraphicsLayer class is
using inline-defined methods despite the WEBCORE_EXPORT macro being used
for the whole class. Keep the macro where it is but instead move the
method definitions out-of-line.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::isCoordinatedGraphicsLayer const):
(WebCore::CoordinatedGraphicsLayer::id const):
(WebCore::CoordinatedGraphicsLayer::primaryLayerID const):
(WebCore::CoordinatedGraphicsLayer::usesContentsLayer const):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- 2:03 AM Changeset in webkit [235313] by
-
- 1 copy in releases/WebKitGTK/webkit-2.21.92
WebKitGTK+ 2.21.92
- 2:03 AM Changeset in webkit [235312] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.92 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.21.92.
- 1:35 AM WebKitGTK/2.22.x edited by
- (diff)
- 1:12 AM Changeset in webkit [235311] by
-
- 1 edit in releases/WebKitGTK/webkit-2.22/Source/WebKit/gtk/NEWS
Unreviewed. Fix GTK+ NEWS file formatting
I broke it by mistake when releasing 2.21.91
- 1:10 AM Changeset in webkit [235310] by
-
- 12 edits in releases/WebKitGTK/webkit-2.22
Merge r235282 - [GTK][WPE] Add API to inject/register user content in isolated worlds
https://bugs.webkit.org/show_bug.cgi?id=188883
Reviewed by Michael Catanzaro.
Source/WebKit:
Add new API to create user scripts/stylesheets for a given script world and to register/unregister user script
messages in a given script world.
- UIProcess/API/glib/WebKitUserContent.cpp:
(webkitUserContentWorld):
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):
- UIProcess/API/glib/WebKitUserContentManager.cpp:
(webkit_user_content_manager_register_script_message_handler_in_world):
(webkit_user_content_manager_unregister_script_message_handler_in_world):
- UIProcess/API/glib/WebKitUserContentPrivate.h:
- UIProcess/API/gtk/WebKitUserContent.h:
- UIProcess/API/gtk/WebKitUserContentManager.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WebKitUserContent.h:
- UIProcess/API/wpe/WebKitUserContentManager.h:
- WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserContentWorlds):
Tools:
Add test cases for the new API.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(isStyleSheetInjectedForURLAtPath):
(isScriptInjectedForURLAtPath):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(UserScriptMessageTest::registerHandler):
(UserScriptMessageTest::unregisterHandler):
(UserScriptMessageTest::postMessageAndWaitUntilReceived):
(testUserContentManagerScriptMessageInWorldReceived):
(beforeAll):
- 1:10 AM Changeset in webkit [235309] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235162 - Do not try to update the compositing policy when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=188787
Reviewed by Simon Fraser.
RenderLayerCompositor::updateCompositingPolicy() is called very often (called from
RenderLayerCompositor::cacheAcceleratedCompositingFlags()) and it uses WTF::memoryFootprint() to decide the
current compositing policy. Getting the memory footprint is an expensive operation in Linux (and I suspect other
non-cocoa ports too), causing an excessive CPU usage. This caused the WPE and GTK+ unit test
/webkit/WebKitWebContext/uri-scheme to start timing out in the bots, because the test expects things to happen
fast and that's no longer the case. We could reduce the CPU usage a lot by not trying to update the policy when
not in accelerated compositing mode. We will need a solution for the accelerated compositing mode, though.
Fixes WPE/GTK+ unit test /webkit/WebKitWebContext/uri-scheme.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingPolicy): Return early when not in accelerated compositing mode.
- 1:10 AM Changeset in webkit [235308] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore
Merge r235161 - [JSC] HeapUtil should care about pointer overflow
https://bugs.webkit.org/show_bug.cgi?id=188740
Reviewed by Saam Barati.
pointer - sizeof(IndexingHeader) - 1
causes an undefined behavior if a pointer overflows.
For example, ifpointer
is nullptr, it causes pointer overflow. Instead of calculating this
withchar*
pointer, we cast it touintptr_t
temporarily. This issue is found by UBSan.
- heap/HeapUtil.h:
(JSC::HeapUtil::findGCObjectPointersForMarking):
- 1:10 AM Changeset in webkit [235307] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore
Merge r235160 - [JSC] Should not rotate constant with 64
https://bugs.webkit.org/show_bug.cgi?id=188556
Reviewed by Saam Barati.
To defend against JIT splaying, we rotate a constant with a randomly generated seed.
But if a seed becomes 64 or 0, the following code performsvalue << 64
orvalue >> 64
where value's type is uint64_t, and they cause undefined behaviors (UBs). This patch limits
the seed in the range of [1, 63] not to generate code causing UBs. This is found by UBSan.
- assembler/MacroAssembler.h:
(JSC::MacroAssembler::generateRotationSeed):
(JSC::MacroAssembler::rotationBlindConstant):
- 1:10 AM Changeset in webkit [235306] by
-
- 23 edits in releases/WebKitGTK/webkit-2.22/Source
Merge r235158 - Replace booleans for modifier keys in UIEventWithKeyState with OptionSet<Modifier>
https://bugs.webkit.org/show_bug.cgi?id=188777
Reviewed by Simon Fraser.
Source/WebCore:
Replaced boolean arguments and instance variables for modifier keys (ctrl, alt, shift, and meta keys) in
UIEventWithKeyState with OptionSet<Modifier> and isSimulated boolean in MouseRelatedEvent with IsSimulated
enum class.
Also made movementDelta always compiled instead of only when ENABLE(POINTER_LOCK) to simplify the code.
No new tests since there should be no observable behavioral change.
- dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
- dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
(WebCore::KeyboardEvent::initKeyboardEvent): Call setModifierKeys.
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent): Ditto.
- dom/MouseEvent.h:
- dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent): Added a new variant which takes the minimum arguments
for gesture & touch events. In those events, detail is always set to 0, movementDelta is always set to 0,0,
and they are never simulated.
- dom/MouseRelatedEvent.h:
(WebCore::MouseRelatedEvent::IsSimulated): Added.
- dom/SimulatedClick.cpp:
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent): Get OptionSet<Modifier> out of the underlying event
instead of manually setting each key state. This code now preserves the state of caps lock and alt-graph
keys but this is not observable because we have yet to implement getModifierState on MouseEvent.
(WebCore::SimulatedMouseEvent::modifiersFromUnderlyingEvent): Added.
- dom/TouchEvent.cpp:
(WebCore::TouchEvent::TouchEvent):
- dom/TouchEvent.h:
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::Modifier): Alias to PlatformEvent::Modifier.
(WebCore::UIEventWithKeyState::ctrlKey const): Updated to use m_modifiers.
(WebCore::UIEventWithKeyState::shiftKey const): Ditto.
(WebCore::UIEventWithKeyState::altKey const): Ditto.
(WebCore::UIEventWithKeyState::metaKey const): Ditto.
(WebCore::UIEventWithKeyState::altGraphKey const): Ditto.
(WebCore::UIEventWithKeyState::capsLockKey const): Ditto.
(WebCore::UIEventWithKeyState::modifierKeys): Added.
(WebCore::UIEventWithKeyState::UIEventWithKeyState): Now takes OptionSet<Modifier>.
(WebCore::UIEventWithKeyState::setModifierKeys): Added. Used by init*Event functions in subclasses. Note that
these functions preseve the states of alt-graph and caps lock keys to match the existing behaviors in this
cleanup patch but they don't match behaviors of Chrome or Firefox.
(WebCore::UIEventWithKeyState::modifiersFromInitializer): Added.
- dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent): Simulated::No corresponds to the last boolean being false.
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::handleTouchEvent):
- platform/PlatformEvent.h:
(WebCore::PlatformEvent::Modifier): Added AltGraphKey.
- platform/mac/PlatformEventFactoryMac.h:
(WebCore::modifiersForEvent): Exported to be used in [WebPDFView PDFViewWillClickOnLink:withURL:].
- platform/mac/PlatformEventFactoryMac.mm:
(WebCore::modifiersForEvent):
- testing/Internals.cpp:
(WebCore::Internals::accessKeyModifiers const):
Source/WebKit:
Added two FIXMEs.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
Source/WebKitLegacy/ios:
Create MouseEvent::create with IsSimulated set to Yes; correspoding to the last argument
being "true" before the code change.
- WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):
Source/WebKitLegacy/mac:
Create MouseEvent::create with IsSimulated set to Yes; correspoding to the last argument
being "true" before the code change.
Use modifiersForEvent to convert [nsEvent modifierFlags] to OptionSet<Modifier>.
- WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):
- 1:10 AM Changeset in webkit [235305] by
-
- 5 edits in releases/WebKitGTK/webkit-2.22
Merge r235148 - Transition ResizeReversePaginatedWebView API test from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188821
Reviewed by Simon Fraser.
Source/WebKit:
Add some more values to WKPageRenderingProgressEvents which were already supported by _WKRenderingProgressEvents and WKLayoutMilestones.
- UIProcess/API/C/WKPageRenderingProgressEvents.h:
- UIProcess/API/C/WKPageRenderingProgressEventsInternal.h:
(pageRenderingProgressEvents):
Tools:
- TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:
(TestWebKitAPI::didLayout):
(TestWebKitAPI::TEST):
- 1:10 AM Changeset in webkit [235304] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22/Tools
Merge r235138 - Transition more API tests from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188813
Reviewed by Andy Estes.
- TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp:
(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):
- TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp:
(TestWebKitAPI::didLayout):
(TestWebKitAPI::setPageLoaderClient):
- 1:10 AM Changeset in webkit [235303] by
-
- 1 edit1 add in releases/WebKitGTK/webkit-2.22/Source/WebInspectorUI
Merge r235134 - Web Inspector: Rulers.svg is missing
https://bugs.webkit.org/show_bug.cgi?id=188806
<rdar://problem/43574273>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-21
Reviewed by Devin Rousso.
- UserInterface/Images/Rulers.svg: Added.
- 1:09 AM Changeset in webkit [235302] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merge r235133 - Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.h:
- 1:09 AM Changeset in webkit [235301] by
-
- 15 edits in releases/WebKitGTK/webkit-2.22/Tools
Merge r235123 - Transition more API tests from WKPageLoaderClient to WKPageNavigationClient
https://bugs.webkit.org/show_bug.cgi?id=188797
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebKit/AboutBlankLoad.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/EphemeralSessionPushStateNoHistoryCallback.cpp:
(TestWebKitAPI::didSameDocumentNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/FailedLoad.cpp:
(TestWebKitAPI::didFailProvisionalNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFailProvisionalLoadWithErrorForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/FrameMIMETypeHTML.cpp:
(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/FrameMIMETypePNG.cpp:
(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/LayoutMilestonesWithAllContentInFrame.cpp:
(TestWebKitAPI::renderingProgressDidChange):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didLayout): Deleted.
- TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFrames.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::renderingProgressDidChange):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::didLayout): Deleted.
- TestWebKitAPI/Tests/WebKit/PageLoadBasic.cpp:
(TestWebKitAPI::State::State):
(TestWebKitAPI::didStartProvisionalNavigation):
(TestWebKitAPI::didCommitNavigation):
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::decidePolicyForNavigationAction):
(TestWebKitAPI::decidePolicyForResponse):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didStartProvisionalLoadForFrame): Deleted.
(TestWebKitAPI::didCommitLoadForFrame): Deleted.
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::decidePolicyForNewWindowAction): Deleted.
- TestWebKitAPI/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp:
(TestWebKitAPI::didSameDocumentNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::didSameDocumentNavigationForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp:
(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/WKBundleFileHandle.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/RestoreStateAfterTermination.mm:
(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/CommandBackForward.mm:
(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::didFinishLoadForFrame): Deleted.
- 1:09 AM Changeset in webkit [235300] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.22
Merge r235121 - Disallow navigations when page cache updates the current document of the frame
https://bugs.webkit.org/show_bug.cgi?id=188422
Reviewed by Ryosuke Niwa.
Source/WebCore:
Make use of NavigationDisabler to disallow navigations when associating the cached
document back with its frame (i.e. calling Frame::setDocument()).
When we associate a cached document with its frame we will construct its render tree
and run post style resolution callbacks that can do anything, including performing
a frame load. Until page restoration is comnplete the frame tree is in a transient
state that makes reasoning about it difficult and error prone. We should not allow
navigations in this state.
Test: fast/history/go-back-to-object-subframe.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::open):
LayoutTests:
Add a test case that ensures that we do not hit the assertion ASSERT(ownerFrame m_frame.isMainFrame()) in FrameLoader::addExtraFieldsToRequest() when navigating back to a page that loads a nested
page, whose URL contains a fragment, via an HTML object element. This assertion fails if
navigations are allowed when restoring a page from the page cache.
This change does not prevent navigations initiated from a pageshow event handler.
- fast/history/go-back-to-object-subframe-expected.txt: Added.
- fast/history/go-back-to-object-subframe.html: Added.
- 1:09 AM Changeset in webkit [235299] by
-
- 35 edits1 add in releases/WebKitGTK/webkit-2.22/Source
Merge r235120 - Replace TextCheckingTypeMask with OptionSet
https://bugs.webkit.org/show_bug.cgi?id=188678
Reviewed by Antti Koivisto.
Source/WebCore:
Replaces TextCheckingTypeMask with an OptionSet to improve type safety and code clarity. Additionally
change the values of TextCheckingType such that all the enumerators fit within an uint8_t.
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling const):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling):
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
- editing/Editor.cpp:
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::isAutomaticTextReplacementType):
(WebCore::Editor::markAndReplaceFor): For now, change a local variable from const to non-const to work
around the following MSVC compiler bug: <https://developercommunity.visualstudio.com/content/problem/316713/msvc-cant-compile-webkits-optionsetcontainsany.html>.
(WebCore::Editor::markMisspellingsAndBadGrammar):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::editorUIUpdateTimerFired):
(WebCore::Editor::resolveTextCheckingTypeMask):
- editing/Editor.h:
- editing/SpellChecker.cpp:
(WebCore::SpellCheckRequest::SpellCheckRequest):
(WebCore::SpellCheckRequest::create):
(WebCore::SpellChecker::didCheckSucceed):
- editing/SpellChecker.h:
- editing/TextCheckingHelper.cpp:
(WebCore::findGrammaticalErrors):
(WebCore::findMisspellings):
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
(WebCore::checkTextOfParagraph):
- editing/TextCheckingHelper.h:
- loader/EmptyClients.cpp:
- platform/text/TextCheckerClient.h:
- platform/text/TextChecking.h: Remove TextCheckingTypeMask. Reorganized the fields of TextCheckingRequestData
to coallesce padding and move it to the end of class. Also used default initializer syntax and defaulted (= default)
the default constructor of TextCheckingRequestData, removing the need for a user-defined default constructor.
(WebCore::TextCheckingRequestData::TextCheckingRequestData):
(WebCore::TextCheckingRequestData::text const): Changed return type from String to const String&
to avoid unnecessary ref-count churn for callers that do not need to take a shared ownership in
this string.
(WebCore::TextCheckingRequestData::checkingTypes const): Renamed; formerly named mask.
(WebCore::TextCheckingRequestData::mask const): Deleted.
- platform/text/mac/TextCheckingMac.mm: Added.
(WebCore::nsTextCheckingTypes):
- testing/Internals.cpp:
(WebCore::Internals::handleAcceptedCandidate):
Source/WebKit:
- Scripts/webkit/messages.py: Add WebCore::TextCheckingType to the special case map so that
the generator knows what header has the definition for this type.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextCheckingRequestData>::encode):
(IPC::ArgumentCoder<TextCheckingRequestData>::decode):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::coreTextCheckingType):
(WebKit::textCheckingResultFromNSTextCheckingResult):
- UIProcess/TextChecker.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::checkTextOfParagraph):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::requestCheckingOfString):
(WebKit::TextChecker::checkTextOfParagraph): Also simplified return expressions.
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/win/TextCheckerWin.cpp:
(WebKit::TextChecker::checkTextOfParagraph):
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection const):
(WebKit::WebEditorClient::checkTextOfParagraph):
- WebProcess/WebCoreSupport/WebEditorClient.h:
Source/WebKitLegacy/mac:
Currently we have code in WebEditorClient::checkTextOfParagraph() that incorrectly assumes
that the enumerators of TextCheckingType have a one-to-one correspondence with NSTextCheckingType.
(This is not the case because there is not corresponding NSTextCheckingType for TextCheckingTypeShowCorrectionPanel).
We now explicitly convert from OptionSet<TextCheckingType> to NSTextCheckingTypes.
- WebCoreSupport/WebEditorClient.h:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::checkTextOfParagraph):
(WebEditorClient::shouldEraseMarkersAfterChangeSelection const):
(core): Fix up code style nits; compare resultType on the right-hand side instead of the
left as this is more readable and unncessary now that modern compilers like Clang have
diagnostics to catch accidental assignments when equality was intended.
(WebEditorClient::didCheckSucceed):
- WebView/WebView.mm:
(coreTextCheckingType):
(textCheckingResultFromNSTextCheckingResult):
- 1:09 AM Changeset in webkit [235298] by
-
- 48 edits in releases/WebKitGTK/webkit-2.22/Tools
Merge r235117 - Replace WKPageLoaderClient with WKPageNavigationClient in many API tests
https://bugs.webkit.org/show_bug.cgi?id=188771
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebKit/CloseThenTerminate.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/CookieManager.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/DeferredViewInWindowStateChange.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/DidNotHandleKeyDown.cpp:
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/DidRemoveFrameFromHiearchyInPageCache.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/EventModifiers.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setClients):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/Find.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/FindMatches.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/ForceRepaint.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/FrameHandle.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/Geolocation.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/InjectedBundleBasic.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/LimitTitleSize.cpp:
(TestWebKitAPI::didFinishLoadForFrame):
- TestWebKitAPI/Tests/WebKit/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::loadAlternateHTMLString):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/LoadCanceledNoServerRedirectCallback.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/LoadPageOnCrash.cpp:
(TestWebKitAPI::WebKit2CrashLoader::WebKit2CrashLoader):
(TestWebKitAPI::didFinishLoad):
- TestWebKitAPI/Tests/WebKit/MenuTypesForMouseEvents.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/MouseMoveAfterCrash.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:
(TestWebKitAPI::didFinishLoadForFrame):
- TestWebKitAPI/Tests/WebKit/PageLoadBasic.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/PendingAPIRequestURL.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/ResizeWindowAfterCrash.cpp:
(TestWebKitAPI::didFinishLoad):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/RestoreSessionStateContainingFormData.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/ScrollPinningBehaviors.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishDocumentLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/SpacebarScrolling.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/StopLoadingDuringDidFailProvisionalLoad.cpp:
(TestWebKitAPI::didFailProvisionalNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFailProvisionalLoadWithErrorForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/TerminateTwice.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/TextFieldDidBeginAndEndEditing.cpp:
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishNavigation):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/UserMessage.cpp:
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::didFinishNavigation):
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2UserMessageRoundTripTest::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WKPageConfiguration.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WKPageCopySessionStateWithFiltering.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WKPageGetScaleFactorNotZero.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WKPageIsPlayingAudio.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setUpClients):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/WebArchive.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/AttributedSubstringForProposedRangeWithImage.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/CustomBundleParameter.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/EditorCommands.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/GetPIDAfterAbortedProcessLaunch.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKit/mac/InjectedBundleAppleEvent.cpp:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:
(didFinishNavigation):
(TestWebKitAPI::TEST):
(didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
(didFinishNavigation):
(TestWebKitAPI::TEST):
(didFinishLoadForFrame): Deleted.
- TestWebKitAPI/Tests/mac/FirstResponderScrollingPosition.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- TestWebKitAPI/mac/WebKitAgnosticTest.mm:
(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didFinishLoadForFrame): Deleted.
- 1:08 AM Changeset in webkit [235297] by
-
- 5 edits1 move in releases/WebKitGTK/webkit-2.22
Merge r235116 - [WPE] Update to use libwpe-1.0.0 and WPEBackend-fdo-1.0.0
https://bugs.webkit.org/show_bug.cgi?id=188782
Reviewed by Michael Catanzaro.
Make the build depend on wpe-0.2, and change the Flatpak and JHBuild development
environments to use version 1.0.0 of libwpe and WPEBackend-fdo.
.:
- Source/cmake/FindWPE.cmake: Renamed from Source/cmake/FindWPEBackend.cmake and changed
to check for libwpe-0.2.
- Source/cmake/OptionsWPE.cmake: Adapt to the rename to FindWPE.cmake.
Tools:
- flatpak/org.webkit.WPE.yaml: Update to use libwpe and WPEBackend-fdo version 1.0.0 from
release tarballs, and removed the (now unneeded) Lua and LuaJIT modules.
- wpe/jhbuild.modules: Ditto.
- 1:08 AM Changeset in webkit [235296] by
-
- 14 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235115 - Don't place "using namespace XXX;" in global space for unified source builds
https://bugs.webkit.org/show_bug.cgi?id=188739
Reviewed by Yusuke Suzuki.
No new tests (No behavior change).
- html/track/AudioTrackList.cpp:
- html/track/TextTrackList.cpp:
- html/track/VideoTrackList.cpp:
- page/SecurityOriginData.cpp:
- page/TextIndicator.cpp:
- platform/geoclue/GeolocationProviderGeoclue.cpp:
- platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
- platform/graphics/win/FullScreenController.cpp:
- platform/mediastream/CaptureDeviceManager.cpp:
- platform/mock/MediaPlaybackTargetPickerMock.cpp:
- svg/animation/SMILTime.cpp:
- testing/js/WebCoreTestSupport.cpp:
- xml/XPathParser.cpp:
- 1:08 AM Changeset in webkit [235295] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WTF
Merge r235113 - [Linux] Cache the memory footprint and only update it after 1 second
https://bugs.webkit.org/show_bug.cgi?id=188791
Reviewed by Yusuke Suzuki.
Getting the memory footprint is an expensive operation in Linux. When called multiple times, the CPU usage is
too much (see bug #188787). We could cache the result for at least 1 second to ensure we don't call it more than
once per second.
- wtf/linux/MemoryFootprintLinux.cpp:
(WTF::forEachLine):
(WTF::computeMemoryFootprint):
(WTF::memoryFootprint):
- 1:08 AM Changeset in webkit [235294] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235112 - [GStreamer] Warn early about incomplete MSE track switching support
https://bugs.webkit.org/show_bug.cgi?id=188653
Patch by Philippe Normand <philn@igalia.com> on 2018-08-21
Reviewed by Xabier Rodriguez-Calvar.
The proper track switching support shall be fixed at some point by:
https://bugs.webkit.org/show_bug.cgi?id=182531.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Remove redundant test.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Exit early if
this method is called by the MSE player.
- 1:08 AM Changeset in webkit [235293] by
-
- 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235110 - [GStreamer][MSE] Generic main thread notification support
https://bugs.webkit.org/show_bug.cgi?id=188647
Patch by Philippe Normand <philn@igalia.com> on 2018-08-21
Reviewed by Xabier Rodriguez-Calvar.
Using GstBus for main thread notifications has the side effect of "leaking" the
application messages to the media player, leading to CPU cycles wasting.
No new tests, existing MSE tests cover this change.
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetMediaPlayerPrivate):
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:
- 1:08 AM Changeset in webkit [235292] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235109 - [GStreamer][MSE] Remove parsers from playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=188646
Patch by Philippe Normand <philn@igalia.com> on 2018-08-16
Reviewed by Xabier Rodriguez-Calvar.
Decodebin already includes parsers in front of the decoders.
No new tests, existing MSE tests cover this change.
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcLinkSourcePad):
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h:
- 1:08 AM Changeset in webkit [235291] by
-
- 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merge r235108 - Unreviewed, rolling out r234979.
https://bugs.webkit.org/show_bug.cgi?id=188780
broke ubuntu LTS build (Requested by philn on #webkit).
Reverted changeset:
"[GTK] Never return an uninitialized ImageGStreamer object."
https://bugs.webkit.org/show_bug.cgi?id=188305
https://trac.webkit.org/changeset/234979
- 1:07 AM Changeset in webkit [235290] by
-
- 31 edits7 adds in releases/WebKitGTK/webkit-2.22
Merge r235106 - Inline DataView accesses into DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=188573
<rdar://problem/43286746>
Reviewed by Michael Saboff.
JSTests:
- microbenchmarks/data-view-accesses-2.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
(test):
- microbenchmarks/data-view-accesses.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
- stress/dataview-jit-bounds-checks.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
- stress/dataview-jit-get.js: Added.
(assert):
(test1.bigEndian):
(test1.littleEndian):
(test1.biEndian):
(test1):
(test2.bigEndian):
(test2.littleEndian):
(test2.biEndian):
(test2):
(test3.bigEndian):
(test3.littleEndian):
(test3.biEndian):
(test3):
(test4.bigEndian):
(test4.littleEndian):
(test4.biEndian):
(test4):
(test5.bigEndian):
(test5.littleEndian):
(test5.biEndian):
(test5):
(test6.bigEndian):
(test6.littleEndian):
(test6.biEndian):
(test6):
(test7.load):
(test7):
(test8.load):
(test8):
- stress/dataview-jit-neuter.js: Added.
(assert):
(test.load):
(test):
(test2.load):
(test2):
- stress/dataview-jit-set.js: Added.
(assert):
(isLittleEndian):
(readByte):
(readHex):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):
(test2.storeLittleEndian):
(test2.storeBigEndian):
(test2.store):
(test2):
(test3.storeLittleEndian):
(test3.storeBigEndian):
(test3.store):
(test3):
(test4.storeLittleEndian):
(test4.storeBigEndian):
(test4.store):
(test4):
(test5.storeLittleEndian):
(test5.storeBigEndian):
(test5.store):
(test5):
(test6.storeLittleEndian):
(test6.storeBigEndian):
(test6.store):
(test6):
(test7.store):
(test7):
(test8.store):
(test8):
- stress/dataview-jit-unaligned-accesses.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
Source/JavaScriptCore:
This patch teaches the DFG/FTL to inline DataView accesses. The approach is
straight forward. We inline the various get*/set* operations as intrinsics.
This patch takes the most obvious approach for now. We OSR exit when:
- An isLittleEndian argument is provided, and is not a boolean.
- The index isn't an integer.
- The |this| isn't a DataView.
- We do an OOB access (or see a neutered array)
To implement this change in a performant way, this patch teaches the macro
assembler how to emit byte swap operations. The semantics of the added functions
are byteSwap + zero extend. This means for the 16bit byte swaps, we need
to actually emit zero extend instructions. For the 32/64bit byte swaps,
the instructions already have these semantics.
This patch is just a lightweight initial implementation. There are some easy
extensions we can do in future changes:
- Teach B3 how to byte swap: https://bugs.webkit.org/show_bug.cgi?id=188759
- CSE DataViewGet* nodes: https://bugs.webkit.org/show_bug.cgi?id=188768
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::byteSwap16):
(JSC::MacroAssemblerARM64::byteSwap32):
(JSC::MacroAssemblerARM64::byteSwap64):
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::byteSwap32):
(JSC::MacroAssemblerX86Common::byteSwap16):
(JSC::MacroAssemblerX86Common::byteSwap64):
- assembler/X86Assembler.h:
(JSC::X86Assembler::bswapl_r):
(JSC::X86Assembler::bswapq_r):
(JSC::X86Assembler::shiftInstruction16):
(JSC::X86Assembler::rolw_i8r):
(JSC::X86Assembler::X86InstructionFormatter::SingleInstructionBufferWriter::memoryModRM):
- assembler/testmasm.cpp:
(JSC::testByteSwap):
(JSC::run):
- bytecode/DataFormat.h:
- bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):
(JSC::speculationFromClassInfo):
(JSC::speculationFromJSType):
(JSC::speculationFromString):
- bytecode/SpeculatedType.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::dataViewData):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateDataViewObject):
(JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap32):
(JSC::FTL::DFG::LowerDFGToB3::byteSwap64):
(JSC::FTL::DFG::LowerDFGToB3::emitCodeBasedOnEndiannessBranch):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):
(JSC::FTL::DFG::LowerDFGToB3::lowDataViewObject):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateDataViewObject):
- runtime/Intrinsic.cpp:
(JSC::intrinsicName):
- runtime/Intrinsic.h:
- runtime/JSDataViewPrototype.cpp:
Source/WTF:
- wtf/TriState.h:
- 1:07 AM Changeset in webkit [235289] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.22
Merge r235104 - [YARR] Extend size of fixed characters bulk matching in 64bit platform
https://bugs.webkit.org/show_bug.cgi?id=181989
Patch by Yusuke Suzuki <Yusuke Suzuki> on 2018-08-20
Reviewed by Michael Saboff.
JSTests:
- stress/characters-regexp-ignore-case.js: Added.
(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):
- stress/characters-regexp.js: Added.
(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):
Source/JavaScriptCore:
This patch extends bulk matching style for fixed-sized characters.
In 64bit environment, the GPR can hold up to 8 characters. This change
reduces the code size since we can fuse multiplemov
operations into one.
- assembler/LinkBuffer.h:
- runtime/Options.h:
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::compile):
- 1:07 AM Changeset in webkit [235288] by
-
- 19 edits2 adds in releases/WebKitGTK/webkit-2.22
Merge r235103 - Web Inspector: allow breakpoints to be set for specific event listeners
https://bugs.webkit.org/show_bug.cgi?id=183138
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/DOM.json:
Add
setBreakpointForEventListener
andremoveBreakpointForEventListener
, each of which
takes aneventListenerId
and toggles whether that specific usage of that event listener
should have a breakpoint and pause before running.
Source/WebCore:
Test: inspector/dom/breakpoint-for-event-listener.html
- inspector/agents/InspectorDOMAgent.h:
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::setEventListenerDisabled):
(WebCore::InspectorDOMAgent::setBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::removeBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::willRemoveEventListener):
(WebCore::InspectorDOMAgent::isEventListenerDisabled):
(WebCore::InspectorDOMAgent::hasBreakpointForEventListener): Added.
(WebCore::InspectorDOMAgent::idForEventListener): Added.
Rework the event listener data structure to be based on ID instead ofEventListener
, since
it is possible to have the sameEventListener
be used for multiple events.
- inspector/agents/InspectorDOMDebuggerAgent.h:
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent): Added.
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
For DOM events, also check to see if there is a matching event listener specific breakpoint
set via the DOMAgent, and break on it if one is found.
- inspector/InspectorInstrumentation.h:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
Split offpauseOnNativeEventIfNeeded
to only handle non-DOM events, since all DOM events
would already only go throughwillHandleEvent
.
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Models/EventBreakpoint.js:
(WI.EventBreakpoint):
(WI.EventBreakpoint.fromPayload): Added.
(WI.EventBreakpoint.prototype.get eventListener): Added.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager):
- UserInterface/Controllers/DOMTreeManager.js:
(WI.DOMTreeManager):
(WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
(WI.DOMTreeManager.prototype._setDocument):
(WI.DOMTreeManager.prototype.setEventListenerDisabled):
(WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
(WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.
- UserInterface/Controllers/EventBreakpointTreeController.js:
(WI.EventBreakpointTreeController):
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
- UserInterface/Views/EventListenerSectionGroup.js:
(WI.EventListenerSectionGroup):
(WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
(WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.
- UserInterface/Views/EventBreakpointTreeElement.js:
(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
LayoutTests:
- inspector/dom/breakpoint-for-event-listener-expected.txt: Added.
- inspector/dom/breakpoint-for-event-listener.html: Added.
- 1:07 AM Changeset in webkit [235287] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore
Merge r235102 - Fix the LLInt so that btjs shows vmEntryToJavaScript instead of llintPCRangeStart for the entry frame.
https://bugs.webkit.org/show_bug.cgi?id=188769
Reviewed by Michael Saboff.
- llint/LowLevelInterpreter.asm:
- Just put an unused instruction between llintPCRangeStart and vmEntryToJavaScript so that libunwind doesn't get confused by the 2 labels pointing to the same code address.
- 1:06 AM Changeset in webkit [235286] by
-
- 35 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merge r235101 - Use unified build for NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=185011
Reviewed by Alex Christensen.
- NetworkProcess/Cookies/WebCookieManager.cpp:
- NetworkProcess/Downloads/Download.cpp:
- NetworkProcess/Downloads/DownloadManager.cpp:
- NetworkProcess/Downloads/PendingDownload.cpp:
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
- NetworkProcess/NetworkContentRuleListManager.cpp:
- NetworkProcess/NetworkDataTask.cpp:
- NetworkProcess/NetworkDataTaskBlob.cpp:
- NetworkProcess/NetworkLoadChecker.cpp:
- NetworkProcess/NetworkProcess.cpp:
- NetworkProcess/NetworkProcessPlatformStrategies.cpp:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/NetworkSession.cpp:
- NetworkProcess/NetworkSocketStream.cpp:
- NetworkProcess/PingLoad.cpp:
- NetworkProcess/cache/CacheStorageEngine.cpp:
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
- NetworkProcess/cache/NetworkCache.cpp:
- NetworkProcess/capture/NetworkCaptureEvent.cpp:
- NetworkProcess/capture/NetworkCaptureManager.cpp:
- NetworkProcess/capture/NetworkCaptureRecorder.cpp:
- NetworkProcess/capture/NetworkCaptureReplayer.cpp:
- NetworkProcess/capture/NetworkDataTaskReplay.cpp:
- NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
- NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::platformCancelNetworkLoad):
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:didBecomeInvalidWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]):
Fix the build with unified sources.
- Sources.txt: Un-@no-unify NetworkProcess/*.
- SourcesCocoa.txt: Un-@no-unify NetworkProcess/*.
- 1:06 AM Changeset in webkit [235285] by
-
- 10 edits in releases/WebKitGTK/webkit-2.22/Source
Merge r235098 - [CMake] Sync unified build with Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=188732
Reviewed by Tim Horton.
Source/WebCore:
For iOS, disambiguate between ::WebEvent declared in PlatformKeyboardEvent.h and
WebCore::WebEvent declared in WebEvent.h. It's expected that we'll have to deal with random
issues like this when modifying unrelated source files in higher-level projects, since any
change to the sources list changes which files get bundled together, and headers from
lower-level projects that were not included before may now be included together.
- platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::event const):
Source/WebKit:
Sync unified build with Cocoa ports. This enables unified build for WebKit/Platform and
WebKit/Shared.
Lots of files need to be moved around since the existing Sources.txt was not copied from
CMakeLists.txt. This replaces the Sources.txt with the sources list from CMakeList.txt.
Files that are not built for Cocoa are moved to SourcesGTK.txt, SourcesWPE.txt, and
PlatformWin.cmake. Files that are built only on Cocoa are moved to SourcesCocoa.txt. There's
plenty of room to determine if many of these files really need to be platform-specific in
the future, but let's not change that now.
Unfortunately, several files under Shared and PluginProcess need to be un-unified to be
usable for GTK's WebKitPluginProcess2. I've never managed to understand why, but it won't
link otherwise. Fortunately, this only affects a few files (listed in
PluginProcessGTK2_SOURCES), only a couple dozen of which are cross-platform.
- CMakeLists.txt:
- PlatformWin.cmake:
- Sources.txt:
- SourcesCocoa.txt:
- SourcesGTK.txt:
- SourcesWPE.txt:
- 1:06 AM Changeset in webkit [235284] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Tools
Merge r235080 - [GTK] Sort inspector GResource manifest to ensure reproducible builds
https://bugs.webkit.org/show_bug.cgi?id=188738
Patch by Bernhard M. Wiedemann <bwiedemann@suse.de> on 2018-08-20
Reviewed by Michael Catanzaro.
- glib/generate-inspector-gresource-manifest.py:
(get_filenames): sort list of input files
- 1:06 AM Changeset in webkit [235283] by
-
- 10 edits in releases/WebKitGTK/webkit-2.22
Merge r235050 - Throw an exception if window.open() gets passed a URL that cannot be parsed
https://bugs.webkit.org/show_bug.cgi?id=171656
Patch by Rob Buis <rbuis@igalia.com> on 2018-08-20
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/url/failure-expected.txt:
Source/WebCore:
Throw a SyntaxError exception when an invalid url gets passed into window.open().
Tests: imported/w3c/web-platform-tests/url/failure.html
fast/dom/Window/open-invalid-url.html
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
(WebCore::DOMWindow::showModalDialog):
- page/DOMWindow.h:
- page/DOMWindow.idl:
- testing/Internals.cpp:
(WebCore::Internals::openDummyInspectorFrontend):
LayoutTests:
- fast/dom/Window/open-invalid-url-expected.txt:
- fast/dom/Window/open-invalid-url.html:
- 1:04 AM Changeset in webkit [235282] by
-
- 12 edits in trunk
[GTK][WPE] Add API to inject/register user content in isolated worlds
https://bugs.webkit.org/show_bug.cgi?id=188883
Reviewed by Michael Catanzaro.
Source/WebKit:
Add new API to create user scripts/stylesheets for a given script world and to register/unregister user script
messages in a given script world.
- UIProcess/API/glib/WebKitUserContent.cpp:
(webkitUserContentWorld):
(_WebKitUserStyleSheet::_WebKitUserStyleSheet):
(webkit_user_style_sheet_new):
(webkit_user_style_sheet_new_for_world):
(_WebKitUserScript::_WebKitUserScript):
(webkit_user_script_new):
(webkit_user_script_new_for_world):
- UIProcess/API/glib/WebKitUserContentManager.cpp:
(webkit_user_content_manager_register_script_message_handler_in_world):
(webkit_user_content_manager_unregister_script_message_handler_in_world):
- UIProcess/API/glib/WebKitUserContentPrivate.h:
- UIProcess/API/gtk/WebKitUserContent.h:
- UIProcess/API/gtk/WebKitUserContentManager.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/wpe/WebKitUserContent.h:
- UIProcess/API/wpe/WebKitUserContentManager.h:
- WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserContentWorlds):
Tools:
Add test cases for the new API.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitUserContentManager.cpp:
(isStyleSheetInjectedForURLAtPath):
(isScriptInjectedForURLAtPath):
(testUserContentManagerInjectedStyleSheet):
(testUserContentManagerInjectedScript):
(UserScriptMessageTest::registerHandler):
(UserScriptMessageTest::unregisterHandler):
(UserScriptMessageTest::postMessageAndWaitUntilReceived):
(testUserContentManagerScriptMessageInWorldReceived):
(beforeAll):
- 12:43 AM Changeset in webkit [235281] by
-
- 4 edits in trunk/Source/WebCore
Use OptionSet::containsAny and containsAll in some more places
https://bugs.webkit.org/show_bug.cgi?id=188885
Reviewed by Sam Weinig.
- page/PerformanceMonitor.cpp:
(WebCore::PerformanceMonitor::activityStateChanged):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::~RenderLayerBacking):
- 12:32 AM Changeset in webkit [235280] by
-
- 1 copy in tags/Safari-607.1.3.1
Tag Safari-607.1.3.1.
- 12:27 AM Changeset in webkit [235279] by
-
- 28 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234941. rdar://problem/43667266
- 12:27 AM Changeset in webkit [235278] by
-
- 5 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234990. rdar://problem/43667266
- 12:27 AM Changeset in webkit [235277] by
-
- 28 edits in tags/Safari-607.1.3/Source/WebKit
Revert r235266. rdar://problem/43667266
- 12:27 AM Changeset in webkit [235276] by
-
- 5 edits in tags/Safari-607.1.3/Source/WebKit
Revert r235270. rdar://problem/43667266
Aug 23, 2018:
- 11:38 PM Changeset in webkit [235275] by
-
- 7 edits in tags/Safari-607.1.3/Source
Versioning.
- 10:51 PM Changeset in webkit [235274] by
-
- 2 edits in trunk/LayoutTests
fast/files/blob-network-process-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=188911
Reviewed by Saam Barati.
The flakiness appears to come from the web content process not getting notified of
the termination of the network process in time. Wait for the network process to
relaunch after terminating one by continuously fetch'ing itself with an increasing
time interval until it succeeds.
- fast/files/blob-network-process-crash.html:
- 9:55 PM Inspecting the GC heap edited by
- (diff)
- 9:55 PM Changeset in webkit [235273] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Color picker: can't enter decimal numbers for opacity
https://bugs.webkit.org/show_bug.cgi?id=187026
<rdar://problem/41446500>
Reviewed by Brian Burg.
After every "input" event, we update the
color
value of theWI.ColorPicker
based on a
generated string using the values of the various <input>. The issue with this approach is
that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the
color wouldn't change and would instead be reset back to it's old value. This patch adds an
early return if the newly generated color has the same value as the current color, thereby
meaning that thecolor
wouldn't change when changing from "0" to "0.".
- UserInterface/Views/ColorPicker.js:
(WI.ColorPicker):
(WI.ColorPicker.createColorInput):
(WI.ColorPicker.prototype._handleColorInputInput):
- 9:51 PM Inspecting the GC heap edited by
- (diff)
- 9:38 PM Inspecting the GC heap edited by
- (diff)
- 9:36 PM Inspecting the GC heap edited by
- (diff)
- 9:31 PM Inspecting the GC heap edited by
- (diff)
- 9:22 PM Changeset in webkit [235272] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 9:10 PM Changeset in webkit [235271] by
-
- 170 edits1 copy5 adds in trunk
Add support for dumping GC heap snapshots, and a viewer
https://bugs.webkit.org/show_bug.cgi?id=186416
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
SlotVisitor maintains a RootMarkReason (via SetRootMarkReasonScope) that allows
the HeapSnapshotBuilder to keep track of why a JSCell was treated as a GC root. For
objects visited via opaque roots, we record the reason why via a new out param to
isReachableFromOpaqueRoots().
HeapSnapshotBuilder is enhanced to produce GCDebuggingSnapshot JSON output. This contains
additional information including the address of the JSCell* and the wrapped object (for
JSDOMWrappers), the root reasons, and for some objects like JSDocument a label which can
be the document URL.
GCDebuggingSnapshots are always full snapshots (previous snapshots are not kept around).
- API/JSAPIWrapperObject.mm:
(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
- API/JSManagedValue.mm:
(JSManagedValueHandleOwner::isReachableFromOpaqueRoots):
- API/glib/JSAPIWrapperObjectGLib.cpp:
(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
- CMakeLists.txt:
- heap/ConservativeRoots.h:
(JSC::ConservativeRoots::size const):
(JSC::ConservativeRoots::size): Deleted.
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::getNextObjectIdentifier):
(JSC::HeapSnapshotBuilder::HeapSnapshotBuilder):
(JSC::HeapSnapshotBuilder::~HeapSnapshotBuilder):
(JSC::HeapSnapshotBuilder::buildSnapshot):
(JSC::HeapSnapshotBuilder::appendNode):
(JSC::HeapSnapshotBuilder::appendEdge):
(JSC::HeapSnapshotBuilder::setOpaqueRootReachabilityReasonForCell):
(JSC::HeapSnapshotBuilder::setWrappedObjectForCell):
(JSC::HeapSnapshotBuilder::previousSnapshotHasNodeForCell):
(JSC::snapshotTypeToString):
(JSC::rootTypeToString):
(JSC::HeapSnapshotBuilder::setLabelForCell):
(JSC::HeapSnapshotBuilder::descriptionForCell const):
(JSC::HeapSnapshotBuilder::json):
(JSC::HeapSnapshotBuilder::hasExistingNodeForCell): Deleted.
- heap/HeapSnapshotBuilder.h:
- heap/SlotVisitor.cpp:
(JSC::SlotVisitor::appendSlow):
- heap/SlotVisitor.h:
(JSC::SlotVisitor::heapSnapshotBuilder const):
(JSC::SlotVisitor::rootMarkReason const):
(JSC::SlotVisitor::setRootMarkReason):
(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope):
(JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope):
- heap/WeakBlock.cpp:
(JSC::WeakBlock::specializedVisit):
- heap/WeakHandleOwner.cpp:
(JSC::WeakHandleOwner::isReachableFromOpaqueRoots):
- heap/WeakHandleOwner.h:
- runtime/SimpleTypedArrayController.cpp:
(JSC::SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
- runtime/SimpleTypedArrayController.h:
- tools/JSDollarVM.cpp:
Source/WebCore:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
that need to decorate the heap snapshot cell data with things like the document URL.
GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
to a file in /tmp. The file path is printed out to the system log.
- bindings/js/DOMGCOutputConstraint.cpp:
(WebCore::DOMGCOutputConstraint::executeImpl):
- bindings/js/GCController.cpp:
(WebCore::GCController::GCController):
(WebCore::GCController::dumpHeap):
- bindings/js/GCController.h:
- bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots):
- bindings/js/JSCallbackData.h:
- bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::heapSnapshot):
- bindings/js/JSDeprecatedCSSOMValueCustom.cpp:
(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::heapSnapshot):
- bindings/js/JSMicrotaskCallback.h:
(WebCore::JSMicrotaskCallback::call):
- bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
- bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::visitAdditionalChildren):
- bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
- bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
- bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp:
(WebCore::JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
- bindings/js/JSPerformanceObserverCustom.cpp:
(WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots):
- bindings/js/JSPopStateEventCustom.cpp:
- bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
- bindings/js/WebCoreTypedArrayController.cpp:
(WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
- bindings/js/WebCoreTypedArrayController.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceName::heapSnapshot):
(WebCore::JSInterfaceNameOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSInterfaceName.h:
- bindings/scripts/test/JS/JSMapLike.cpp:
(WebCore::JSMapLike::heapSnapshot):
(WebCore::JSMapLikeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSMapLike.h:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
(WebCore::JSReadOnlyMapLike::heapSnapshot):
(WebCore::JSReadOnlyMapLikeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSReadOnlyMapLike.h:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObject::heapSnapshot):
(WebCore::JSTestActiveDOMObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::JSTestCEReactions::heapSnapshot):
(WebCore::JSTestCEReactionsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCEReactions.h:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::JSTestCEReactionsStringifier::heapSnapshot):
(WebCore::JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::JSTestCallTracer::heapSnapshot):
(WebCore::JSTestCallTracerOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCallTracer.h:
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructor::heapSnapshot):
(WebCore::JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::heapSnapshot):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
(WebCore::JSTestDOMJIT::heapSnapshot):
- bindings/scripts/test/JS/JSTestDOMJIT.h:
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::JSTestEnabledBySetting::heapSnapshot):
(WebCore::JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestEnabledBySetting.h:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructor::heapSnapshot):
- bindings/scripts/test/JS/JSTestEventConstructor.h:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTarget::heapSnapshot):
- bindings/scripts/test/JS/JSTestEventTarget.h:
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestException::heapSnapshot):
(WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachable::heapSnapshot):
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::heapSnapshot):
(WebCore::JSTestGlobalObjectOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestIndexedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::JSTestIndexedSetterThrowingException::heapSnapshot):
(WebCore::JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestIndexedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::heapSnapshot):
(WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::JSTestInterfaceLeadingUnderscore::heapSnapshot):
(WebCore::JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::JSTestIterable::heapSnapshot):
(WebCore::JSTestIterableOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestIterable.h:
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListener::heapSnapshot):
(WebCore::JSTestMediaQueryListListenerOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructor::heapSnapshot):
(WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedConstructor.h:
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::JSTestNamedDeleterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::JSTestNamedDeleterThrowingException::heapSnapshot):
(WebCore::JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::JSTestNamedDeleterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::JSTestNamedDeleterWithIndexedGetter::heapSnapshot):
(WebCore::JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::JSTestNamedGetterCallWith::heapSnapshot):
(WebCore::JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::JSTestNamedGetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::JSTestNamedGetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::heapSnapshot):
(WebCore::JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::heapSnapshot):
(WebCore::JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::heapSnapshot):
(WebCore::JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::heapSnapshot):
(WebCore::JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::heapSnapshot):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
(WebCore::JSTestNamedSetterWithOverrideBuiltins::heapSnapshot):
(WebCore::JSTestNamedSetterWithOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
(WebCore::JSTestNamedSetterWithUnforgableProperties::heapSnapshot):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::heapSnapshot):
(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNode::heapSnapshot):
- bindings/scripts/test/JS/JSTestNode.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::heapSnapshot):
(WebCore::JSTestObjOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructors::heapSnapshot):
(WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::JSTestOverloadedConstructorsWithSequence::heapSnapshot):
(WebCore::JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltins::heapSnapshot):
(WebCore::JSTestOverrideBuiltinsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::heapSnapshot):
(WebCore::JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::JSTestPromiseRejectionEvent::heapSnapshot):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
(WebCore::JSTestSerialization::heapSnapshot):
(WebCore::JSTestSerializationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestSerialization.h:
- bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
(WebCore::JSTestSerializationIndirectInheritance::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
(WebCore::JSTestSerializationInherit::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationInherit.h:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
(WebCore::JSTestSerializationInheritFinal::heapSnapshot):
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterface::heapSnapshot):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::JSTestStringifier::heapSnapshot):
(WebCore::JSTestStringifierOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifier.h:
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::JSTestStringifierAnonymousOperation::heapSnapshot):
(WebCore::JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::JSTestStringifierNamedOperation::heapSnapshot):
(WebCore::JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::JSTestStringifierOperationImplementedAs::heapSnapshot):
(WebCore::JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::JSTestStringifierOperationNamedToString::heapSnapshot):
(WebCore::JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::JSTestStringifierReadOnlyAttribute::heapSnapshot):
(WebCore::JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::JSTestStringifierReadWriteAttribute::heapSnapshot):
(WebCore::JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefs::heapSnapshot):
(WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):
- bindings/scripts/test/JS/JSTestTypedefs.h:
- dom/Document.idl:
- page/DOMWindow.idl:
Source/WebInspectorUI:
Make a way to dump information about the GC heap that is useful for looking for leaked
or abandoned objects. This dump is obtained (on Apple platforms) via:
notifyutil -p com.apple.WebKit.dumpGCHeap
which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
This leverages the heap snapshot used by Web Inspector, adding an alternate format for
the snapshot JSON that adds additional data about objects and why they are GC roots.
The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
that need to decorate the heap snapshot cell data with things like the document URL.
GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
to a file in /tmp. The file path is printed out to the system log.
- UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot):
Tools:
Add a viewer for GC heap snapshots. A snapshot JSON file can be dragged into this
page for inspection (or set via the 'filename' URL parameter).
For now, this page shows all objects, all roots, and the shortest path from a root
to all HTMLDocuments and Windows.
- GCHeapInspector/gc-heap-inspector.html: Added.
- GCHeapInspector/heap-analysis/HeapSnapshot.js: Copied from Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js.
- GCHeapInspector/script/interface.js: Added.
- 9:08 PM Changeset in webkit [235270] by
-
- 5 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234990. rdar://problem/43667266
- 9:06 PM Inspecting the GC heap created by
- 8:49 PM WikiStart edited by
- (diff)
- 8:41 PM Changeset in webkit [235269] by
-
- 2 edits in trunk/LayoutTests
Add a flaky failing test expectation to fast/files/blob-network-process-crash.html
while we investigate the root cause in webkit.org/b/188911.
- platform/wk2/TestExpectations:
- 7:01 PM Changeset in webkit [235268] by
-
- 3 edits2 adds in trunk
initKeyboardEvent doesn't clear CapsLock state
https://bugs.webkit.org/show_bug.cgi?id=188909
Reviewed by Wenson Hsieh.
Source/WebCore:
Fixed the bug by not preserving CapsLock state in setModifierKeys variant which takes boolean
for altGraphKey, which is only called by KeyboardEvent::initKeyboardEvent.
Test: fast/events/init-event-clears-capslock.html
- dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::setModifierKeys):
LayoutTests:
Added a regression test. Note that altGraph is only supported in WebKit
so Chrome and Firefox would fail to reset it via initKeyboardEvent.
- fast/events/init-event-clears-capslock-expected.txt: Added.
- fast/events/init-event-clears-capslock.html: Added.
- 6:33 PM Changeset in webkit [235267] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 6:31 PM Changeset in webkit [235266] by
-
- 28 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234941. rdar://problem/43667266
- 5:59 PM Changeset in webkit [235265] by
-
- 120 edits in trunk/Source/WebKit
Use unified build for UIProcess
https://bugs.webkit.org/show_bug.cgi?id=185014
Reviewed by Alex Christensen.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]):
- UIProcess/API/glib/IconDatabase.cpp:
- UIProcess/API/gtk/PageClientImpl.cpp:
- UIProcess/API/gtk/WebKitColorChooser.cpp:
- UIProcess/API/gtk/WebKitPopupMenu.cpp:
- UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
- UIProcess/ApplicationStateTracker.mm:
- UIProcess/Authentication/mac/WebCredentialMac.mm:
- UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:
- UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
- UIProcess/Automation/mac/WebAutomationSessionMac.mm:
- UIProcess/Cocoa/NavigationState.mm:
- UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
- UIProcess/Cocoa/ViewGestureController.cpp:
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
(-[WKWebViewContentProviderRegistry addPage:]):
(-[WKWebViewContentProviderRegistry removePage:]):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKTextTouchBarItemController itemForIdentifier:]):
(WebKit::WebViewImpl::performDragOperation):
- UIProcess/Downloads/DownloadProxy.cpp:
- UIProcess/DrawingAreaProxy.cpp:
- UIProcess/Gamepad/UIGamepad.cpp:
- UIProcess/Gamepad/UIGamepadProvider.cpp:
- UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:
- UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
- UIProcess/Network/NetworkProcessProxy.cpp:
- UIProcess/Notifications/WebNotificationManagerProxy.cpp:
- UIProcess/PerActivityStateCPUUsageSampler.cpp:
- UIProcess/Plugins/PluginInfoStore.cpp:
- UIProcess/Plugins/PluginProcessProxy.cpp:
- UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
- UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
- UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
- UIProcess/RemoteWebInspectorProxy.cpp:
- UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
- UIProcess/ServiceWorkerProcessProxy.cpp:
- UIProcess/Storage/StorageProcessProxy.cpp:
- UIProcess/SuspendedPageProxy.cpp:
- UIProcess/TextCheckerCompletion.cpp:
- UIProcess/UIMessagePortChannelProvider.cpp:
- UIProcess/UserMediaPermissionCheckProxy.cpp:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
- UIProcess/VisitedLinkStore.cpp:
- UIProcess/WKInspectorHighlightView.mm:
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):
- UIProcess/WebBackForwardList.cpp:
- UIProcess/WebContextMenuListenerProxy.cpp:
- UIProcess/WebCookieManagerProxy.cpp:
- UIProcess/WebEditCommandProxy.cpp:
- UIProcess/WebFrameProxy.cpp:
- UIProcess/WebFullScreenManagerProxy.cpp:
- UIProcess/WebInspectorProxy.cpp:
- UIProcess/WebNavigationState.cpp:
- UIProcess/WebOpenPanelResultListenerProxy.cpp:
- UIProcess/WebPageInjectedBundleClient.cpp:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebProcessPool.cpp:
- UIProcess/WebProcessProxy.cpp:
- UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
- UIProcess/WebURLSchemeHandler.cpp:
- UIProcess/WebURLSchemeTask.cpp:
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
- UIProcess/ios/DragDropInteractionState.mm:
- UIProcess/ios/InputViewUpdateDeferrer.mm:
- UIProcess/ios/PageClientImplIOS.mm:
(-[WKEditCommandObjC initWithWebEditCommandProxy:]):
(-[WKEditCommandObjC command]):
- UIProcess/ios/SmartMagnificationController.mm:
- UIProcess/ios/TextCheckerIOS.mm:
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
- UIProcess/ios/WKActionSheetAssistant.mm:
(presentationStyleForView):
- UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView initWithFrame:webView:]):
(-[WKApplicationStateTrackingView _applicationDidEnterBackground]):
(-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]):
(-[WKApplicationStateTrackingView _applicationWillEnterForeground]):
- UIProcess/ios/WKGeolocationProviderIOS.mm:
(-[WKGeolocationProviderIOS _startUpdating]):
(-[WKGeolocationProviderIOS _stopUpdating]):
(-[WKGeolocationProviderIOS _setEnableHighAccuracy:]):
(-[WKGeolocationProviderIOS init]):
(-[WKGeolocationProviderIOS initWithProcessPool:]):
(-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:completionHandler:view:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKLegacyCoreLocationProvider positionChanged:]):
- UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator startAnimatedScroll]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
- UIProcess/ios/WKLegacyPDFView.mm:
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView _systemContentInset]):
- UIProcess/ios/WKSystemPreviewView.mm:
- UIProcess/ios/WebPageProxyIOS.mm:
- UIProcess/mac/CorrectionPanel.mm:
(correctionIndicatorType):
- UIProcess/mac/PageClientImplMac.mm:
- UIProcess/mac/RemoteWebInspectorProxyMac.mm:
(-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]):
- UIProcess/mac/TextCheckerMac.mm:
- UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
- UIProcess/mac/ViewGestureControllerMac.mm:
- UIProcess/mac/ViewSnapshotStore.mm:
- UIProcess/mac/WKFullKeyboardAccessWatcher.mm:
(-[WKFullKeyboardAccessWatcher notifyAllProcessPools]):
- UIProcess/mac/WKFullScreenWindowController.mm:
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::interface const):
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController windowDidEnterFullScreen:]):
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
(-[WKFullScreenWindowController _manager]):
(-[WKFullScreenWindowController _replaceView:with:]):
(zoomAnimation):
(createMask):
(maskAnimation):
- UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]):
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController menuItem:maxSizeForPoint:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):
- UIProcess/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController initWithInspectedPage:]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController configuration]):
(-[WKInspectorViewController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WKInspectorViewController inspectorWKWebViewReload:]):
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _expectedPreviewCallbackForRect:]):
(pageDidDrawToImage):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView _pageForRect:]):
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):
(-[WKPrintingView rectForPage:]):
- UIProcess/mac/WKTextFinderClient.mm:
(-[WKTextFinderClient initWithPage:view:]):
(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
(-[WKTextFinderClient getSelectedText:]):
(arrayFromRects):
(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]):
(-[WKTextFinderClient didGetImageForMatchResult:]):
- UIProcess/mac/WKTextInputWindowController.mm:
- UIProcess/mac/WKViewLayoutStrategy.mm:
(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
- UIProcess/mac/WebColorPickerMac.mm:
- UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):
- UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter initWithWebInspectorProxy:]):
- UIProcess/mac/WebPageProxyMac.mm:
- UIProcess/mac/WebPopupMenuProxyMac.mm:
- UIProcess/win/PageClientImpl.cpp:
- UIProcess/win/TextCheckerWin.cpp:
- UIProcess/win/WebContextMenuProxyWin.cpp:
- UIProcess/win/WebPopupMenuProxyWin.cpp:
- UIProcess/win/WebView.cpp:
- UIProcess/wpe/TextCheckerWPE.cpp:
- UIProcess/wpe/WebPasteboardProxyWPE.cpp:
- WebKit.xcodeproj/project.pbxproj:
- 5:43 PM Changeset in webkit [235264] by
-
- 2 edits in trunk/LayoutTests
Store the timer we scheduled in the global object.
The underlying bug is tracked by https://webkit.org/b/188911.
- fast/files/blob-network-process-crash.html:
- 5:16 PM Changeset in webkit [235263] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the Windows build after r235245.
- html/InputMode.cpp:
(WebCore::stringForInputMode):
- 4:57 PM Changeset in webkit [235262] by
-
- 5 edits1 add in trunk/Websites/bugs.webkit.org
EWS bubbles are being hidden due to lack of space.
https://bugs.webkit.org/show_bug.cgi?id=188607
Reviewed by Daniel Bates.
- PrettyPatch/PrettyPatch.rb:
- code-review.js:
- js/status-bubble.js: Added.
Refactor Review Patch page so that the postMessage to resize EWS iframes may be used on other pages too.
- template/en/default/attachment/edit.html.tmpl:
- template/en/default/attachment/list.html.tmpl:
Resize EWS iframes via postMessage on bug page and attachment details page.
- 4:57 PM Changeset in webkit [235261] by
-
- 22 edits in trunk/Source
JSRunLoopTimer may run part of a member function after it's destroyed
https://bugs.webkit.org/show_bug.cgi?id=188426
Reviewed by Mark Lam.
Source/JavaScriptCore:
When I was reading the JSRunLoopTimer code, I noticed that it is possible
to end up running timer code after the class had been destroyed.
The issue I spotted was in this function:
`
void JSRunLoopTimer::timerDidFire()
{
JSLock* apiLock = m_apiLock.get();
if (!apiLock) {
Likely a buggy usage: the timer fired while JSRunLoopTimer was being destroyed.
return;
}
HERE
std::lock_guard<JSLock> lock(*apiLock);
RefPtr<VM> vm = apiLock->vm();
if (!vm) {
The VM has been destroyed, so we should just give up.
return;
}
doWork();
}
`
Look at the comment 'HERE'. Let's say that the timer callback thread gets context
switched before grabbing the API lock. Then, some other thread destroys the VM.
And let's say that the VM owns (perhaps transitively) this timer. Then, the
timer would run code and access member variables after it was destroyed.
This patch fixes this issue by introducing a new timer manager class.
This class manages timers on a per VM basis. When a timer is scheduled,
this class refs the timer. It also calls the timer callback while actively
maintaining a +1 ref to it. So, it's no longer possible to call the timer
callback after the timer has been destroyed. However, calling a timer callback
can still race with the VM being destroyed. We continue to detect this case and
bail out of the callback early.
This patch also removes a lot of duplicate code between GCActivityCallback
and JSRunLoopTimer.
- heap/EdenGCActivityCallback.cpp:
(JSC::EdenGCActivityCallback::doCollection):
(JSC::EdenGCActivityCallback::lastGCLength):
(JSC::EdenGCActivityCallback::deathRate):
- heap/EdenGCActivityCallback.h:
- heap/FullGCActivityCallback.cpp:
(JSC::FullGCActivityCallback::doCollection):
(JSC::FullGCActivityCallback::lastGCLength):
(JSC::FullGCActivityCallback::deathRate):
- heap/FullGCActivityCallback.h:
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::doWork):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::didAllocate):
(JSC::GCActivityCallback::willCollect):
(JSC::GCActivityCallback::cancel):
(JSC::GCActivityCallback::cancelTimer): Deleted.
(JSC::GCActivityCallback::nextFireTime): Deleted.
- heap/GCActivityCallback.h:
- heap/Heap.cpp:
(JSC::Heap::reportAbandonedObjectGraph):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didAllocate):
- heap/IncrementalSweeper.cpp:
(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::doSweep):
(JSC::IncrementalSweeper::sweepNextBlock):
(JSC::IncrementalSweeper::startSweeping):
(JSC::IncrementalSweeper::stopSweeping):
- heap/IncrementalSweeper.h:
- heap/StopIfNecessaryTimer.cpp:
(JSC::StopIfNecessaryTimer::doWork):
(JSC::StopIfNecessaryTimer::scheduleSoon):
- heap/StopIfNecessaryTimer.h:
- runtime/JSRunLoopTimer.cpp:
(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::shared):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::unregisterVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::timeUntilFire):
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop):
(JSC::JSRunLoopTimer::timerDidFire):
(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::timeUntilFire):
(JSC::JSRunLoopTimer::setTimeUntilFire):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::timerDidFireCallback): Deleted.
(JSC::JSRunLoopTimer::scheduleTimer): Deleted.
- runtime/JSRunLoopTimer.h:
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
- runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::doWork):
(JSC::PromiseDeferredTimer::runRunLoop):
(JSC::PromiseDeferredTimer::addPendingPromise):
(JSC::PromiseDeferredTimer::hasPendingPromise):
(JSC::PromiseDeferredTimer::hasDependancyInPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):
(JSC::PromiseDeferredTimer::scheduleWorkSoon):
- runtime/PromiseDeferredTimer.h:
- runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::~VM):
(JSC::VM::setRunLoop):
(JSC::VM::registerRunLoopTimer): Deleted.
(JSC::VM::unregisterRunLoopTimer): Deleted.
- runtime/VM.h:
(JSC::VM::runLoop const):
- wasm/js/WebAssemblyPrototype.cpp:
(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):
Source/WebCore:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformThreadBody):
- page/linux/ResourceUsageThreadLinux.cpp:
(WebCore::ResourceUsageThread::platformThreadBody):
- 4:37 PM Changeset in webkit [235260] by
-
- 12 edits in trunk/Source/WebKit
Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=188765
<rdar://problem/43633183>
Reviewed by Geoffrey Garen.
Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move
legacy default paths to API::WebsiteDataStore, which already stores default paths for
non-legacy cases.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/win/WebProcessPoolWin.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/wpe/WebProcessPoolWPE.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- 4:37 PM Changeset in webkit [235259] by
-
- 6 edits in trunk
Add new _webViewRequestPointerLock SPI with a completionHandler
https://bugs.webkit.org/show_bug.cgi?id=188907
<rdar://problem/35871109>
Reviewed by Andy Estes.
Source/WebKit:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::requestPointerLock):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[PointerLockDelegate _webViewRequestPointerLock:completionHandler:]):
(-[PointerLockDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- 4:36 PM Changeset in webkit [235258] by
-
- 9 edits in trunk
Unreviewed, rolling out r235129.
broke internal builds
Reverted changeset:
"Allow creating WeakPtrs to const objects"
https://bugs.webkit.org/show_bug.cgi?id=188785
https://trac.webkit.org/changeset/235129
- 4:32 PM Changeset in webkit [235257] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: fix typos in some compositing reasons
https://bugs.webkit.org/show_bug.cgi?id=188905
<rdar://problem/43624825>
Reviewed by Simon Fraser.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
(WI.LayerTreeDetailsSidebarPanel):
- UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView.prototype._updateReasonsList):
(WI.Layers3DContentView):
- 4:19 PM Changeset in webkit [235256] by
-
- 3 edits in trunk/Source/WebCore
[iOS] Test editing/undo/replace-text-in-node-preserving-markers-crash.html crashes
https://bugs.webkit.org/show_bug.cgi?id=188898
Reviewed by Simon Fraser.
Not all document markers may have a dictation metadata on iOS.
Currently we assume that every marker has dictation alternatives (i.e. DocumentMarker::alternatives()
can be called) when deleting a selection preserving document markers on iOS. However, only markers
for dictation may have dictation alternatives. For example, document markers for misspelled words do
not have dictation metadata by definition. Instead of assuming every marker has dictation alternatives
on iOS we need to check the marker type to determine whether it has associated dictation metadata and
invoke the appropriate DocumentMarkerController::addMarker() overload.
- dom/DocumentMarker.h:
(WebCore::DocumentMarker::isDictation const): Added.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers): Only access DocumentMarker::alternatives()
and add a dictation marker on iOS if the marker is a dictation marker.
- 4:11 PM Changeset in webkit [235255] by
-
- 7 edits in trunk/Websites/perf.webkit.org
Show t-test results based on individual measurements to analysis task page.
https://bugs.webkit.org/show_bug.cgi?id=188425
Reviewed by Ryosuke Niwa.
Added comparison for individual iterations in analysis task page.
Added comparison for individual iterations for notification on A/B tests completion.
Refactored t-distribution inverse lookup to any degree of freedom with 5 significant figures.
- public/shared/statistics.js: Refactored t-distribution inverse lookup function and adapted this
change to all invocations.
(Statistics.new.this.supportedConfidenceIntervalProbabilities):
(Statistics.new.this.supportedOneSideTTestProbabilities):
(Statistics.new.this.confidenceIntervalDelta):
(Statistics.new.sampleMeanAndVarianceForMultipleSamples):
(Statistics.new.this.probabilityRangeForWelchsT):
(Statistics.new.this.probabilityRangeForWelchsTFromTwoSampleSets):
(Statistics.new.this._determinetwoSidedProbabilityBoundaryForWelchsT):
(Statistics.new.this.computeWelchsT):
(Statistics.new.this._computeWelchsTFromStatistics):
(Statistics.new.this.minimumTForOneSidedProbability): Function that does t-distribution inverse lookup.
- public/v3/components/analysis-results-viewer.js: Adapted TestGroup.compareTestResults change.
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._measurementsForCommitSet):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._computeTestGroupStatus):
(AnalysisResultsViewer.TestGroupStackingBlock.prototype._valuesForCommitSet): Deleted.
- public/v3/components/test-group-results-viewer.js: Show both comparisions for both individual and mean.
(TestGroupResultsViewer.prototype._renderResultsTable):
(TestGroupResultsViewer.prototype._buildRowForMetric.):
(TestGroupResultsViewer.prototype._buildValueMap):
- public/v3/models/test-group.js:
(TestGroup.compareTestResults): Added comparison for individual iterations.
- tools/js/test-group-result-page.js:
(TestGroupResultPage.prototype._constructTableForMetric):
(TestGroupResultPage.prototype.get styleTemplate):
(TestGroupResultPage):
(TestGroupResultPage.prototype._URLForAnalysisTask): Renamed to '_resultsForTestGroup'
- unit-tests/statistics-tests.js: Updated and added unit tests.
- 3:57 PM Changeset in webkit [235254] by
-
- 30 edits in trunk/Source
Move vmEntryGlobalObject() to VM from CallFrame.
https://bugs.webkit.org/show_bug.cgi?id=188900
<rdar://problem/43655753>
Reviewed by Michael Saboff.
Source/JavaScriptCore:
Also introduced CallFrame::isGlobalExec() which makes use of one property of
GlobalExecs to identify them i.e. GlobalExecs have null callerFrame and returnPCs.
CallFrame::initGlobalExec() ensures this.
In contrast, normal CallFrames always have a callerFrame (because they must at
least be preceded by a VM EntryFrame) and a returnPC (at least return to the
VM entry glue).
- API/APIUtils.h:
(handleExceptionIfNeeded):
(setException):
- API/JSBase.cpp:
(JSEvaluateScript):
(JSCheckScriptSyntax):
- API/JSContextRef.cpp:
(JSGlobalContextRetain):
(JSGlobalContextRelease):
(JSGlobalContextCopyName):
(JSGlobalContextSetName):
(JSGlobalContextGetRemoteInspectionEnabled):
(JSGlobalContextSetRemoteInspectionEnabled):
(JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextGetDebuggerRunLoop):
(JSGlobalContextSetDebuggerRunLoop):
(JSGlobalContextGetAugmentableInspectorController):
- API/JSValue.mm:
(reportExceptionToInspector):
- API/glib/JSCClass.cpp:
(jscContextForObject):
- API/glib/JSCContext.cpp:
(jsc_context_evaluate_in_object):
- debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::vmEntryGlobalObject const):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):
- interpreter/CallFrame.cpp:
(JSC::CallFrame::vmEntryGlobalObject): Deleted.
- interpreter/CallFrame.h:
(JSC::ExecState::scope const):
(JSC::ExecState::noCaller):
(JSC::ExecState::isGlobalExec const):
- interpreter/Interpreter.cpp:
(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
(JSC::Interpreter::debug):
- runtime/CallData.cpp:
(JSC::profiledCall):
- runtime/Completion.cpp:
(JSC::evaluate):
(JSC::profiledEvaluate):
(JSC::evaluateWithScopeExtension):
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::linkAndEvaluateModule):
(JSC::importModule):
- runtime/ConstructData.cpp:
(JSC::profiledConstruct):
- runtime/Error.cpp:
(JSC::getStackTrace):
- runtime/VM.cpp:
(JSC::VM::throwException):
(JSC::VM::vmEntryGlobalObject const):
- runtime/VM.h:
Source/WebCore:
No new tests needed because this patch does not introduce new functionality.
- bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::callerGlobalObject):
(WebCore::toJSDOMGlobalObject): Deleted.
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::firstDOMWindow):
- bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
- bridge/objc/WebScriptObject.mm:
(WebCore::addExceptionToConsole):
- bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::convertValueToObjcObject):
- bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue):
- testing/Internals.cpp:
(WebCore::Internals::cloneArrayBuffer):
Source/WebKitLegacy/mac:
- WebView/WebScriptDebugger.mm:
(WebScriptDebugger::sourceParsed):
- 3:53 PM Changeset in webkit [235253] by
-
- 4 edits in trunk
[CMake] Have checks are not getting set inside CMake properly
https://bugs.webkit.org/show_bug.cgi?id=188901
Reviewed by Michael Catanzaro.
.:
Make sure the variable's value is sent to SET_AND_EXPOSE_TO_BUILD
within the WEBKIT_CHECK_HAVE_* macros.
- Source/cmake/WebKitFeatures.cmake:
PerformanceTests:
Add notification that MallocBench is disabled.
- CMakeLists.txt:
- 3:50 PM Changeset in webkit [235252] by
-
- 3 edits in trunk/Tools
API tests should output json results
https://bugs.webkit.org/show_bug.cgi?id=188869
<rdar://problem/43615652>
Reviewed by Aakash Jain.
JSON output for API tests is of the form:
{
"Failed": [{"name": <test name>, "output": <test log>}],
"Timedout": [...],
"Skipped": [...],
"Crashed": [...]
}
Tests which are successful are not displayed in the json output.
- Scripts/webkitpy/api_tests/manager.py:
(Manager.run): Print test results to provided file as a json dictionary.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(run): Pass json option.
(parse_args): Add --json-output flag.
- 3:23 PM Changeset in webkit [235251] by
-
- 20 edits2 adds in trunk
[Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=188829
Reviewed by Tim Horton.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Test: http/tests/ssl/applepay/ApplePaySessionV4.html
- Configurations/FeatureDefines.xcconfig:
- testing/MockPaymentCoordinator.cpp:
(WebCore::MockPaymentCoordinator::supportsVersion):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::supportsVersion):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html:
- http/tests/ssl/applepay/ApplePaySessionV3-expected.txt:
- http/tests/ssl/applepay/ApplePaySessionV3.html:
- http/tests/ssl/applepay/ApplePaySessionV4-expected.txt: Added.
- http/tests/ssl/applepay/ApplePaySessionV4.html: Added.
- platform/mac-wk2/TestExpectations:
- 3:13 PM Changeset in webkit [235250] by
-
- 1 copy in tags/Safari-606.1.36.10.5
Tag Safari-606.1.36.10.5.
- 2:43 PM Changeset in webkit [235249] by
-
- 13 edits1 copy in trunk/Tools
[WSL] Ternary expressions appear to be unimplemented
https://bugs.webkit.org/show_bug.cgi?id=178981
Reviewed by Saam Barati.
Implement ternary statements. These can be both lvalues and rvalues. (a ? b : c ? d : e)
is parsed as (a ? b : (c ? d : e)).
- WebGPUShadingLanguageRI/All.js:
- WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/Evaluator.js:
(Evaluator.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/NormalUsePropertyResolver.js:
(NormalUsePropertyResolver.prototype.visitTernaryExpression):
(NormalUsePropertyResolver):
- WebGPUShadingLanguageRI/Parse.js:
(parsePossibleTernaryConditional):
- WebGPUShadingLanguageRI/PropertyResolver.js:
(PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder.prototype.visitTernaryExpression):
(PropertyResolver.prototype._visitRValuesWithinLValue.RValueFinder):
(PropertyResolver.prototype._visitRValuesWithinLValue):
- WebGPUShadingLanguageRI/Rewriter.js:
(Rewriter.prototype.visitTernaryExpression):
- WebGPUShadingLanguageRI/SPIRV.html:
- WebGPUShadingLanguageRI/Test.html:
- WebGPUShadingLanguageRI/Test.js:
- WebGPUShadingLanguageRI/Visitor.js:
(Visitor.prototype.visitProtocolDecl):
- WebGPUShadingLanguageRI/index.html:
- 2:36 PM Changeset in webkit [235248] by
-
- 30 edits2 moves8 adds1 delete in trunk
Web Inspector: support breakpoints for timers and animation-frame events
https://bugs.webkit.org/show_bug.cgi?id=188778
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/Debugger.json:
Add
AnimationFrame
andTimer
types to the list of pause reasons.
- inspector/protocol/DOMDebugger.json:
Introduced
setEventBreakpoint
andremoveEventBreakpoint
to replace the more specific:
setEventListenerBreakpoint
removeEventListenerBreakpoint
setInstrumentationBreakpoint
removeInstrumentationBreakpoint
Also created an
EventBreakpointType
to enumerate the available types of event breakpoints.
- inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator.generate_output):
(CppProtocolTypesHeaderGenerator._generate_forward_declarations_for_binding_traits):
(CppProtocolTypesHeaderGenerator._generate_declarations_for_enum_conversion_methods):
(CppProtocolTypesHeaderGenerator._generate_hash_declarations): Added.
GenerateDefaultHash
for allenum class
used by inspector protocols.
- inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
- inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
- inspector/scripts/tests/generic/expected/enum-values.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result:
- inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
- inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
Source/WebCore:
The original implementation of "instrumentation" breakpoints relied upon the frontend
sending somewhat arbitrary strings when enabling breakpoints for specific events. As an
example, setting a breakpoint forrequestAnimationFrame
expects"animationFrameFired"
as the string, which doesn't make much sense. This patch removes the usage of these strings
and instead expects the agent to implement a method that matches what is happening.
Tests: inspector/dom-debugger/event-animation-frame-breakpoints.html
inspector/dom-debugger/event-listener-breakpoints.html
inspector/dom-debugger/event-timer-breakpoints.html
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willFireTimer):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
(WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded): Deleted.
- inspector/agents/InspectorDOMDebuggerAgent.h:
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint): Added.
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint): Added.
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::willFireTimer): Added.
(WebCore::InspectorDOMDebuggerAgent::willFireAnimationFrame): Added.
(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded): Deleted.
Unify the event listener and instrumentation breakpoint commands into a single method,
setEventBreakpoint
, that takes in both anEventBreakpointType
andeventName
.
- page/DOMTimer.cpp:
(WebCore::DOMTimer::fired):
Source/WebInspectorUI:
Add a
type
toWI.EventBreakpoint
that matchesDOMDebugger.EventBreakpointType
:
AnimationFrame
forrequestAnimationFrame
Listener
for any named DOM EventTimer
forsetTimeout
andsetInterval
Modified
WI.EventBreakpointPopover
to provide ways for selecting these other types, which
is then passed toWI.DOMDebuggerManager
, which now calls through to the newly added
DOMDebugger.removeEventBreakpoint
andDOMDebugger.setEventBreakpoint
that sets
breakpoints for all event types.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/EventBreakpointAnimationFrame.svg: Added.
- UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg.
- UserInterface/Images/EventBreakpointTimer.svg: Added.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.supportsEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted.
- UserInterface/Controllers/DOMTreeManager.js:
(WI.DOMTreeManager.prototype.setBreakpointForEventListener):
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype._pauseReasonFromPayload):
- UserInterface/Models/EventBreakpoint.js:
(WI.EventBreakpoint):
(WI.EventBreakpoint.fromPayload):
(WI.EventBreakpoint.prototype.get type): Added.
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
- UserInterface/Views/EventBreakpointPopover.js:
(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get breakpoint): Added.
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype.show.createOption): Added.
(WI.EventBreakpointPopover.prototype.dismiss): Added.
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):
(WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added.
(WI.EventBreakpointPopover.prototype.get result): Deleted.
(WI.EventBreakpointPopover.prototype.get value): Deleted.
- UserInterface/Views/EventBreakpointPopover.css:
(.popover .event-breakpoint-content > .event-type): Added.
(.popover .event-breakpoint-content > input): Deleted.
- UserInterface/Views/EventBreakpointTreeElement.js:
(WI.EventBreakpointTreeElement):
- UserInterface/Views/EventBreakpointTreeElement.css:
(.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added.
(.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted.
LayoutTests:
- inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt: Added.
- inspector/dom-debugger/event-animation-frame-breakpoints.html: Added.
- inspector/dom-debugger/event-breakpoint-with-navigation.html:
- inspector/dom-debugger/event-timer-breakpoints-expected.txt: Added.
- inspector/dom-debugger/event-timer-breakpoints.html: Added.
- inspector/dom-debugger/event-listener-breakpoints-expected.txt: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints-expected.txt.
- inspector/dom-debugger/event-listener-breakpoints.html: Renamed from LayoutTests/inspector/dom-debugger/event-breakpoints.html.
- inspector/dom-debugger/resources/event-breakpoint-utilities.js: Added.
(TestPage.registerInitializer.window.teardown):
(TestPage.registerInitializer.window.failOnPause):
(TestPage.registerInitializer.window.addBreakpoint):
(TestPage.registerInitializer.window.removeBreakpoint):
(TestPage.registerInitializer.window.disableBreakpoint):
(TestPage.registerInitializer.window.awaitEvent):
- 2:31 PM Changeset in webkit [235247] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r234942.
Caused page loading issues in iTunes
Reverted changeset:
"Transition more WKWebViewConfiguration ivars to
API::PageConfiguration values"
https://bugs.webkit.org/show_bug.cgi?id=188663
https://trac.webkit.org/changeset/234942
- 2:26 PM Changeset in webkit [235246] by
-
- 1 copy in tags/Safari-606.1.36.1.9
Tag Safari-606.1.36.1.9.
- 2:24 PM Changeset in webkit [235245] by
-
- 18 edits4 moves4 adds in trunk
[iOS] Support the inputmode attribute on contenteditable elements
https://bugs.webkit.org/show_bug.cgi?id=188878
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/reflection-misc-expected.txt: Rebaseline.
Source/WebCore:
The inputmode attribute should apply to contenteditable elements, in addition to
textfield inputs and textareas.
Moved the inputmode attribute from HTMLInputElement.idl and
HTMLTextAreaElement.idl to HTMLElement.idl to reflect the specification.
Also moved all logic to convert between the InputMode enum and string values
into InputMode.cpp to avoid exposing unnecessary details to WebKit. Furthermore,
InputMode::Auto was renamed to InputMode::Unspecified to avoid confusion with the
specification.
Spec: https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute
Tests: fast/forms/inputmode-attribute-contenteditable.html
fast/forms/inputmode-attribute-input.html
fast/forms/inputmode-attribute-textarea.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::canonicalInputMode const):
(WebCore::HTMLElement::inputMode const):
(WebCore::HTMLElement::setInputMode):
- html/HTMLElement.h:
- html/HTMLElement.idl:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
- html/HTMLTextFormControlElement.cpp:
- html/HTMLTextFormControlElement.h:
- html/InputMode.cpp: Renamed from Source/WebCore/html/InputModeNames.cpp.
(WebCore::inputModeForAttributeValue):
(WebCore::stringForInputMode):
- html/InputMode.h: Renamed from Source/WebCore/html/InputModeNames.h.
Source/WebKit:
Ensured that the assistedNodeInformation for a contenteditable element reflects
the value of the element's inputmode attribute.
Moved logic to obtain the InputMode from the attribute value into WebCore.
- Shared/AssistedNodeInformation.h:
- UIProcess/ios/WKContentViewInteraction.mm:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
LayoutTests:
Added additional tests to verify the inputmode attribute is accessible on
HTMLElements.
- fast/forms/inputmode-attribute-contenteditable-expected.txt: Added.
- fast/forms/inputmode-attribute-contenteditable.html: Added.
- fast/forms/inputmode-attribute-input-expected.txt: Renamed from LayoutTests/fast/forms/inputmode-attribute-expected.txt.
- fast/forms/inputmode-attribute-input.html: Renamed from LayoutTests/fast/forms/inputmode-attribute.html.
- fast/forms/inputmode-attribute-textarea-expected.txt: Added.
- fast/forms/inputmode-attribute-textarea.html: Added.
- js/dom/dom-static-property-for-in-iteration-expected.txt: Rebaseline.
- 2:14 PM Changeset in webkit [235244] by
-
- 3 edits in tags/Safari-607.1.3/Source/WebKit
Revert r234942. rdar://problem/43655048
- 1:51 PM Changeset in webkit [235243] by
-
- 8 edits2 adds in trunk
Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
https://bugs.webkit.org/show_bug.cgi?id=188880
Reviewed by Saam Barati.
Source/WebKit:
Removed the debug assertion. WebContent process might be asking this network process
to unregister a blob registered from another network processs which had since crashed.
We could keep track of which blob had been registered with which network process
in WebContent process and avoid sending IPC to the network process but that's a lot of
house-keeping for virtually no benefit other than not hitting this assertion.
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::unregisterBlobURL):
Tools:
Fixed the bug that testRunner's terminateNetworkProcess, terminateServiceWorkerProcess, and terminateStorageProcess
were asynchronously terminating respective processes. Do so synchronously so that we can deterministically
test WebKit's behavior in layout tests.
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::terminateNetworkProcess):
(WTR::TestRunner::terminateServiceWorkerProcess):
(WTR::TestRunner::terminateStorageProcess):
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Added a layout test which demonstrates this debug assertion.
- TestExpectations:
- fast/files/blob-network-process-crash-expected.txt: Added.
- fast/files/blob-network-process-crash.html: Added.
- platform/wk2/TestExpectations:
- 1:20 PM Changeset in webkit [235242] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector:
console.inspect(sessionStorage)
first time does not show Session Storage content view if Storage tab was previously unvisited
https://bugs.webkit.org/show_bug.cgi?id=188801
Reviewed by Matt Baker.
- UserInterface/Base/Main.js:
(WI.tabContentViewClassForRepresentedObject):
(WI._storageWasInspected):
Since theWI.StorageSidebarPanel
is not created until theWI.StorageTabContentView
is
created, theWI.StorageManager.Event.DOMStorageObjectWasInspected
and
WI.StorageManager.Event.DatabaseWasInspected
events do not reach the sidebar. We should
follow whatWI._domNodeWasInspected
does and additionally callWI.showRepresentedObject
on the inspected object.
- 1:08 PM Changeset in webkit [235241] by
-
- 6 edits in trunk
[CMake] Add HAVE_MALLOC_TRIM definition
https://bugs.webkit.org/show_bug.cgi?id=188897
Reviewed by Konstantin Tokarev.
.:
Add CMake check for malloc_trim.
- Source/cmake/OptionsCommon.cmake:
PerformanceTests:
MallocBench should only be built on Apple platforms and platforms that
have malloc_trim.
- CMakeLists.txt:
Source/WTF:
Use HAVE(MALLOC_TRIM) check instead of GLIBC.
- wtf/linux/MemoryPressureHandlerLinux.cpp:
(WTF::MemoryPressureHandler::platformReleaseMemory):
- 1:06 PM Changeset in webkit [235240] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar
https://bugs.webkit.org/show_bug.cgi?id=188819
<rdar://problem/43579039>
Reviewed by Brian Burg.
- UserInterface/Models/ResourceCollection.js:
(WI.ResourceCollection.prototype.objectIsRequiredType):
- 12:58 PM Changeset in webkit [235239] by
-
- 2 edits in trunk/Source/WebKit
Remove keys of defaults that are no longer used in webProcessPool
https://bugs.webkit.org/show_bug.cgi?id=188855
Reviewed by Alex Christensen.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):
- 12:57 PM Changeset in webkit [235238] by
-
- 2 edits in trunk/Source/JavaScriptCore
YARR: Need to JIT compile a RegExp before using containsNestedSubpatterns flag
https://bugs.webkit.org/show_bug.cgi?id=188895
Reviewed by Mark Lam.
Found while working on another change. This will allow processing of nested
parenthesis that require saved ParenContext structures.
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::compile):
- 12:52 PM Changeset in webkit [235237] by
-
- 27 edits2 copies1 delete in trunk/Tools
[WHLSL] Allow native types to have type arguments (like "vector<float, 4>")
https://bugs.webkit.org/show_bug.cgi?id=188773
Reviewed by Filip Pizlo.
Before this patch, it was impossible to represent "native typedef vector<float, 4>" because NativeTypes couldn't have
typeArguments.
Previously, the way to identify a type was strictly by name, which was represented by a string. Therefore, when something like
"vector<int, 3>" was parsed, it would produce a TypeRef with the name "vector" and typeArguments [TypeRef, IntLiteral]. Then,
there was a pass to convert the TypeRef to have the name "int3" and no typeArguments. After this transformation, each type could
be uniquely identified by name. That name was then matched to the string-only NativeType name.
This is okay for vectors and matrices, but it is unfortunate for textures (e.g. Texture2D<float4>) because they don't have any
natural string-only name. In addition, the canonicalization would have to be made aware of the fact that Texture2D<float4> is
the same as Texture2D<vector<float, 4>>. Similarly, an author may wish to typedef float4 to a different name.
It would be possible to mangle the names of the texture types to something unique, but then we lose information about the inner
type. For example, if we did this, Visitor wouldn't recurse into the float4 when encountering Texture2D<float4> because that
information would be lost. This could potentially make operations like programWithUnnecessaryThingsRemoved() more difficult to
implement in the future.
So, it would be better to have each type uniquely identified by (name, typeArguments). TypeRef will therefore also have
typeArguments which are used to determine which type it is referencing. After this analysis is done to determine what each
TypeRef is referencing, subsequent passes shouldn't care about the typeArguments and should only care about the .type field
which had been set - this was true even before this patch.
This means that NameContext has to aggregate types that accept typeArguments into arrays, where each array holds all the Types
that have the same name but different typeArguments. Then, when we need to match a TypeRef with a Type, we can ask the
NameContext for the appropriate array. This is the same way that function resolution works.
We can use Node.unify() to determine whether a TypeRef matches a NativeType. Eventually, this will go away, but for now, this is
an okay start. This works just about the same way that function overload resolution works.
- WebGPUShadingLanguageRI/All.js:
- WebGPUShadingLanguageRI/CallExpression.js:
(CallExpression.prototype.resolve):
- WebGPUShadingLanguageRI/CheckTypesWithArguments.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js. After types
have been resolved, there should be no TypeRefs with name "vector" that don't have type arguments. This is just a sanity check.
(checkTypesWithArguments.TypeWithArgumentsChecker.prototype.visitTypeRef):
(checkTypesWithArguments.TypeWithArgumentsChecker):
(checkTypesWithArguments):
- WebGPUShadingLanguageRI/Checker.js:
(Checker.prototype.visitProgram): Program.types mirrors NameContext: it's a Map that maps strings to types. Because types with
typeArguments share names, this has to be updated to map strings to arrays for these types.
(Checker.prototype.visitTypeRef):
- WebGPUShadingLanguageRI/InferTypesForCall.js:
(inferTypesForCall): Don't know why this was here.
(inferTypesForTypeArguments): Same as inferTypesForCall, but this one is for matching type arguments.
- WebGPUShadingLanguageRI/Intrinsics.js: Adding the types. This patch also adds some scalar types like half, char, etc, but they
don't have any functions which accept them. Those will be tested in my next patch which adds math functions for these types. This
moves in the direction of matching the standard library in the spec.
(Intrinsics.cast):
(Intrinsics.bitwiseCast):
(Intrinsics.castToHalf):
(Intrinsics.):
(Intrinsics):
- WebGPUShadingLanguageRI/NameContext.js: Aggregate types with typeArguments into arrays.
(NameContext.prototype.add):
(NameContext.prototype.get let):
(NameContext.underlyingThings.prototype.else):
(NameContext.prototype.Symbol.iterator):
(NameContext):
- WebGPUShadingLanguageRI/NameResolver.js:
(NameResolver.prototype.visitTypeRef): Call TypeRef.resolve().
(NameResolver.prototype.visitCallExpression):
(NameResolver):
(NameResolver.prototype.visitVectorType): Deleted.
- WebGPUShadingLanguageRI/NativeType.js: NativeTypes can have type arguments now.
(NativeType):
(NativeType.prototype.get typeArguments):
(NativeType.prototype.toString):
(NativeType.create):
- WebGPUShadingLanguageRI/Prepare.js:
(let.prepare):
- WebGPUShadingLanguageRI/Program.js: Update to work with types aggregated into arrays.
(Program.prototype.add):
(Program.prototype.toString):
(Program):
- WebGPUShadingLanguageRI/RemoveTypeArguments.js: Removed.
- WebGPUShadingLanguageRI/ResolveNames.js: Update to work with types aggregated into arrays.
(resolveNamesInTypes):
- WebGPUShadingLanguageRI/ResolveOverloadImpl.js: Resolve the type overload for types with typeArguments.
- WebGPUShadingLanguageRI/ResolveTypeDefs.js: Update to work with types aggregated into arrays.
(resolveTypeDefsInTypes):
- WebGPUShadingLanguageRI/Rewriter.js: TypeRefs and Native/Vector types can have typeArguments.
(Rewriter.prototype.visitTypeRef):
(Rewriter.prototype.visitVectorType):
(Rewriter):
- WebGPUShadingLanguageRI/SPIRV.html:
- WebGPUShadingLanguageRI/StandardLibrary.js: Matches Intrinsics.
(bool.operator):
- WebGPUShadingLanguageRI/StatementCloner.js: Native types can have typeArguments.
(StatementCloner.prototype.visitNativeType):
- WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js: Vector types need constructors too.
(synthesizeDefaultConstructorOperator.FindAllTypes.prototype.visitVectorType):
(synthesizeDefaultConstructorOperator.FindAllTypes):
(synthesizeDefaultConstructorOperator):
- WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: No reason to distinguish between wrapping and instantiating a TypeRef.
(synthesizeStructAccessors.createTypeRef):
- WebGPUShadingLanguageRI/Test.html:
- WebGPUShadingLanguageRI/Test.js:
- WebGPUShadingLanguageRI/TypeOverloadResolutionFailure.js: Copied from Tools/WebGPUShadingLanguageRI/ResolveTypeDefs.js.
(TypeOverloadResolutionFailure):
(TypeOverloadResolutionFailure.prototype.get type):
(TypeOverloadResolutionFailure.prototype.get reason):
(TypeOverloadResolutionFailure.prototype.toString):
- WebGPUShadingLanguageRI/TypeRef.js:
(TypeRef.wrap):
(TypeRef.prototype.resolve): Figure out which item in the possibleOverloads array matches this.
(TypeRef.prototype.toString):
(TypeRef):
(TypeRef.instantiate): Deleted.
- WebGPUShadingLanguageRI/UnificationContext.js: We need to give literals a chance to assume their preferred type. This
adds this facility back into the compiler (it was previously deleted).
(UnificationContext.prototype.verify):
- WebGPUShadingLanguageRI/VectorType.js: Vector types have type arguments.
(VectorType):
(VectorType.prototype.get elementType):
(VectorType.prototype.get numElements):
(VectorType.prototype.get numElementsValue):
(VectorType.prototype.toString):
- WebGPUShadingLanguageRI/Visitor.js: Iterate over the typeArguments.
(Visitor.prototype.visitTypeRef):
(Visitor.prototype.visitNativeType):
(Visitor.prototype.visitVectorType):
(Visitor):
- WebGPUShadingLanguageRI/index.html:
- 12:51 PM Changeset in webkit [235236] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] First scroll gesture in pinned, non-rubber-banding WKWebView may fail to initiate back/forward swipe
https://bugs.webkit.org/show_bug.cgi?id=188894
<rdar://problem/43651434>
Reviewed by Tim Horton.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent): Set the rubber-band state on the ScrollingTree
synchronously rather than dispatching doing that to the scrolling thread. This is safe to
do because ScrollingTree synchrnoizes access to the rubber-band state with an internal
mutex.
- 12:48 PM Changeset in webkit [235235] by
-
- 2 edits in trunk/Source/WTF
[WTF] Add generic implementation for Memory querying
https://bugs.webkit.org/show_bug.cgi?id=188867
<rdar://problem/43630726>
Unreviewed build fix.
Adding MemoryPressureHandler::memoryMeasurementTimerFired was done
prematurely.
- wtf/generic/MemoryPressureHandlerGeneric.cpp:
(WTF::MemoryPressureHandler::memoryMeasurementTimerFired): Deleted.
- 12:43 PM Changeset in webkit [235234] by
-
- 3 edits3 adds in trunk
self.isSecureContext undefined in Service Worker
https://bugs.webkit.org/show_bug.cgi?id=188842
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.https-expected.txt: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/isSecureContext.serviceworker.js: Added.
(test):
Source/WebKit:
Enable isSecureContext runtime flag.
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
- 12:31 PM Changeset in webkit [235233] by
-
- 3 edits in trunk/Source/WebCore
[MediaStream] Store video preset sizes in a map
https://bugs.webkit.org/show_bug.cgi?id=188866
<rdar://problem/43622643>
Reviewed by Youenn Fablet.
No new tests, tested manually.
- platform/mediastream/mac/AVVideoCaptureSource.h:
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::initializeCapabilities):
(WebCore::AVVideoCaptureSource::sizeForPreset):
(WebCore::AVVideoCaptureSource::setPreset):
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions):
(WebCore::sizeForPreset): Deleted.
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions const): Deleted.
- 12:16 PM Changeset in webkit [235232] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, attempt to fix the build after r235230.
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
- 11:11 AM Changeset in webkit [235231] by
-
- 1 edit1 delete in trunk/Source/ThirdParty/libwebrtc
2018-08-23 youenn fablet <youennf@gmail.com>
Remove libwebrtc unneeded .exe file.
Unreviewed.
- Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.
- 10:32 AM Changeset in webkit [235230] by
-
- 3050 edits25 copies146 moves1061 adds216 deletes in trunk
2018-08-23 Youenn Fablet <youenn@apple.com>
Update libwebrtc up to 984f1a80c0
https://bugs.webkit.org/show_bug.cgi?id=188745
<rdar://problem/43539177>
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Update libwebrtc main code.
Update exported symbols and related applied modifications.
- CMakeLists.txt:
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
- Configurations/libwebrtc.xcconfig:
- Source/webrtc: refreshed
- WebKit/0001-Updating-webrtc.patch: Added.
- WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Removed.
- WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Removed.
- WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Removed.
- WebKit/0001-Using-VCP.patch: Removed.
- WebKit/0003-Fixing-VP8-files.patch: Removed.
- WebKit/0004-Removing-parameter-names-from-files-included-from-We.patch: Removed.
- WebKit/0005-Fix-RTC_FATAL.patch: Removed.
- WebKit/0006-Disabling-VP8.patch: Removed.
- WebKit/0007-Fix-RTC_STRINGIZE.patch: Removed.
- WebKit/0008-Fix-sanitizer.patch: Removed.
- WebKit/0009-Remove-dispatch_set_target_queue.patch: Removed.
- WebKit/0010-Fix-RTCVideoEncoderH264-CVPixelBuffer-leak.patch: Removed.
- WebKit/0011-Fix-AudioDeviceID-array-leak.patch: Removed.
- WebKit/0012-Add-WK-prefix-to-Objective-C-classes-and-protocols.patch: Removed.
- WebKit/0013-Fix-SafeSetError-use-after-move.patch: Removed.
- libwebrtc.xcodeproj/project.pbxproj:
Source/WebCore:
Updated implementation according new webrtc backend.
Instead of modifying libwebrtc header files, we disable unused parameter warning for such headers included in WebCore.
WebCore implementation is updated according new webrtc API, mostly AddRef/Release.
RealtimeOutgoingVideoSource now uses a pixel convolver to convert RGB pixel buffers as I420.
Covered by existing tests.
- CMakeLists.txt:
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::LibWebRTCMediaEndpoint::addTrack): (WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream): (WebCore::fillEncodingParameters): (WebCore::fillRtpParameters):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h: (WebCore::LibWebRTCMediaEndpoint::Release const):
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/RealtimeIncomingAudioSource.h:
- platform/mediastream/RealtimeIncomingVideoSource.h:
- platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::supportsSizeAndFrameRate): (WebCore::RealtimeMediaSource::supportsConstraint const): (WebCore::RealtimeMediaSource::supportsConstraints):
- platform/mediastream/RealtimeOutgoingAudioSource.h:
- platform/mediastream/RealtimeOutgoingVideoSource.h:
- platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp: (WebCore::GStreamerVideoDecoder::newSampleCallback):
- platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp: (WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder): (WebCore::GStreamerVideoEncoder::newSampleCallback):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: (WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer):
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: (WebCore::ConvertToI420): (WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated):
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
- platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm: Added. (WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
- testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::AddTrack):
- testing/MockLibWebRTCPeerConnection.h: (WebCore::MockRtpSender::GetParameters): (WebCore::MockRtpSender::SetParameters):
LayoutTests:
Updated tests according new webrtc backend.
- webrtc/libwebrtc/setLocalDescriptionCrash.html:
- webrtc/video-getParameters.html:
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
- web-platform-tests/webrtc/no-media-call-expected.txt:
- 10:20 AM Changeset in webkit [235229] by
-
- 6 edits in trunk
[Attachment Support] Attachment elements don't appear in drag images on macOS
https://bugs.webkit.org/show_bug.cgi?id=188823
<rdar://problem/43616378>
Reviewed by Tim Horton.
Source/WebCore:
Currently, attachment elements don't show up in the drag image snapshot on macOS. This is because only the
"Selection" phase is painted when generating a drag image on macOS, and many replaced renderers (with some
exceptions, such as RenderImage) only paint visible content during the "Foreground" phase. To fix this, we
override RenderAttachment::paintReplaced to paint the attachment in the case where the Selection phase is being
painted.
Tests: WKAttachmentTestsMac.DragAttachmentAsFilePromise
WKAttachmentTests.MoveAttachmentElementAsIconByDragging
- rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::paintReplaced):
- rendering/RenderAttachment.h:
- rendering/RenderThemeMac.mm:
(WebCore::titleTextColorForAttachment):
(WebCore::AttachmentLayout::layOutTitle):
Plumb an AttachmentLayoutStyle (i.e. NonSelected or Selected) to AttachmentLayout, and use this bit when
determining the title text color, as well whether to paint backgrounds for the icon and title.
(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::RenderThemeMac::attachmentIntrinsicSize const):
(WebCore::RenderThemeMac::attachmentBaseline const):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentTitleBackground):
Bail from painting backgrounds if a selected style is used for the attachment.
(WebCore::RenderThemeMac::paintAttachment):
Rather than check the RenderAttachment's selection state when determining whether to paint with a non-selected
or selected style, only use selected style if the RenderAttachment has a selection _and_ the painting phase is
not "Selection". While this sounds extremely counter-intuitive, the "Selection" painting phase refers to
painting the selected foreground content _without_ including any part of the selection highlight.
Tools:
Adjusts a couple of existing tests to additionally verify that the drag image generated when dragging an
attachment element in macOS is not completely transparent.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(isCompletelyTransparent):
(TestWebKitAPI::TEST):
- 10:09 AM Changeset in webkit [235228] by
-
- 4 edits in trunk/LayoutTests
Update iOS selection tests to reflect new behavior introduced by r235153
https://bugs.webkit.org/show_bug.cgi?id=188888
Reviewed by Megan Gardner.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
- 9:39 AM Changeset in webkit [235227] by
-
- 4 edits in trunk/Tools
Explain test name matching in run-api-tests help
https://bugs.webkit.org/show_bug.cgi?id=188280
Reviewed by Ryosuke Niwa.
Improve the run-api-tests help message to explain how test
name matching works.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
- Scripts/webkitpy/port/base.py:
(Port):
(Port.path_to_api_test_binaries): Make binary names a globally accessible array.
- Scripts/webkitpy/port/win.py:
(WinPort):
(WinPort.path_to_api_test_binaries): Ditto.
- 9:37 AM Changeset in webkit [235226] by
-
- 2 edits in trunk/Source/WebInspectorUI
JSContext Inspector: Scripts not showing up in Resources tab
https://bugs.webkit.org/show_bug.cgi?id=188814
<rdar://problem/43576117>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-23
Reviewed by Brian Burg.
- UserInterface/Views/ResourceSidebarPanel.js:
(WI.ResourceSidebarPanel.prototype._addScript):
This path shouldn't apply to JSContext inspection which will
never have a pageTarget and but doesn't have a mainResource.
- 8:51 AM Changeset in webkit [235225] by
-
- 5 edits1 delete in trunk
Use "wpt serve" to launch WPT server
https://bugs.webkit.org/show_bug.cgi?id=188848
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- resources/config.json:
Use config alias to serve http/wpt content as /WebKit/
Tools:
Use "wpt serve" provided by WPT instead of using our custom launcher.
This simplifies things and will avoid future breakage.
Further simplify web_platform_test_server.py by removing no longer needed actions.
- Do not copy files but use alias
- Do not kill main pid, which leaves subprocesses alive, use interrupt instead.
- Stop enumerating subprocess pids.
- Scripts/webkitpy/common/system/executive_mock.py:
(MockExecutive.interrupt):
- Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py: Removed.
- Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.init):
(WebPlatformTestServer.ports_to_forward):
(WebPlatformTestServer._prepare_config):
(WebPlatformTestServer._spawn_process):
(WebPlatformTestServer._stop_running_server):
- 8:30 AM Changeset in webkit [235224] by
-
- 12 edits in trunk/Source/WebKit
Unreviewed, rolling out r235216.
https://bugs.webkit.org/show_bug.cgi?id=188887
Caused 50+ Layout Tests to Crash and 173 api Failures on Debug
builds (Requested by Truitt on #webkit).
Reverted changeset:
"Move legacy directory configuration from WebProcessPool to
API::WebsiteDataStore"
https://bugs.webkit.org/show_bug.cgi?id=188765
https://trac.webkit.org/changeset/235216
- 8:12 AM Changeset in webkit [235223] by
-
- 8 edits1 copy1 add in trunk/Source/WebCore
[LFC][Floating] Decouple the incoming floats and floats already placed in the list
https://bugs.webkit.org/show_bug.cgi?id=188886
Reviewed by Antti Koivisto.
This is in preparation for the float avoidance feature where formatting context root boxes avoid existing floats.
- Introduce FloatBox class for the incoming floats (This will need to be renamed when adding support for avoidance -incoming box is actually not a float).
- Use the existing FloatState::FloatItem class for placed floats.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/LayoutUnits.h:
- layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
- layout/displaytree/DisplayBox.h:
- layout/floats/FloatBox.cpp: Added.
(WebCore::Layout::FloatBox::FloatBox):
(WebCore::Layout::FloatBox::initializePosition):
(WebCore::Layout::FloatBox::isLeftAligned const):
(WebCore::Layout::FloatBox::setLeft):
(WebCore::Layout::FloatBox::setTopLeft):
(WebCore::Layout::FloatBox::resetVertically):
(WebCore::Layout::FloatBox::resetHorizontally):
(WebCore::Layout::FloatBox::topLeftInContainingBlock const):
- layout/floats/FloatBox.h: Copied from Source/WebCore/layout/floats/FloatingContext.h.
(WebCore::Layout::FloatBox::top const):
(WebCore::Layout::FloatBox::left const):
(WebCore::Layout::FloatBox::marginTop const):
(WebCore::Layout::FloatBox::marginLeft const):
(WebCore::Layout::FloatBox::marginBottom const):
(WebCore::Layout::FloatBox::marginRight const):
(WebCore::Layout::FloatBox::rectWithMargin const):
(WebCore::Layout::FloatBox::setTop):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingPair::verticalPosition const):
(WebCore::Layout::begin):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::horiztonalPosition const):
(WebCore::Layout::FloatingPair::bottom const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::FloatingContext::initialVerticalPosition const): Deleted.
(WebCore::Layout::FloatingContext::alignWithContainingBlock const): Deleted.
(WebCore::Layout::FloatingContext::alignWithFloatings const): Deleted.
(WebCore::Layout::FloatingContext::toContainingBlock const): Deleted.
- layout/floats/FloatingContext.h:
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::layoutContext const):
- 6:59 AM Changeset in webkit [235222] by
-
- 2 edits in trunk/Tools
run-api-tests: Add --webkit-only, --webcore-only and --webkit-legacy-only options to run WebKit, WebCore and WebKitLegacy tests
https://bugs.webkit.org/show_bug.cgi?id=188262
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
- 5:34 AM Changeset in webkit [235221] by
-
- 10 edits in trunk/Source
[CoordGraphics] Remove the remaining CoordinatedGraphicsLayerState cruft
https://bugs.webkit.org/show_bug.cgi?id=188881
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Remove what's left of CoordinatedGraphicsLayerState usage in the
CoordinatedGraphics subsystem. In CoordinatedGraphicsLayer, this means
dropping the m_layerState member variable since at this point it is not
used anymore in any capacity. Affected helper methods and member
variables are also removed where possible.
The syncLayerState() method on the CoordinatedGraphicsLayerClient
interface is adjusted to not accept any parameters. Client should just
mark frame synchronization as required while the layer state is now
managed differently.
Instead of the CoordinatedLayerID (which is removed) the
Nicosia::PlatformLayer::LayerID alias is introduced as a layer ID type,
aliased to the uint64_t type.
CoordinatedGraphicsState.h file is rid of all structs except the
basic CoordinatedGraphicsState struct that at this point contains only
a reference to the Nicosia::Scene object. This will be further
simplified in the patches that follow.
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::PlatformLayer::id const):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::didChangeAnimations):
(WebCore::CoordinatedGraphicsLayer::didChangeChildren):
(WebCore::CoordinatedGraphicsLayer::didChangeFilters):
(WebCore::CoordinatedGraphicsLayer::didUpdateTileBuffers):
(WebCore::CoordinatedGraphicsLayer::didChangeGeometry):
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setPosition):
(WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
(WebCore::CoordinatedGraphicsLayer::setSize):
(WebCore::CoordinatedGraphicsLayer::setTransform):
(WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
(WebCore::CoordinatedGraphicsLayer::setPreserves3D):
(WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
(WebCore::CoordinatedGraphicsLayer::setDrawsContent):
(WebCore::CoordinatedGraphicsLayer::setContentsVisible):
(WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
(WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
(WebCore::CoordinatedGraphicsLayer::setOpacity):
(WebCore::CoordinatedGraphicsLayer::setContentsRect):
(WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
(WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
(WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
(WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
(WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):
(WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplayInRect):
(WebCore::CoordinatedGraphicsLayer::setDebugBorder):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded):
(WebCore::toCoordinatedLayerID): Deleted.
(WebCore::CoordinatedGraphicsLayer::didChangeLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncChildren): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncFilters): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncAnimations): Deleted.
(WebCore::CoordinatedGraphicsLayer::resetLayerState): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(): Deleted.
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState): Deleted.
(WebCore::CoordinatedGraphicsLayerState::hasPendingChanges const): Deleted.
Source/WebKit:
Rid CompositingCoordinator class of code that manages now-deleted state
tracking of layer creation, update and removal on the
CoordinatedGraphicsState class. The syncLayerState() method is changed
accordingly, now only enforcing a frame synchronization when called.
Use of Nicosia::PlatformLayer::LayerID is adopted since the
CoordinatedLayerID type has been removed.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::syncLayerState):
(WebKit::CompositingCoordinator::createGraphicsLayer):
(WebKit::CompositingCoordinator::detachLayer):
(WebKit::CompositingCoordinator::attachLayer):
(WebKit::CompositingCoordinator::clearPendingStateChanges): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
- 12:00 AM Changeset in webkit [235220] by
-
- 4 edits in trunk/Source/WebKit
NetworkCache::Storage::lastStableVersion should be a developer-only feature
https://bugs.webkit.org/show_bug.cgi?id=188843
<rdar://problem/43574100>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::deleteOldVersions):
Delete old cache versions unconditionally if we are system WebKit.
- Shared/ChildProcess.h:
- Shared/mac/ChildProcessMac.mm:
(WebKit::ChildProcess::isSystemWebKit):
Find out if WebKit is installed under '/System/'.
Aug 22, 2018:
- 11:30 PM Changeset in webkit [235219] by
-
- 4 edits in trunk/Source/WebCore
[CoordGraphics] Drop old-school PlatformLayer management in CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=188850
Reviewed by Michael Catanzaro.
Remove the m_platformLayer member from the CoordinatedGraphicsLayer
class as it's been unused since the rework in r235165.
The CoordinatedGraphicsLayer::syncPlatformLayer() helper method and the
related member variable can both be removed as well. On the
CoordinatedGraphicsLayerState class, we can remove the obsolete
flags and the TextureMapperPlatformLayerProxy member variable that's
unused now that such objects are handled through the Nicosia impl class.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPlatformLayer): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
- 11:27 PM Changeset in webkit [235218] by
-
- 4 edits in trunk/Source/WebCore
[CoordGraphics] Remove TiledBackingStoreClient inheritance from CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=188849
Reviewed by Michael Catanzaro.
Remove the TiledBackingStoreClient inheritance from the
CoordinatedGraphicsLayer class since it's not used anymore after changes
made in r235165.
Related TiledBackingStore objects on this class, along with tile state
tracking member variables on the CoordinatedGraphicsLayerState class,
are also removed.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreHasPendingTileCreation): Deleted.
(WebCore::CoordinatedGraphicsLayer::createTile): Deleted.
(WebCore::CoordinatedGraphicsLayer::updateTile): Deleted.
(WebCore::CoordinatedGraphicsLayer::removeTile): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::hasPendingChanges const):
- 11:20 PM Changeset in webkit [235217] by
-
- 8 edits2 deletes in trunk/Source
[CoordGraphics] Remove CoordinatedImageBacking and related functionality
https://bugs.webkit.org/show_bug.cgi?id=188847
Reviewed by Michael Catanzaro.
Remove the CoordinatedImageBacking class and its intertwining use in the
CoordinatedGraphics system.
Source/WebCore:
Remove the now-unused m_coordinatedImageBacking member variable from the
CoordinatedGraphicsLayer class, along with CoordinatedImageBacking::Host
inheritance. Various related helper methods are also removed.
In CoordinatedGraphicsState and CoordinatedGraphicsLayerState classes,
we are able to drop different CoordinatedImageBacking-related state
values that are not used anymore.
- platform/TextureMapper.cmake:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsToImage):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::didChangeImageBacking): Deleted.
(WebCore::CoordinatedGraphicsLayer::syncImageBacking): Deleted.
(WebCore::CoordinatedGraphicsLayer::imageBackingVisible): Deleted.
(WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
- platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp: Removed.
- platform/graphics/texmap/coordinated/CoordinatedImageBacking.h: Removed.
Source/WebKit:
Drop the CoordinatedImageBacking object management from the
CompositingCoordinator class, along with the
CoordinatedImageBacking::Client inheritance. The corresponding image
backing state management on the CoordinatedGraphicsState class can be
removed accordingly.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded): Deleted.
(WebKit::CompositingCoordinator::createImageBacking): Deleted.
(WebKit::CompositingCoordinator::updateImageBacking): Deleted.
(WebKit::CompositingCoordinator::clearImageBackingContents): Deleted.
(WebKit::CompositingCoordinator::removeImageBacking): Deleted.
(WebKit::CompositingCoordinator::flushPendingImageBackingChanges): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
- 10:52 PM Changeset in webkit [235216] by
-
- 12 edits in trunk/Source/WebKit
Move legacy directory configuration from WebProcessPool to API::WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=188765
Reviewed by Geoffrey Garen.
Diretories are parameters of websiteDataStore instead of webProcessPool, so we should move
legacy default paths to API::WebsiteDataStore, which already stores default paths for
non-legacy cases.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.cpp:
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/API/win/APIWebsiteDataStoreWin.cpp:
(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory):
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory):
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory):
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory):
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/WebProcessPool.h:
- UIProcess/gtk/WebProcessPoolGtk.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/win/WebProcessPoolWin.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- UIProcess/wpe/WebProcessPoolWPE.cpp:
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory): Deleted.
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory): Deleted.
- 8:01 PM Changeset in webkit [235215] by
-
- 7 edits2 adds in trunk/Source/WTF
[WTF] Add generic implementation for Memory querying
https://bugs.webkit.org/show_bug.cgi?id=188867
Reviewed by Fujii Hironori.
Moves generic implementation of MemoryPressureHandler from
MemoryPressureHandler.cpp into MemoryPressureHandlerGeneric
and generic implementation of memoryFootprint from
MemoryFootprintLinux.cpp to MemoryFootprintGeneric.
- wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::install): Deleted.
(WTF::MemoryPressureHandler::uninstall): Deleted.
(WTF::MemoryPressureHandler::respondToMemoryPressure): Deleted.
(WTF::MemoryPressureHandler::platformReleaseMemory): Deleted.
(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage): Deleted.
- wtf/PlatformJSCOnly.cmake:
- wtf/generic/MemoryFootprintGeneric.cpp: Added.
(WTF::memoryFootprint):
- wtf/generic/MemoryPressureHandlerGeneric.cpp: Added.
(WTF::MemoryPressureHandler::memoryMeasurementTimerFired):
(WTF::MemoryPressureHandler::platformReleaseMemory):
(WTF::MemoryPressureHandler::install):
(WTF::MemoryPressureHandler::uninstall):
(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):
(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
- wtf/linux/CurrentProcessMemoryStatus.cpp:
- wtf/linux/CurrentProcessMemoryStatus.h:
- wtf/linux/MemoryFootprintLinux.cpp:
(WTF::computeMemoryFootprint):
(WTF::memoryFootprint):
- wtf/linux/MemoryPressureHandlerLinux.cpp:
- 6:51 PM Changeset in webkit [235214] by
-
- 2 edits in trunk/Source/WebCore
Store RefPtr in FocusNavigationScope
https://bugs.webkit.org/show_bug.cgi?id=188864
Reviewed by Simon Fraser.
Use RefPtr to store the root node of a tree scope and a slot element instead of a reference and a raw pointer.
- page/FocusController.cpp:
(WebCore::FocusNavigationScope::parentInScope const):
(WebCore::FocusNavigationScope::firstNodeInScope const):
(WebCore::FocusNavigationScope::lastNodeInScope const):
(WebCore::FocusNavigationScope::FocusNavigationScope):
(WebCore::FocusNavigationScope::owner const):
- 6:40 PM Changeset in webkit [235213] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 5:58 PM Changeset in webkit [235212] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 5:13 PM Changeset in webkit [235211] by
-
- 1 copy in tags/Safari-606.1.36.1.8
Tag Safari-606.1.36.1.8.
- 4:10 PM Changeset in webkit [235210] by
-
- 2 edits in trunk/LayoutTests
Further adjustments to http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html
https://bugs.webkit.org/show_bug.cgi?id=188856
Unreviewed test gardening. Trying to address flakiness I can't reproduce locally.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html:
- 3:54 PM Changeset in webkit [235209] by
-
- 2 edits in trunk/Source/WebKit
The Storage Access API prompt should show the eTLD+1s, not the full host names
https://bugs.webkit.org/show_bug.cgi?id=188830
<rdar://problem/43380645>
Reviewed by Brent Fulgham.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageAccess):
- 3:51 PM Changeset in webkit [235208] by
-
- 3 edits in trunk/Source/WebKit
De-unify WebPage
https://bugs.webkit.org/show_bug.cgi?id=188865
Reviewed by Wenson Hsieh.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
WebPage being unified is causing mysterious build issues inside Carbon headers
on High Sierra only. Also, WebPage by itself takes longer to build than
most full unified source files, so it might not make sense to unify it
with others (to maximize parallelism).
- 3:49 PM Changeset in webkit [235207] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, update "Web Authentication" from "Under Consideration" to "In Development"
in features.json.
- features.json:
- 3:48 PM Changeset in webkit [235206] by
-
- 42 edits in trunk/LayoutTests
Update webkit-webgl-test-harness.js for more details on WebGL 2 conformance tests
https://bugs.webkit.org/show_bug.cgi?id=188825
Patch by Justin Fan <Justin Fan> on 2018-08-22
Reviewed by Simon Fraser.
Another update to the test-harness specific to the new WebGL 2 tests in our suite. All sub-test messages are
now reported by the harness and presented in an ordered list for easier referencing. Sub-test failures are
marked accordingly and with their test number for diffing purposes.
- webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt:
- webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt:
- webgl/2.0.0/conformance2/glsl3/attrib-location-length-limits-expected.txt:
- webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt:
- webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt:
- webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
- webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt:
- webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
- webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt:
- webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
- webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt:
- webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
- webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
- webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
- webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-define-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1024-character-identifier.frag-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-define-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-1025-character-identifier.frag-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
- webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
- webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt:
- webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
- webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
- webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt:
- webgl/2.0.0/conformance2/glsl3/unary-minus-operator-in-dynamic-loop-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:
- webgl/2.0.0/conformance2/glsl3/uniform-location-length-limits-expected.txt:
- webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
- webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt:
- webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt:
- webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
- webgl/2.0.0/resources/webkit-webgl-test-harness.js:
(list):
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):
- 3:44 PM Changeset in webkit [235205] by
-
- 160 edits in trunk/Source/WebKit
Unreviewed, rolling out r235204.
reverting previous rollout
Reverted changeset:
"Unreviewed, rolling out r235176."
https://bugs.webkit.org/show_bug.cgi?id=185015
https://trac.webkit.org/changeset/235204
- 3:39 PM Changeset in webkit [235204] by
-
- 160 edits in trunk/Source/WebKit
Unreviewed, rolling out r235176.
broke internal builds
Reverted changeset:
"Use unified build for WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=185015
https://trac.webkit.org/changeset/235176
- 3:23 PM Changeset in webkit [235203] by
-
- 2 edits in trunk
[MSVC] Stop disabling /O2 features.
https://bugs.webkit.org/show_bug.cgi?id=188811
Reviewed by Per Arne Vollan.
- Source/cmake/OptionsMSVC.cmake:
Don't disable /GF (string pooling) or /Gy (function-level linking).
- 2:35 PM Changeset in webkit [235202] by
-
- 11 edits in trunk
[Attachment Support] Support dragging attachment elements out as files on macOS
https://bugs.webkit.org/show_bug.cgi?id=181294
<rdar://problem/36298801>
Reviewed by Tim Horton.
Source/WebCore:
Serialize a dragged attachment element as a web archive on macOS. This allows us to move attachment elements
around a document by dragging, without performing a file upload upon every drop. Ideally, we should do this on
iOS as well, but this currently causes attachment data to go missing; further investigation to fix this for iOS
is tracked in <https://bugs.webkit.org/show_bug.cgi?id=181514>.
Tests: WKAttachmentTestsMac.DragAttachmentAsFilePromise
WKAttachmentTests.MoveAttachmentElementAsIconByDragging
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::getPasteboardTypesAndDataForAttachment):
Source/WebKit:
Add support for dragging attachment elements on macOS by writing promised files to drag pasteboard. See changes
below for more details.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView filePromiseProvider:fileNameForType:]):
(-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]):
(-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]):
(-[WKWebView draggingSession:endedAtPoint:operation:]):
- UIProcess/API/mac/WKView.mm:
(-[WKView filePromiseProvider:fileNameForType:]):
(-[WKView filePromiseProvider:writePromiseToURL:completionHandler:]):
(-[WKView draggingSession:sourceOperationMaskForDraggingContext:]):
(-[WKView draggingSession:endedAtPoint:operation:]):
Plumb NSFilePromiseProviderDelegate and NSDraggingSource method implementations to WebViewImpl.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKPromisedAttachmentContext initWithAttachmentInfo:]):
(-[WKPromisedAttachmentContext blobURL]):
(-[WKPromisedAttachmentContext filename]):
(-[WKPromisedAttachmentContext attachmentIdentifier]):
Add an object that contains the information needed to deliver a dragged attachment element's data via
NSFilePromiseProvider. This is stored as the userInfo of the NSFilePromiseProvider created upon drag start.
(WebKit::WebViewImpl::draggedImage):
(WebKit::WebViewImpl::sendDragEndToPage):
Add a helper method to handle cleanup after the dragging has finished, and call it from -draggedImage:… and
-draggingSessionEnded:…. The latter is only triggered in the where -beginDraggingSessionWithItems:… is used,
which currently only happens when dragging attachment elements.
(WebKit::WebViewImpl::fileNameForFilePromiseProvider):
(WebKit::webKitUnknownError):
(WebKit::WebViewImpl::writeToURLForFilePromiseProvider):
Deliver either NSFileWrapper data to the destination URL (in the case where an attachment identifier is known
and the corresponding API::Attachment is backed by a file wrapper), or save the contents of the blob URL to the
destination.
(WebKit::WebViewImpl::dragSourceOperationMask):
(WebKit::WebViewImpl::draggingSessionEnded):
(WebKit::WebViewImpl::startDrag):
Tools:
Add DragAndDropSimulator support for intercepting calls to -beginDraggingSessionWithitems:event:source:. This
enables us to write API tests for macOS that exercise the attachment SPI in combination with dragging attachment
elements.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView attachmentElementMidPoint]):
Add a helper method local to this test suite that grabs the midpoint (in client coordinates) or the first
attachment element in the document.
(TestWebKitAPI::TEST):
Add a new API test to verify that dragging an attachment element on macOS produces file providers which may be
used to write attachment data to a path on disk. Additionally, refactor an existing API test,
MoveAttachmentElementAsIconByDragging, so that it runs on both iOS and macOS, to test the ability to move
attachment elements around in a document by using drag and drop.
- TestWebKitAPI/cocoa/DragAndDropSimulator.h:
- TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropTestWKWebView beginDraggingSessionWithItems:event:source:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator beginDraggingSessionInWebView:withItems:source:]):
Begin a drag session and kick off the -continueDragSession loop. Unlike -performDragInWebView:…, which spins
the main runloop until dragging ends, this version returns execution to the web view and schedules dragging
updates asynchronously. This matches AppKit behavior.
(-[DragAndDropSimulator continueDragSession]):
Increment the dragging progress amount, send a drag update to the web view, and continue scheduling calls to
itself until the progress reaches 1.
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
(-[DragAndDropSimulator initializeDraggingInfo:dragImage:source:]):
Pull out common logic for creating a new TestDraggingInfo after starting a drag.
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):
(-[DragAndDropSimulator draggingSession]):
(-[DragAndDropSimulator receivePromisedFiles]):
Helper method to save promised files written to the pasteboard after a drag to the temporary directory. These
files are tracked by DragAndDropSimulator and automatically cleaned up after the test finishes.
(-[DragAndDropSimulator endDataTransfer]):
Add a method stub on macOS, so that MoveAttachmentElementAsIconByDragging can be made cross-platform.
(-[DragAndDropSimulator _webView:didInsertAttachment:withSource:]):
(-[DragAndDropSimulator _webView:didRemoveAttachment:]):
Implement method stubs to keep track of inserted or removed attachments while simulating a drag.
- 2:22 PM Changeset in webkit [235201] by
-
- 17 edits4 adds in trunk
[iOS] Add support for the inputmode attribute
https://bugs.webkit.org/show_bug.cgi?id=183621
Reviewed by Tim Horton.
Source/WebCore:
Added the inputmode attribute to the HTMLInputElement and HTMLTextAreaElement IDL
files. The possible values for the attribute are specified in InputModeNames.
Test: fast/forms/inputmode-attribute.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLAttributeNames.in:
- html/HTMLInputElement.idl:
- html/HTMLTextAreaElement.idl:
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::inputMode const):
(WebCore::HTMLTextFormControlElement::setInputMode):
- html/HTMLTextFormControlElement.h:
- html/InputModeNames.cpp: Added.
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::numeric):
(WebCore::InputModeNames::decimal):
(WebCore::InputModeNames::search):
- html/InputModeNames.h: Added.
Source/WebKit:
The inputmode attribute specifies which input mechanism would be most helpful for
users entering content in textfield inputs and textareas. This patch adds support
for seven values: text, tel, url, email, numeric, decimal and search.
On iOS, we can specify UIKeyboardTypes that best match the supplied inputmode.
- text: UIKeyboardTypeDefault
- tel: UIKeyboardTypePhonePad
- url: UIKeyboardTypeURL
- email: UIKeyboardTypeEmailAddress
- numeric: UIKeyboardTypeNumbersAndPunctuation
- decimal: UIKeyboardTypeDecimalPad
- search: UIKeyboardTypeWebSearch
In the case that the inputmode attribute is not specified, we fall back to using
our existing heuristic to determine what kind of keyboard to show for textfields.
- Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
- Shared/AssistedNodeInformation.h: Added inputMode field.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInputTraits]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::inputModeForElement):
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Added an API test to verify that the correct UIKeyboardType is set depending on
the type, inputmode, and pattern specified for an input field.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
LayoutTests:
Added test to verify behavior when getting and setting the inputmode attribute.
- fast/forms/inputmode-attribute-expected.txt: Added.
- fast/forms/inputmode-attribute.html: Added.
- 2:08 PM Changeset in webkit [235200] by
-
- 10 edits in trunk/Source/WebKit
WKNavigationDelegate needs to allow clients to specify a custom blocked plug-in message
https://bugs.webkit.org/show_bug.cgi?id=188764
Reviewed by Alex Christensen.
Add a new private WKNavigationDelegate method that takes a completion handler so clients can return
a custom unavailability description in addition to the policy. Change WebPageProxy::findPlugin() to
send a delayed reply and API::LoaderClient::pluginLoadPolicy()/API::NavigationClient::decidePolicyForPluginLoad()
to take a completion handler to support this.
- UIProcess/API/APILoaderClient.h:
(API::LoaderClient::pluginLoadPolicy):
Changed to take a completion handler. The default implementation doesn't return a custom
unavailability description.
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::decidePolicyForPluginLoad):
Ditto.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageLoaderClient):
Changed pluginLoadPolicy() to take a completion handler.
(WKPageSetPageNavigationClient):
Changed decidePolicyForPluginLoad() to take a completion handler.
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
Add alternate version of -decidePolicyForPluginLoadWithCurrentPolicy: that allows clients to return
the unavailibility description.
- UIProcess/Cocoa/NavigationState.h:
Add flag for new delegate method.
Changed decidePolicyForPluginLoad() to take a completion handler.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
Calculate flag for new delegate method.
(WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad):
Changed to take a completion handler.
Prefer new delegate method, if available.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):
Changed to send a delayed reply.
Refactored some code into a lambda so it can be shared when using m_navigationClient->decidePolicyForPluginLoad().
Removed unneeded UNUSED_PARAM() macros.
- UIProcess/WebPageProxy.h:
Changed findPlugin() to send a delayed reply.
- UIProcess/WebPageProxy.messages.in:
Ditto.
- 1:46 PM Changeset in webkit [235199] by
-
- 2 edits in trunk/Tools
Fix API test on Sierra after r235139
https://bugs.webkit.org/show_bug.cgi?id=188810
- TestWebKitAPI/Tests/mac/LimitTitleSize.mm:
(TEST):
- 1:42 PM Changeset in webkit [235198] by
-
- 3 edits in trunk/Source/JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=188859
Eliminate dead code operationThrowDivideError() and operationThrowOutOfBoundsAccessError()
Rubber-stamped by Saam Barati.
Deleted these two functions.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- 1:40 PM Changeset in webkit [235197] by
-
- 2 edits in trunk/Source/WebCore
Log more often during AirPlay state changes
https://bugs.webkit.org/show_bug.cgi?id=188854
Always log some infrequent but important AirPlay state changes to make debugging easier.
Reviewed by Jer Noble.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Low always.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
(WebCore::HTMLMediaElement::setWirelessPlaybackTarget): Ditto.
(WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget): Ditto.
- 1:32 PM Changeset in webkit [235196] by
-
- 1 copy in tags/Safari-607.1.3
Tag Safari-607.1.3.
- 1:31 PM Changeset in webkit [235195] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 1:27 PM Changeset in webkit [235194] by
-
- 2 edits in trunk
Don't use WTF_CPU_MIPS when building for mips64
https://bugs.webkit.org/show_bug.cgi?id=188858
Reviewed by Michael Catanzaro.
- CMakeLists.txt: Use WTF_CPU_MIPS64 for this architecture.
- 1:07 PM Changeset in webkit [235193] by
-
- 3 edits1 move2 adds2 deletes in trunk/LayoutTests
Make ResourceLoadObserver::logWebSocketLoading() handle websockets in detached frames
https://bugs.webkit.org/show_bug.cgi?id=188856
Unreviewed test gardening.
Skipped test since it's only valid on WK2 platforms.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics-expected.txt: Added.
- http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html: Renamed from LayoutTests/http/tests/websocket/construct-in-detached-frame-resource-load-statistics.html.
- http/tests/websocket/construct-in-detached-frame-resource-load-statistics-expected.txt: Removed.
- http/tests/websocket/resources/construct-in-detached-frame-resource-load-statistics.html: Removed.
- http/tests/websocket/resources/localhost-websocket-connect.html: Added.
- platform/wk2/TestExpectations:
Marked test as [ Pass ].
- 1:02 PM Changeset in webkit [235192] by
-
- 19 edits66 adds2 deletes in trunk/LayoutTests
[iOS] Rebaseline table tests
https://bugs.webkit.org/show_bug.cgi?id=188833
Unreviewed test gardening.
- 12:59 PM Changeset in webkit [235191] by
-
- 5 edits in trunk
Focus navigation order in slot fallback contents is wrong
https://bugs.webkit.org/show_bug.cgi?id=178001
<rdar://problem/42842997>
Reviewed by Antti Koivisto.
Source/WebCore:
The bug here is that when a slot uses its fallback content, the fallback content's focus order doesn't get
grouped by that of the slot. Consider the following DOM tree:
- ShadowRoot
- div tabindex = 2
- slot tabindex = 1
- span tabindex = 3
In this example, the sequential focus navigation should be slot, span, then div. Even though span has tabindex
order of 3, which is lower than that of div, the fallback content of the slot should be grouped together
before the focus moves out of the slot content.
In WebKit, this concept of grouping elements for the sequential focus navigation ordering is implemeneted
as FocusNavigationScope. Both ShadowRoot and HTMLSlotElement are treated as a focus scope owner but we had
a bug that a slot element which uses its fallback content was not treated as a focus scope owner.
This patch addresses the bug by treating a slot wich uses its fallback content as a focus scope owner.
Test: fast/shadow-dom/focus-navigation-across-slots.html
- page/FocusController.cpp:
(WebCore::isFocusScopeOwner): Treat a slot elment hs a focus scope owner regardless of whether it has assigned
nodes or not.
(WebCore::FocusNavigationScope::SlotKind): Added.
(WebCore::FocusNavigationScope::m_slotKind): Added.
(WebCore::FocusNavigationScope::parentInScope const): Return null ifnode
is a child of the slot element for
which this FocusNavigationScope is created (i.e.node
is slot's fallback content).
(WebCore::FocusNavigationScope::firstNodeInScope const): Return the first child node when this
FocusNavigationScope is for a slot element using its fallback content.
(WebCore::FocusNavigationScope::lastNodeInScope const): Ditto for the last child.
(WebCore::FocusNavigationScope::FocusNavigationScope):
(WebCore::FocusNavigationScope::scopeOf): The scope of a child of a slot element which uses its fallback content
is its slot element (i.e. the current node is a fallback content). We can't simply check the current node is
a slot element which uses a fallback content since the scope of a slot element is the parent scope. e.g. its
tree scope like ShadowRoot or Document inside which this slot element appears.
(WebCore::FocusNavigationScope::scopeOwnedByScopeOwner): Create the appropriate FocusNavigationScope based on
whether the slot element has assigned or it uses its fallback content.
LayoutTests:
Updated the sequential focus navigation test for shadow DOM and its expectation.
New test passes in Firefox & Chrome other than the fact both browsers fail to focus a slot elemennt.
- fast/shadow-dom/focus-navigation-across-slots-expected.txt:
- fast/shadow-dom/focus-navigation-across-slots.html:
- 12:33 PM Changeset in webkit [235190] by
-
- 5 edits6 moves in trunk
Move files in WebCore project to match Xcode folder structure
<https://webkit.org/b/188851>
Reviewed by Tim Horton.
Source/WebCore:
- Scripts/LocalizableStrings.pm: Renamed from Source/WebCore/LocalizableStrings.pm.
- Scripts/extract-localizable-strings.pl: Renamed from Source/WebCore/extract-localizable-strings.pl.
- WebCore.xcodeproj/project.pbxproj: Update to match new location of files.
- platform/audio/cocoa/WebAudioBufferList.cpp: Renamed from Source/WebCore/platform/audio/WebAudioBufferList.cpp.
- platform/audio/cocoa/WebAudioBufferList.h: Renamed from Source/WebCore/platform/audio/WebAudioBufferList.h.
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaSampleAVFObjC.h.
- platform/ios/wak/WAKViewInternal.h: Renamed from Source/WebCore/platform/WAKViewInternal.h. Also fix 3 webkit-style warnings.
Tools:
- Scripts/extract-localizable-strings:
- Scripts/update-webkit-localizable-strings:
- Update to match new location of extract-localizable-strings.pl.
- 11:53 AM Changeset in webkit [235189] by
-
- 2 edits in trunk/JSTests
Make data-view-access.js run less time to prevent timeouts on 32-bit
- microbenchmarks/data-view-accesses.js:
- 11:31 AM Changeset in webkit [235188] by
-
- 1 copy in tags/Safari-606.1.36.10.4
Tag Safari-606.1.36.10.4.
- 11:28 AM Changeset in webkit [235187] by
-
- 2 edits in branches/safari-606.1.36.10-branch/Source/WebKit
Cherry-pick r235133. rdar://problem/43584853
Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:26 AM Changeset in webkit [235186] by
-
- 7 edits in branches/safari-606.1.36.10-branch/Source
Versioning.
- 11:03 AM Changeset in webkit [235185] by
-
- 2 edits in branches/safari-606.1.36.1-branch/Source/WebKit
Cherry-pick r235133. rdar://problem/43584853
Increment NetworkCache::Storage::lastStableVersion after r233742
https://bugs.webkit.org/show_bug.cgi?id=188798
<rdar://43561761>
Reviewed by Geoffrey Garen.
- NetworkProcess/cache/NetworkCacheStorage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@235133 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [235184] by
-
- 7 edits in branches/safari-606.1.36.1-branch/Source
Versioning.
- 10:56 AM Changeset in webkit [235183] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete
https://bugs.webkit.org/show_bug.cgi?id=188803
<rdar://problem/43572838>
Reviewed by Matt Baker.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved):
- 10:51 AM Changeset in webkit [235182] by
-
- 7 edits in trunk/Source
Versioning.
- 10:29 AM Changeset in webkit [235181] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:19 AM Changeset in webkit [235180] by
-
- 2 edits in trunk/LayoutTests
[Win] Some video tests under http/tests/security are crashing on EWS.
https://bugs.webkit.org/show_bug.cgi?id=188853
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:17 AM Changeset in webkit [235179] by
-
- 5 edits in trunk/Source/WebKit
Try removing defaultSessionParameters from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188831
Reviewed by Alex Christensen.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 10:10 AM Changeset in webkit [235178] by
-
- 4 edits4 moves1 add in trunk/Source/WebCore
[LFC][Floating] Move files to a dedicated directory.
https://bugs.webkit.org/show_bug.cgi?id=188846
Reviewed by Simon Fraser.
layout/Float* -> layout/floats
- WebCore.xcodeproj/project.pbxproj:
- layout/floatformatting/FloatingContext.cpp: Renamed from Source/WebCore/layout/FloatingContext.cpp.
(WebCore::Layout::FloatingPair::isEmpty const):
(WebCore::Layout::FloatingPair::verticalPosition const):
(WebCore::Layout::Iterator::operator* const):
(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::FloatingContext::toContainingBlock const):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::FloatingPair::intersects const):
(WebCore::Layout::FloatingPair::operator == const):
(WebCore::Layout::FloatingPair::bottom const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::Iterator::operator== const):
(WebCore::Layout::Iterator::operator!= const):
- layout/floatformatting/FloatingContext.h: Renamed from Source/WebCore/layout/FloatingContext.h.
(WebCore::Layout::FloatingContext::floatingState const):
(WebCore::Layout::FloatingContext::layoutContext const):
- layout/floatformatting/FloatingState.cpp: Renamed from Source/WebCore/layout/FloatingState.cpp.
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::belongsToThisFloatingContext):
(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::append):
(WebCore::Layout::FloatingState::bottom const):
- layout/floatformatting/FloatingState.h: Renamed from Source/WebCore/layout/FloatingState.h.
(WebCore::Layout::FloatingState::create):
(WebCore::Layout::FloatingState::isEmpty const):
(WebCore::Layout::FloatingState::FloatItem::layoutBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlock const):
(WebCore::Layout::FloatingState::FloatItem::displayBox const):
(WebCore::Layout::FloatingState::FloatItem::containingBlockDisplayBox const):
(WebCore::Layout::FloatingState::floats const):
(WebCore::Layout::FloatingState::last const):
(WebCore::Layout::FloatingState::layoutContext const):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
- 9:55 AM Changeset in webkit [235177] by
-
- 4 edits1 add in trunk
The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions.
https://bugs.webkit.org/show_bug.cgi?id=188298
<rdar://problem/42888427>
Reviewed by Saam Barati.
JSTests:
- stress/bug-188298.js: Added.
Source/JavaScriptCore:
In the event that both targets of a Branch is the same block, then even if we'll
always take one path of the branch, the other target is not unreachable because
it is the same target as the one in the taken path. Hence, it should not be
jettisoned.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Added DFGCFG.h which is in use and should have been added to the project.
- dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
- 9:54 AM Changeset in webkit [235176] by
-
- 160 edits in trunk/Source/WebKit
Use unified build for WebProcess
https://bugs.webkit.org/show_bug.cgi?id=185015
Reviewed by Alex Christensen.
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
- WebProcess/Databases/WebDatabaseProvider.cpp:
- WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
- WebProcess/FullScreen/WebFullScreenManager.cpp:
- WebProcess/Gamepad/WebGamepadProvider.cpp:
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
- WebProcess/Geolocation/WebGeolocationManager.cpp:
- WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
- WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
- WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
- WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
- WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
- WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
- WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
- WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
- WebProcess/Network/NetworkProcessConnection.cpp:
- WebProcess/Network/WebLoaderStrategy.cpp:
- WebProcess/Network/WebResourceLoader.cpp:
- WebProcess/Network/WebSocketProvider.cpp:
- WebProcess/Network/WebSocketStream.cpp:
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
- WebProcess/Network/webrtc/LibWebRTCResolver.cpp:
- WebProcess/Network/webrtc/LibWebRTCResolver.h:
- WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
- WebProcess/Network/webrtc/LibWebRTCSocket.h:
- WebProcess/Network/webrtc/WebMDNSRegister.cpp:
- WebProcess/Network/webrtc/WebRTCMonitor.cpp:
- WebProcess/Network/webrtc/WebRTCMonitor.h:
- WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
- WebProcess/Notifications/WebNotificationManager.cpp:
- WebProcess/Plugins/Netscape/JSNPMethod.cpp:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
- WebProcess/Plugins/Netscape/NPJSObject.cpp:
- WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
- WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- WebProcess/Plugins/Netscape/NetscapePluginNone.cpp:
- WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
- WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
- WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
- WebProcess/Plugins/Plugin.cpp:
- WebProcess/Plugins/PluginProcessConnection.cpp:
- WebProcess/Plugins/PluginProxy.cpp:
- WebProcess/Plugins/PluginView.cpp:
- WebProcess/Plugins/WebPluginInfoProvider.cpp:
- WebProcess/Storage/ServiceWorkerClientFetch.cpp:
- WebProcess/Storage/WebSWClientConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWOriginTable.cpp:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
- WebProcess/Storage/WebServiceWorkerProvider.cpp:
- WebProcess/Storage/WebToStorageProcessConnection.cpp:
- WebProcess/UserContent/WebUserContentController.cpp:
- WebProcess/WebConnectionToUIProcess.cpp:
- WebProcess/WebCoreSupport/SessionStateConversion.cpp:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
- WebProcess/WebCoreSupport/WebColorChooser.cpp:
- WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
- WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp:
- WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
- WebProcess/WebCoreSupport/WebDragClient.cpp:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
- WebProcess/WebCoreSupport/WebInspectorClient.cpp:
- WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
- WebProcess/WebCoreSupport/WebNotificationClient.cpp:
- WebProcess/WebCoreSupport/WebPerformanceLoggingClient.cpp:
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
- WebProcess/WebCoreSupport/WebPopupMenu.cpp:
- WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp:
- WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
- WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
- WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
- WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
- WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
- WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
- WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
- WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
- WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
- WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
- WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
- WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
- WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
- WebProcess/WebPage/DrawingArea.cpp:
- WebProcess/WebPage/EventDispatcher.cpp:
- WebProcess/WebPage/FindController.cpp:
- WebProcess/WebPage/LayerTreeHost.cpp:
- WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
- WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
- WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
- WebProcess/WebPage/RemoteWebInspectorUI.cpp:
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
- WebProcess/WebPage/VisitedLinkTableController.cpp:
- WebProcess/WebPage/WebBackForwardListProxy.cpp:
- WebProcess/WebPage/WebContextMenu.cpp:
- WebProcess/WebPage/WebDocumentLoader.cpp:
- WebProcess/WebPage/WebFrame.cpp:
- WebProcess/WebPage/WebInspector.cpp:
- WebProcess/WebPage/WebInspectorUI.cpp:
- WebProcess/WebPage/WebPage.cpp:
- WebProcess/WebPage/WebPageOverlay.cpp:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
- WebProcess/WebPage/ios/FindControllerIOS.mm:
- WebProcess/WebPage/ios/WebPageIOS.mm:
- WebProcess/WebPage/mac/DrawingAreaMac.cpp:
- WebProcess/WebPage/mac/PageBannerMac.mm:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
- WebProcess/WebPage/mac/WebPageMac.mm:
- WebProcess/WebPage/win/WebPageWin.cpp:
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
- WebProcess/WebProcess.cpp:
- WebProcess/WebStorage/StorageAreaImpl.cpp:
- WebProcess/WebStorage/StorageAreaMap.cpp:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
- WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
- WebProcess/cocoa/PlaybackSessionManager.mm:
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
- WebProcess/cocoa/VideoFullscreenManager.mm:
- WebProcess/cocoa/WebProcessCocoa.mm:
- WebProcess/win/WebProcessMainWin.cpp:
- WebProcess/win/WebProcessWin.cpp:
- WebProcess/wpe/WebProcessMainWPE.cpp:
- 9:46 AM Changeset in webkit [235175] by
-
- 10 edits in trunk/Source/WebKit
Cleanup: Add type alias for spell document tag
https://bugs.webkit.org/show_bug.cgi?id=188817
Reviewed by Simon Fraser.
- UIProcess/TextChecker.h:
- UIProcess/TextCheckerCompletion.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::spellDocumentTag):
- UIProcess/WebPageProxy.h: Also addressed FIXME comment and modernized the code to use a std::optional
while I am here.
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::spellDocumentTagMap):
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::textCheckerFor):
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- UIProcess/win/TextCheckerWin.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/wpe/TextCheckerWPE.cpp:
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
- 9:24 AM Changeset in webkit [235174] by
-
- 7 edits in trunk
Fetch: Stop checking Request.integrity's value in no-cors mode
https://bugs.webkit.org/show_bug.cgi?id=188802
Patch by Rob Buis <rbuis@igalia.com> on 2018-08-22
Reviewed by Frédéric Wang.
LayoutTests/imported/w3c:
Update integrity.html expected result.
- web-platform-tests/fetch/api/basic/integrity-expected.txt:
Source/WebCore:
Remove this check since it was removed from the spec.
Behavior matches Chrome and Firefox.
Test: http/tests/subresource-integrity/sri-fetch.js:
- Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeOptions):
LayoutTests:
Unskip fetch/api/basic/integrity.html and adjust sri-fetch.js.
- TestExpectations:
- http/tests/subresource-integrity/sri-fetch.js:
- 8:59 AM Changeset in webkit [235173] by
-
- 2 edits in trunk/Source/WebCore
Mark MediaStream Recording API as under consideration
https://bugs.webkit.org/show_bug.cgi?id=188822
Reviewed by Jon Lee.
- features.json:
- 8:21 AM Changeset in webkit [235172] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=188845
Unreviewed test gardening.
- platform/gtk/TestExpectations: Note failing tests.
- platform/wpe/TestExpectations: Note failing tests.
- 7:47 AM Changeset in webkit [235171] by
-
- 3 edits in trunk/Source/WebCore
[GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305
Reviewed by Philippe Normand.
The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.
Test: fast/canvas/canvas-createPattern-video-loading.html
- platform/graphics/gstreamer/ImageGStreamer.h:
(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.
- 7:27 AM Changeset in webkit [235170] by
-
- 2 edits in trunk/Source/WebCore
Add changes missing from r234925.
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::isMarginBottomCollapsedThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):
- 7:19 AM Changeset in webkit [235169] by
-
- 6 edits in trunk/Source/WebKit
Use OptionSet for NetworkCache::Storage::TraverseFlags
https://bugs.webkit.org/show_bug.cgi?id=188837
Reviewed by Anders Carlsson.
Type safe flags.
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::readRecordsList):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::Cache::dumpContentsToFile):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):
(WebKit::NetworkCache::Storage::traverse):
- NetworkProcess/cache/NetworkCacheStorage.h:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManager::activityStateDidChange):
Also use OptionSet<>::containsAll() in a few places.
- 7:13 AM Changeset in webkit [235168] by
-
- 2 edits in trunk/LayoutTests
[GTK] imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=187591
Unreviewed test gardening.
Re-enable mediasource-getvideoplaybackquality.html.
The crash was fixed in r233981, and the failure in r234981-r234983.
- platform/gtk/TestExpectations:
- 5:47 AM Changeset in webkit [235167] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r234330): [GTK] svg/as-image/svg-image-with-data-uri-background.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188220
Unreviewed test gardening.
- platform/gtk/TestExpectations: Re-enable svg/as-image/svg-image-with-data-uri-background.html.
- 5:29 AM Changeset in webkit [235166] by
-
- 3 edits in trunk/Source/WebKit
[WPE] pkg-config files should require libwpe
https://bugs.webkit.org/show_bug.cgi?id=188835
Reviewed by Žan Doberšek.
- wpe/wpe-web-extension.pc.in:
- wpe/wpe-webkit.pc.in:
- 5:14 AM Changeset in webkit [235165] by
-
- 15 edits in trunk
[CoordGraphics] Switch to Nicosia::CompositionLayer state tracking
https://bugs.webkit.org/show_bug.cgi?id=188693
Reviewed by Carlos Garcia Campos.
.:
- Source/cmake/OptionsGTK.cmake: Enable USE_NICOSIA alongside
USE_COORDINATED_GRAPHICS and USE_COORDINATED_GRAPHICS_THREADED.
- Source/cmake/OptionsWPE.cmake: Ditto.
Source/WebCore:
Populate Nicosia::CompositionLayer with additional LayerState member
objects. For now we're using pending, staging and committed states,
though it might be possible to narrow down these to just two.
Pending state contains state that will be moved to staging during the
final steps of the next layer flush. flushState() method accumulates all
state changes in the staging state, and also allows the caller to
additionally perform flushing operations that are specific to backing
store, image backing or content layer containers.
commitState() method moves staging state over into the committed state,
again allowing user to pass a functor that receives the just-committed
state and apply it to their composition engine.
Changes in state objects are done under a thread-safe lock. This might
not be completely necessary at this point, but will be useful when
additonal layer state updates will be coming from e.g. the scrolling
thread. It might also make sense to tie in this lock use with the
Nicosia::Scene lock in the future.
Nicosia::ContentLayerTextureMapperImpl is modified slightly to allow
determining during flushes whether an update is pending. This is
necessary for a special case in ThreadedCompositor where content (i.e.
platform) layers like WebGL or video require an additional level of
scene update coordination. This complete special case has to go through
another review to see whether it's still necessary. Ideally we would be
able to remove it.
CoordinatedGraphicsLayer is finally switched over to using
Nicosia layer objects for state updates of any kind. This patch only
adds all the necessary bits, but doesn't yet remove any of the existing
code (but rather disables it temporarily, before it's removed).
Updating of simple state values is already in place. For backing stores,
the flushCompositingStateForThisLayerOnly() method now takes care of
preparing the backing store object if necessary as per layer state,
while the updateContentBuffers() method is switched to operate with
TiledBackingStore objects now kept on the BackingStoreTextureMapperImpl
instance associated with that backing store. Helper methods like
adjustContentsScale() and createBackingStore(), only called from the
updateContentBuffers() method, are removed and the code there inlined.
For image-backed layers, the update is now done directly in
the flushCompositingStateForThisLayerOnly() method, if necessary. The
helper syncImageBacking() method is commented out in order to prevent
double-painting of image buffers for now, but all this (along with the
CoordinatedImageBacking logic in CompositingCoordinator) will be removed
later.
For layers backed by platform layer objects, integration is relatively
simple. setContentsToPlatformLayer() is changed to properly handle any
passed-in platform layer object, and updatePlatformLayer() invokes the
swapBuffersIfNeeded() method on the ContentLayerTextureMapperImpl object
during each flush, if necessary.
In order to ensure any Nicosia-specific state update properly triggers
a composition update, m_nicosia.performLayerUpdate is added and flipped
to true during the flush in case of any state change. This then triggers
a layer sync in the CompositingCoordinator object when the
syncPendingStateChangesIncludingSubLayers() method is called. While no
old-style layer state update is provided, it causes the necessary
synchronization step that properly picks up the Nicosia-provided state
changes. Once the old-style layer state tracking is removed, this method
of update triggering will have to be updated as well.
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::commitState):
(Nicosia::CompositionLayer::accessCommitted):
- platform/graphics/nicosia/NicosiaScene.h:
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.cpp:
(Nicosia::ContentLayerTextureMapperImpl::flushUpdate):
- platform/graphics/nicosia/texmap/NicosiaContentLayerTextureMapperImpl.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):
(WebCore::CoordinatedGraphicsLayer::adjustContentsScale): Deleted.
(WebCore::CoordinatedGraphicsLayer::createBackingStore): Deleted.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Source/WebKit:
Switch CoordinatedGraphicsScene to utilizing Nicosia::CompositionLayer
objects for state updates of the TextureMapper layer tree.
CoordinatedGraphicsScene::paintToCurrentGLContext() now calls
updateSceneState() at the beginning. This is a new method that manages
all updates for a given Nicosia::Scene instance. Any removed layers
have their composition-side state cleaned up, and the current set of
layers is then iterated to ensure and update the corresponding
TextureMapperLayer objects.
Layers with any backing (painted backing store, platform-layer or image
content) are temporarly stored for updating outside of mutex-controlled
scene update. Performing all other state updates outside of this mutex
area will be investigated at a later point.
We then iterate over vectors for each layer backing, gathering any
affected CoordinatedBackingStore or TextureMapperPlatformLayerProxy
objects that we have to update.
This drops a bunch of member variables and helper methods off the
CoordinatedGraphicsScene class. The applyStateChanges() method will be
further simplified in the future. coordinateUpdateCompletionWithClient
logic in ThreadedCompositor should be checked to see whether it still
addresses any real-life problem, because at the moment it imposes a few
additional operations in terms of scene updates that we could really do
without. This will be checked later and removed if possible.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::applyStateChanges):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::compositionLayerImpl):
(WebKit::contentLayerImpl):
(WebKit::backingStoreImpl):
(WebKit::imageBackingImpl):
(WebKit::texmapLayer):
(WebKit::updateBackingStore):
(WebKit::updateImageBacking):
(WebKit::removeLayer):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::updateSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerChildrenIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerFiltersIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerState): Deleted.
(WebKit::CoordinatedGraphicsScene::getLayerByIDIfExists): Deleted.
(WebKit::CoordinatedGraphicsScene::createLayers): Deleted.
(WebKit::CoordinatedGraphicsScene::createLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::deleteLayers): Deleted.
(WebKit::CoordinatedGraphicsScene::deleteLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::setRootLayerID): Deleted.
(WebKit::CoordinatedGraphicsScene::prepareContentBackingStore): Deleted.
(WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::removeBackingStoreIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): Deleted.
(WebKit::CoordinatedGraphicsScene::createTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::syncImageBackings): Deleted.
(WebKit::CoordinatedGraphicsScene::createImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::updateImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::clearImageBackingContents): Deleted.
(WebKit::CoordinatedGraphicsScene::removeImageBacking): Deleted.
(WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer): Deleted.
(WebKit::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded): Deleted.
- Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
(WebKit::CoordinatedGraphicsScene::layerByID): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
- 3:37 AM Changeset in webkit [235164] by
-
- 2 edits in trunk/Source/WebCore
Remove stale file references in WebCore Xcode project
I manually removed these using Xcode and verified that there was
a commit that removed the original files.
Found by tool created for Bug 188754: Tool to fix folders that
should map to directories in Xcode project files.
- WebCore.xcodeproj/project.pbxproj:
(dom/DOMExceptions.in): Removed in r219741.
(Modules/modern-media-controls/start-button.js):
(Modules/modern-media-controls/volume-slider.css):
(Modules/modern-media-controls/icon-button.css):
(Modules/modern-media-controls/volume-slider.js):
(Modules/modern-media-controls/macos-media-controls.js):
(Modules/modern-media-controls/ios-inline-media-controls.css):
(Modules/modern-media-controls/scrubber.css):
(Modules/modern-media-controls/start-button.css):
(Modules/modern-media-controls/scrubber.js):
(Modules/modern-media-controls/icon-button.js):
(Modules/modern-media-controls/macos-compact-inline-media-controls.css):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@2x.png):
(Modules/modern-media-controls/images/iOS/start@1x.png):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@1x.png):
(Modules/modern-media-controls/images/iOS/pause@2x.png):
(Modules/modern-media-controls/images/iOS/play@3x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@2x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@3x.png):
(Modules/modern-media-controls/images/iOS/pip-in@2x.png):
(Modules/modern-media-controls/images/iOS/start@3x.png):
(Modules/modern-media-controls/images/iOS/airplay@1x.png):
(Modules/modern-media-controls/images/iOS/enter-fullscreen@3x.png):
(Modules/modern-media-controls/images/iOS/slider-thumb@2x.png):
(Modules/modern-media-controls/images/iOS/airplay@2x.png):
(Modules/modern-media-controls/images/iOS/pause@3x.png):
(Modules/modern-media-controls/images/iOS/pip-in@3x.png):
(Modules/modern-media-controls/images/iOS/interval-skip-back@1x.png):
(Modules/modern-media-controls/images/iOS/pause@1x.png):
(Modules/modern-media-controls/images/iOS/start@2x.png):
(Modules/modern-media-controls/images/iOS/play@2x.png):
(Modules/modern-media-controls/images/iOS/pip-in@1x.png):
(Modules/modern-media-controls/images/iOS/play@1x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@1x.png):
(Modules/modern-media-controls/images/macOS/rewind@1x.png):
(Modules/modern-media-controls/images/macOS/play@2x.png):
(Modules/modern-media-controls/images/macOS/volume-mute@2x.png):
(Modules/modern-media-controls/images/macOS/airplay-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back@2x.png):
(Modules/modern-media-controls/images/macOS/volume-compact@2x.png):
(Modules/modern-media-controls/images/macOS/start@2x.png):
(Modules/modern-media-controls/images/macOS/exit-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/airplay@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back@1x.png):
(Modules/modern-media-controls/images/macOS/airplay@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fill@2x.png):
(Modules/modern-media-controls/images/macOS/rewind@2x.png):
(Modules/modern-media-controls/images/macOS/play-compact@1x.png):
(Modules/modern-media-controls/images/macOS/media-selection-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pip-in-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in@2x.png):
(Modules/modern-media-controls/images/macOS/play-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/volume-down-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/pause-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen-compact@2x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/pause-compact@1x.png):
(Modules/modern-media-controls/images/macOS/start@1x.png):
(Modules/modern-media-controls/images/macOS/pip-in-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pause-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/play@1x.png):
(Modules/modern-media-controls/images/macOS/exit-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/forward@1x.png):
(Modules/modern-media-controls/images/macOS/enter-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/pause@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fit@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back-compact@2x.png):
(Modules/modern-media-controls/images/macOS/pause@2x.png):
(Modules/modern-media-controls/images/macOS/volume-up-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume-compact@1x.png):
(Modules/modern-media-controls/images/macOS/play-compact@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection@2x.png):
(Modules/modern-media-controls/images/macOS/forward@2x.png):
(Modules/modern-media-controls/images/macOS/interval-skip-back-compact@1x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fill@1x.png):
(Modules/modern-media-controls/images/macOS/airplay-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/media-selection@1x.png):
(Modules/modern-media-controls/images/macOS/volume-mute@1x.png):
(Modules/modern-media-controls/images/macOS/pause-compact@2x.png):
(Modules/modern-media-controls/images/macOS/volume-up-fullscreen@2x.png):
(Modules/modern-media-controls/images/macOS/scale-to-fit@1x.png):
(Modules/modern-media-controls/images/macOS/play-fullscreen@1x.png):
(Modules/modern-media-controls/images/macOS/volume-down-fullscreen@2x.png):
(Modules/modern-media-controls/media/time-labels-support.js):
- Removed in r217823.
(Modules/webvr/VRDisplayCapabilities.cpp): Removed in r229089.
(Modules/webvr/VRFieldOfView.cpp): Removed in r228819.
(rendering/svg/RenderSVGAllInOne.cpp): Removed in r234655.
- 12:13 AM Changeset in webkit [235163] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main.
The script was removed in r235151.
- UserInterface/Main.html:
- 12:01 AM Changeset in webkit [235162] by
-
- 2 edits in trunk/Source/WebCore
Do not try to update the compositing policy when not in accelerated compositing mode
https://bugs.webkit.org/show_bug.cgi?id=188787
Reviewed by Simon Fraser.
RenderLayerCompositor::updateCompositingPolicy() is called very often (called from
RenderLayerCompositor::cacheAcceleratedCompositingFlags()) and it uses WTF::memoryFootprint() to decide the
current compositing policy. Getting the memory footprint is an expensive operation in Linux (and I suspect other
non-cocoa ports too), causing an excessive CPU usage. This caused the WPE and GTK+ unit test
/webkit/WebKitWebContext/uri-scheme to start timing out in the bots, because the test expects things to happen
fast and that's no longer the case. We could reduce the CPU usage a lot by not trying to update the policy when
not in accelerated compositing mode. We will need a solution for the accelerated compositing mode, though.
Fixes WPE/GTK+ unit test /webkit/WebKitWebContext/uri-scheme.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingPolicy): Return early when not in accelerated compositing mode.