Timeline
Oct 28, 2018:
- 11:48 PM Changeset in webkit [237541] by
-
- 8 edits2 adds1 delete in trunk
[WPE] Add the WebKitVersion.h header
https://bugs.webkit.org/show_bug.cgi?id=191015
Reviewed by Michael Catanzaro.
Source/WebKit:
Add the WebKitVersion.h API header for the WPE port. As with other
headers providing the GLib API, we have to provide a WPE-specific
version, but the implementation file can be shared with the GTK port,
and is moved under the UIProcess/API/glib/ directory accordingly.
- PlatformWPE.cmake:
- SourcesWPE.txt:
- UIProcess/API/glib/WebKitVersion.cpp: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitVersion.cpp.
- UIProcess/API/wpe/WebKitVersion.h.in: Added.
- UIProcess/API/wpe/webkit.h:
Tools:
- MiniBrowser/wpe/main.cpp:
(automationStartedCallback): Remove the FIXME and finally enable the
webkit_application_info_set_version() call.
- TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Remove
this FIXME as well and remove the custom WEBKIT_*_VERSION macros.
- 10:58 PM Changeset in webkit [237540] by
-
- 8 edits in tags/Safari-607.1.10.6/Source
Cherry-pick r237421. rdar://problem/45562620
[Web Animations] Turn Web Animations CSS Integration off by default
https://bugs.webkit.org/show_bug.cgi?id=190901
Reviewed by Dean Jackson.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
Source/WebKit:
- Shared/WebPreferences.yaml:
Source/WebKitLegacy/mac:
- WebView/WebPreferences.mm: (+[WebPreferences initialize]):
Source/WebKitLegacy/win:
- WebPreferences.cpp: (WebPreferences::initializeDefaultSettings):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237421 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 PM Changeset in webkit [237539] by
-
- 7 edits in tags/Safari-607.1.10.6/Source
Versioning.
- 10:52 PM Changeset in webkit [237538] by
-
- 1 copy in tags/Safari-607.1.10.6
New tag.
- 10:33 PM Changeset in webkit [237537] by
-
- 7 edits in branches/safari-606-branch/Source/WebCore
Cherry-pick r237466. rdar://problem/45562436
Use dark appearance scrollbar when page background is dark or document supports dark mode.
https://bugs.webkit.org/show_bug.cgi?id=190937
rdar://problem/41225839
Reviewed by Beth Dakin.
Source/WebCore:
- page/FrameView.cpp: (WebCore::FrameView::useDarkAppearance const): Added. Ask the document. (WebCore::FrameView::paintScrollCorner): Set LocalDefaultSystemAppearance based on the scrollbar overlay style too.
- page/FrameView.h:
- platform/ScrollableArea.h: (WebCore::ScrollableArea::useDarkAppearance const): Added. Default to false.
- platform/mac/ScrollAnimatorMac.mm: (-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Added. Ask the ScrollableArea if a dark appearance is desired.
Source/WebCore/PAL:
- pal/spi/mac/NSScrollerImpSPI.h: Added effectiveAppearanceForScrollerImp:.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [237536] by
-
- 3 edits in trunk/Tools
[Win] Remove obsolete code for vcxproj builds in build-api-tests and build-jsc
https://bugs.webkit.org/show_bug.cgi?id=190948
Reviewed by Brent Fulgham.
vcxproj files have been removed in Bug 154388.
- Scripts/build-api-tests: Removed obsolete code to build vcproj.
- Scripts/build-jsc:
(buildMyProject): Ditto. Removed a condition of buiding bmalloc
which is not used because Windows ports are using CMake.
- 5:03 PM Changeset in webkit [237535] by
-
- 13 edits in branches/safari-606-branch
Cherry-pick r237060. rdar://problem/45435468
IOS 12 - Service worker cache not shared when added to homescreen
https://bugs.webkit.org/show_bug.cgi?id=190269
<rdar://problem/45009961>
Reviewed by Alex Christensen.
Source/WebCore:
Expose Cache Storage API when Service Worker API is exposed.
This is used for API tests.
- dom/ScriptExecutionContext.h: Make hasServiceWorkerScheme available outside SERVICE_WORKER compilation flag since used by DOMWindowCaches.
- dom/ScriptExecutionContext.cpp: Ditto.
- Modules/cache/DOMWindowCaches.idl:
Source/WebKit:
NetworkProcessProxy does not always have all its stores in its hash map.
Make sure to check for the default web process pool store when grabbing cache storage parameters from a given session ID.
Add a way to remove the default website data for testing.
This is used in the new API test.
- UIProcess/API/APIWebsiteDataStore.cpp: (API::WebsiteDataStore::deleteDefaultDataStoreForTesting):
- UIProcess/API/APIWebsiteDataStore.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Add test to ensure that CacheStorage use the default website data store parameters.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:01 PM Changeset in webkit [237534] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r235908 - Unreviewed, attempt to fix Apple builds after r235903
https://bugs.webkit.org/show_bug.cgi?id=188872
If it really needs to be inlined, it will need to move to the header....
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageClient const):
- 4:01 PM Changeset in webkit [237533] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r235907 - Unreviewed, fix build after r235903
https://bugs.webkit.org/show_bug.cgi?id=188872
This broke all ports except GTK. Need to add a missing header.
- UIProcess/PageClient.h:
- 4:01 PM Changeset in webkit [237532] by
-
- 11 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r235903 - WebPageProxy should hold a WeakPtr to its PageClient
https://bugs.webkit.org/show_bug.cgi?id=188872
Reviewed by Ryosuke Niwa.
This ensures the PageClient reference is always valid when used.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::startDrag):
(WebKit::WebPageProxy::setDragCaretRect):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::PageClientProtector::PageClientProtector):
(WebKit::PageClientProtector::~PageClientProtector):
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::pageClient const):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList):
(WebKit::WebPageProxy::setViewNeedsDisplay):
(WebKit::WebPageProxy::requestScroll):
(WebKit::WebPageProxy::viewScrollPosition const):
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::layerHostingModeDidChange):
(WebKit::WebPageProxy::viewSize const):
(WebKit::WebPageProxy::startDrag):
(WebKit::WebPageProxy::didPerformDragOperation):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::preferencesDidChange):
(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::didStartProgress):
(WebKit::WebPageProxy::didChangeProgress):
(WebKit::WebPageProxy::didFinishProgress):
(WebKit::WebPageProxy::didDestroyNavigation):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didChangeProvisionalURLForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReceiveTitleForFrame):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
(WebKit::WebPageProxy::didReachLayoutMilestone):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::frameDidBecomeFrameSet):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::unableToImplementPolicy):
(WebKit::WebPageProxy::didNavigateWithNavigationData):
(WebKit::WebPageProxy::didPerformClientRedirect):
(WebKit::WebPageProxy::didPerformServerRedirect):
(WebKit::WebPageProxy::didUpdateHistoryTitle):
(WebKit::WebPageProxy::closePage):
(WebKit::WebPageProxy::setWindowFrame):
(WebKit::WebPageProxy::getWindowFrame):
(WebKit::WebPageProxy::getWindowFrameWithCallback):
(WebKit::WebPageProxy::screenToRootView):
(WebKit::WebPageProxy::rootViewToScreen):
(WebKit::WebPageProxy::syncRootViewToScreen):
(WebKit::WebPageProxy::accessibilityScreenToRootView):
(WebKit::WebPageProxy::rootViewToAccessibilityScreen):
(WebKit::WebPageProxy::didChangeViewportProperties):
(WebKit::WebPageProxy::runOpenPanel):
(WebKit::WebPageProxy::showShareSheet):
(WebKit::WebPageProxy::handleDownloadRequest):
(WebKit::WebPageProxy::didChangeContentSize):
(WebKit::WebPageProxy::showColorPicker):
(WebKit::WebPageProxy::showDataListSuggestions):
(WebKit::WebPageProxy::compositionWasCanceled):
(WebKit::WebPageProxy::registerInsertionUndoGrouping):
(WebKit::WebPageProxy::canUndoRedo):
(WebKit::WebPageProxy::executeUndoRedo):
(WebKit::WebPageProxy::clearAllEditCommands):
(WebKit::WebPageProxy::setTextIndicator):
(WebKit::WebPageProxy::clearTextIndicator):
(WebKit::WebPageProxy::setTextIndicatorAnimationProgress):
(WebKit::WebPageProxy::showPopupMenu):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::registerEditCommand):
(WebKit::WebPageProxy::canUndo):
(WebKit::WebPageProxy::canRedo):
(WebKit::WebPageProxy::setToolTip):
(WebKit::WebPageProxy::setCursor):
(WebKit::WebPageProxy::setCursorHiddenUntilMouseMoves):
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::enterAcceleratedCompositingMode):
(WebKit::WebPageProxy::exitAcceleratedCompositingMode):
(WebKit::WebPageProxy::updateAcceleratedCompositingMode):
(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
(WebKit::WebPageProxy::recommendedScrollbarStyleDidChange):
(WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
(WebKit::WebPageProxy::didFinishLoadingDataForCustomContentProvider):
(WebKit::WebPageProxy::updateBackingStoreDiscardableState):
(WebKit::WebPageProxy::showCorrectionPanel):
(WebKit::WebPageProxy::dismissCorrectionPanel):
(WebKit::WebPageProxy::dismissCorrectionPanelSoon):
(WebKit::WebPageProxy::recordAutocorrectionResponse):
(WebKit::WebPageProxy::useDarkAppearance const):
(WebKit::WebPageProxy::showDictationAlternativeUI):
(WebKit::WebPageProxy::removeDictationAlternatives):
(WebKit::WebPageProxy::dictationAlternatives):
(WebKit::WebPageProxy::setEditableElementIsFocused):
(WebKit::WebPageProxy::takeViewSnapshot):
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
(WebKit::WebPageProxy::signedPublicKeyAndChallengeString):
(WebKit::WebPageProxy::navigationGestureDidBegin):
(WebKit::WebPageProxy::navigationGestureWillEnd):
(WebKit::WebPageProxy::navigationGestureDidEnd):
(WebKit::WebPageProxy::willRecordNavigationSnapshot):
(WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
(WebKit::WebPageProxy::videoControlsManagerDidChange):
(WebKit::WebPageProxy::handleControlledElementIDResponse const):
(WebKit::WebPageProxy::didPerformImmediateActionHitTest):
(WebKit::WebPageProxy::immediateActionAnimationControllerForHitTestResult):
(WebKit::WebPageProxy::didHandleAcceptedCandidate):
(WebKit::WebPageProxy::addPlaybackTargetPickerClient):
(WebKit::WebPageProxy::removePlaybackTargetPickerClient):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange):
(WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerEnabled):
(WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState):
(WebKit::WebPageProxy::didChangeBackgroundColor):
(WebKit::WebPageProxy::didRestoreScrollPosition):
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::didInsertAttachment):
(WebKit::WebPageProxy::didRemoveAttachment):
- UIProcess/WebPageProxy.h:
- UIProcess/gstreamer/WebPageProxyGStreamer.cpp:
(WebKit::WebPageProxy::requestInstallMissingMediaPlugins):
- UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::viewWidget):
(WebKit::WebPageProxy::editorStateChanged):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computeCustomFixedPositionRect const):
(WebKit::WebPageProxy::overflowScrollViewWillStartPanGesture):
(WebKit::WebPageProxy::overflowScrollViewDidScroll):
(WebKit::WebPageProxy::overflowScrollWillStartScroll):
(WebKit::WebPageProxy::overflowScrollDidEndScroll):
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::layerTreeCommitComplete):
(WebKit::WebPageProxy::didReceivePositionInformation):
(WebKit::WebPageProxy::saveImageToLibrary):
(WebKit::WebPageProxy::interpretKeyEvent):
(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
(WebKit::WebPageProxy::couldNotRestorePageState):
(WebKit::WebPageProxy::restorePageState):
(WebKit::WebPageProxy::restorePageCenterAndScale):
(WebKit::WebPageProxy::didGetTapHighlightGeometries):
(WebKit::WebPageProxy::startAssistingNode):
(WebKit::WebPageProxy::stopAssistingNode):
(WebKit::WebPageProxy::showInspectorHighlight):
(WebKit::WebPageProxy::hideInspectorHighlight):
(WebKit::WebPageProxy::showInspectorIndication):
(WebKit::WebPageProxy::hideInspectorIndication):
(WebKit::WebPageProxy::enableInspectorNodeSearch):
(WebKit::WebPageProxy::disableInspectorNodeSearch):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
(WebKit::WebPageProxy::showPlaybackTargetPicker):
(WebKit::WebPageProxy::commitPotentialTapFailed):
(WebKit::WebPageProxy::didNotHandleTapAsClick):
(WebKit::WebPageProxy::didCompleteSyntheticClick):
(WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary):
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::showValidationMessage):
(WebKit::WebPageProxy::didHandleStartDataInteractionRequest):
(WebKit::WebPageProxy::didHandleAdditionalDragItemsRequest):
(WebKit::WebPageProxy::didConcludeEditDataInteraction):
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::windowAndViewFramesChanged):
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::setPromisedDataForImage):
(WebKit::WebPageProxy::didPerformDictionaryLookup):
(WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
(WebKit::WebPageProxy::makeFirstResponder):
(WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder):
(WebKit::WebPageProxy::colorSpace):
(WebKit::WebPageProxy::pluginFocusOrWindowFocusChanged):
(WebKit::WebPageProxy::setPluginComplexTextInputState):
(WebKit::WebPageProxy::executeSavedCommandBySelector):
(WebKit::WebPageProxy::intrinsicContentSizeDidChange):
(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):
(WebKit::WebPageProxy::acceleratedCompositingRootLayer const):
(WebKit::WebPageProxy::showPDFContextMenu):
(WebKit::WebPageProxy::showTelephoneNumberMenu):
(WebKit::WebPageProxy::boundsOfLayerInLayerBackedWindowCoordinates const):
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::startWindowDrag):
(WebKit::WebPageProxy::platformWindow):
(WebKit::WebPageProxy::rootViewToWindow):
(WebKit::WebPageProxy::showValidationMessage):
(WebKit::WebPageProxy::inspectorAttachmentView):
(WebKit::WebPageProxy::remoteObjectRegistry):
- UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::viewWidget):
- UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::viewBackend):
- 1:40 PM Changeset in webkit [237531] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, one more GTK expectations fix
- platform/gtk/inspector/canvas/recording-bitmaprenderer-expected.txt:
- 1:38 PM Changeset in webkit [237530] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, fix a few more expectations from yesterday
These should be timeouts!
- platform/gtk/TestExpectations:
- 1:28 PM WebKitGTK/2.22.x edited by
- (diff)
- 1:28 PM WebKitGTK/2.22.x edited by
- (diff)
- 1:01 PM Changeset in webkit [237529] by
-
- 4 edits in trunk/LayoutTests
Unreviewed, attempt to fix missing trailing whitespace in new expectations
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
- 12:38 PM Changeset in webkit [237528] by
-
- 4 edits in branches/safari-606-branch/Source
Apply patch. rdar://problem/45523764
- 12:12 PM Changeset in webkit [237527] by
-
- 5 edits5 adds in branches/safari-606-branch
Cherry-pick r237395. rdar://problem/45574503
Only report resource timing to parent frame for the first iframe load
https://bugs.webkit.org/show_bug.cgi?id=190498
<rdar://problem/44347398>
Reviewed by Youenn Fablet.
Source/WebCore:
Only the first iframe navigation or the first iframe navigation after about:blank should be reported.
https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface
Test: http/tests/misc/resource-timing-navigation-in-restored-iframe.html
- loader/FrameLoader.cpp: (WebCore::FrameLoader::loadWithDocumentLoader):
- loader/FrameLoader.h: (WebCore::FrameLoader::shouldReportResourceTimingToParentFrame): (WebCore::FrameLoader::setShouldReportResourceTimingToParentFrame): Deleted.
- loader/ResourceTimingInformation.cpp: (WebCore::ResourceTimingInformation::addResourceTiming):
LayoutTests:
The layout test is from Chromium change:
https://chromium-review.googlesource.com/c/chromium/src/+/1186215.
- http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt: Added.
- http/tests/misc/resource-timing-navigation-in-restored-iframe.html: Added.
- http/tests/misc/resources/alert-then-back.html: Added.
- http/tests/misc/resources/navigate-on-message.html: Added.
- http/tests/misc/resources/post-message-to-parent.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:12 PM Changeset in webkit [237526] by
-
- 1 edit1 add in branches/safari-606-branch/JSTests
Cherry-pick r237326. rdar://problem/45363533
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>
Rubber-stamped by Saam Barati.
Adding another test.
- stress/regress-190515-2.js: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237326 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:12 PM Changeset in webkit [237525] by
-
- 7 edits1 add in branches/safari-606-branch
Cherry-pick r237325. rdar://problem/45363533
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>
Reviewed by Saam Barati.
JSTests:
- stress/regress-190515.js: Added.
Source/JavaScriptCore:
- Fixes calls to asArrayModes() to take a structure's IndexingMode instead of IndexingType.
- DFG's compileNewArrayBuffer()'s HaveABadTime case was previously using the node's indexingType (instead of indexingMode) to choose the array structure to use for creating an array buffer with. This turns out to not be an issue because when the VM is in having a bad time, all the arrayStructureForIndexingTypeDuringAllocation structure pointers will point to the SlowPutArrayStorage structure anyway. However, to be strictly correct, we'll fix it to use the structure for the node's indexingMode.
- dfg/DFGAbstractValue.cpp: (JSC::DFG::AbstractValue::set): (JSC::DFG::AbstractValue::mergeOSREntryValue):
- dfg/DFGAbstractValue.h: (JSC::DFG::AbstractValue::validate const):
- dfg/DFGOSRExit.cpp: (JSC::DFG::OSRExit::executeOSRExit):
- dfg/DFGRegisteredStructureSet.cpp: (JSC::DFG::RegisteredStructureSet::arrayModesFromStructures const):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:12 PM Changeset in webkit [237524] by
-
- 12 edits2 adds in branches/safari-606-branch
Cherry-pick r237135. rdar://problem/45562440
[iOS] Can't select text after dismissing the keyboard when changing focus
https://bugs.webkit.org/show_bug.cgi?id=190563
<rdar://problem/44613559>
Reviewed by Tim Horton.
Source/WebKit:
In r230686, we switched from using UIWKSelectionAssistant to UIWKTextInteractionAssistant for handling selection
in non-editable content on iOS; as such, when an editable element loses focus, instead of switching from the
text interaction assistant to the web selection assistant as we've previously done, we now reset our text
interaction assistant by calling-[UIWKTextInteractionAssistant setGestureRecognizers], which removes all of
the current text selection gesture recognizers from WKContentView and regenerates them by building up a tree of
UITextInteractions and adding them to the assistant (see `-[UITextInteractionAssistant
addGestureRecognizersToView:]). In particular,_UITextSelectionForceGesture` is the gesture recognizer used to
trigger text selection when long pressing.
After dismissing the keyboard by tapping the "Done" button, the UITextInteractions and gesture recognizers on
the interaction assistant include:
<UITextInteraction>
…
<UITextIndirectNonEditableInteraction>
<_UIKeyboardBasedNonEditableTextSelectionInteraction>
↳ "_UIKeyboardTextSelectionGestureForcePress" → <_UITextSelectionForceGesture>
However, after the keyboard dismisses due to an editable element losing focus, the UITextInteractions on the
interaction assistant look like this:
<UITextInteraction>
…
<UITextIndirectNonEditableInteraction>
Subsequently, the lack of a
_UIKeyboardBasedNonEditableTextSelectionInteractionmakes text selection by long
pressing impossible, since the_UITextSelectionForceGestureis never introduced toWKContentView. In UIKit,
UITextIndirectNonEditableInteractiononly adds_UIKeyboardBasedNonEditableTextSelectionInteractionas a
child if the text input view — in our case, WKContentView — is missing an input delegate (see-initWithView:).
In the case where the Done button is used to dismiss the keyboard, WKContentView loses first responder, and the
input delegate of WKContentView is cleared out early on, before we call-stopAssistingKeyboard:
-[WKContentView(WKInteraction) setInputDelegate:]
-[UIKeyboardImpl setDelegate:force:]
-[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:]
-[UIResponder _finishResignFirstResponder]
-[UIResponder resignFirstResponder]
-[WKContentView(WKInteraction) resignFirstResponderForWebView]
-[UIKeyboardImpl dismissKeyboard]
However, in the case where the focused element is blurred, we end up clearing out the delegate in
-_stopAssistingNode, *after* we've already called-setGestureRecognizerson the interaction assistant. This
means UIKit will skip adding_UIKeyboardBasedNonEditableTextSelectionInteractionto the text interaction
assistant.
-[WKContentView(WKInteraction) setInputDelegate:]
-[UIKeyboardImpl setDelegate:force:]
-[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:]
-[UIResponder(UIResponderInputViewAdditions) reloadInputViews]
-[WKContentView(WKInteraction) _stopAssistingNode]
To fix this, we simply reset our
inputDelegateearlier in_stopAssistingKeyboardinstead of waiting until
we reload input views. This ensures that UIKit sets up the text interaction assistant's gestures when changing
focus in the same way as we would when the keyboard is dismissed via-resignFirstResponder(e.g. when pressing
the Done button).
Test: editing/selection/ios/select-text-after-changing-focus.html
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView setUpTextSelectionAssistant]): (-[WKContentView _startAssistingKeyboard]): (-[WKContentView _stopAssistingKeyboard]): (-[WKContentView useSelectionAssistantWithGranularity:]): Deleted.
Additionally rename this to -setUpTextSelectionAssistant and remove the selection granularity argument. This was
previously used to switch between web and text interaction assistants.
Tools:
- DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::isShowingKeyboard const):
Add a new UIScriptController method that returns whether the keyboard is shown. See
ui-helper.jsfor more
details.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::isShowingKeyboard const):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
Also rename the
isShowingKeyboardObjective-C property to the more canonicalshowingKeyboard, with
isShowingKeyboardas the getter method.
(-[TestRunnerWKWebView _invokeShowKeyboardCallbackIfNecessary]):
(-[TestRunnerWKWebView _invokeHideKeyboardCallbackIfNecessary]):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::isShowingKeyboard const):
LayoutTests:
Add a new layout test to check that the user can make a selection by long pressing after the keyboard is
dismissed due to changing the focused element.
- editing/selection/ios/select-text-after-changing-focus-expected.txt: Added.
- editing/selection/ios/select-text-after-changing-focus.html: Added.
- resources/ui-helper.js:
Also tweak the behavior of
UIHelper.waitForKeyboardToHide(), so that it resolves immediately if the keyboard
is not shown. This allows us to ensure that tests which useUIHelper.waitForKeyboardToHide()are robust in the
case where they wait for another action to complete (e.g. a simulated tap) prior to registering a keyboard
hiding callback.
(window.UIHelper.waitForKeyboardToHide.return.new.Promise):
(window.UIHelper.waitForKeyboardToHide):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@237135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:25 AM Changeset in webkit [237523] by
-
- 7 edits in branches/safari-606-branch/Source
Versioning.
- 11:18 AM Changeset in webkit [237522] by
-
- 4 edits in trunk
HashMap should support selecting a random entry
https://bugs.webkit.org/show_bug.cgi?id=190814
Reviewed by Ryosuke Niwa.
Source/WTF:
- wtf/HashTable.h:
(WTF::HashTable::random):
(WTF::HashTable::random const): Merge the empty and deleted checks, and
use more idiomatic addressing.
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp: Renamed IsRandom to
IsEvenlyDistributed to reflect the fact that we're only testing the
distribution. Added a test case that covers more table densities and
the remove() operation.
- 7:44 AM WebKitGTK/2.22.x edited by
- (diff)
- 7:34 AM Changeset in webkit [237521] by
-
- 8 edits in trunk
[Payment Request] Implement MerchantValidationEvent.methodName
https://bugs.webkit.org/show_bug.cgi?id=190058
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt:
Source/WebCore:
Implemented MerchantValidationEvent's methodName attribute and MerchantValidationEventInit's
methodName property as specified in the Payment Request API W3C Editor's Draft of
27 September 2018.
Covered by web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::validateMerchant): Passed the payment method identifier
(as a string) to MerchantValidationEvent::create()
- Modules/paymentrequest/MerchantValidationEvent.cpp:
(WebCore::MerchantValidationEvent::create): Validated the methodName before constructing the
event, throwing a RangeError on failure.
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
- Modules/paymentrequest/MerchantValidationEvent.h:
- Modules/paymentrequest/MerchantValidationEvent.idl:
- 6:44 AM Changeset in webkit [237520] by
-
- 9 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r237469 - Fix missing edge cases with JSGlobalObjects having a bad time.
https://bugs.webkit.org/show_bug.cgi?id=189028
<rdar://problem/45204939>
Reviewed by Saam Barati.
JSTests:
- stress/regress-189028.js: Added.
Source/JavaScriptCore:
Consider the following scenario:
let object O1 (of global G1) have an indexing type that is not SlowPut.
let global G2 have a bad time.
let object O2 (of global G2) be set as the prototype of O1.
let object O3 (of global G2) have indexed accessors.
In the existing code, if we set O3 as O2's prototype, we'll have a bug where
O1 will not be made aware that that there are indexed accessors in its prototype
chain.
In this patch, we solve this issue by introducing a new invariant:
A prototype chain is considered to possibly have indexed accessors if any
object in the chain belongs to a global object that is having a bad time.
We apply this invariant as follows:
- Enhance JSGlobalObject::haveABadTime() to also check if other global objects are affected by it having a bad time. If so, it also ensures that those affected global objects have a bad time.
The original code for JSGlobalObject::haveABadTime() uses a ObjectsWithBrokenIndexingFinder
to find all objects affected by the global object having a bad time. We enhance
ObjectsWithBrokenIndexingFinder to also check for the possibility that any global
objects may be affected by other global objects having a bad time i.e.
let g1 = global1
let g2 = global2
let o1 = an object in g1
let o2 = an object in g2
let g1 have a bad time
g2 is affected if
o1 is in the prototype chain of o2,
and o2 may be a prototype.
If the ObjectsWithBrokenIndexingFinder does find the possibility of other global
objects being affected, it will abort its heap scan and let haveABadTime() take
a slow path to do a more complete multi global object scan.
The slow path works as follows:
- Iterate the heap and record the graph of all global object dependencies.
For each global object, record the list of other global objects that are
affected by it.
- Compute a list of global objects that need to have a bad time using the current global object dependency graph.
- For each global object in the list of affected global objects, fire their HaveABadTime watchpoint and convert all their array structures to the SlowPut alternatives.
- Re-run ObjectsWithBrokenIndexingFinder to find all objects that are affected by any of the globals in the list from (2).
- Enhance Structure::mayInterceptIndexedAccesses() to also return true if the structure's global object is having a bad time.
Note: there are 3 scenarios that we need to consider:
let g1 = global1
let g2 = global2
let o1 = an object in g1
let o2 = an object in g2
Scenario 1: o2 is a prototype, and
g1 has a bad time after o1 is inserted into the o2's prototype chain.
Scenario 2: o2 is a prototype, and
o1 is inserted into the o2's prototype chain after g1 has a bad time.
Scenario 3: o2 is NOT a prototype, and
o1 is inserted into the o2's prototype chain after g1 has a bad time.
For scenario 1, when g1 has a bad time, we need to also make sure g2 has
a bad time. This is handled by enhancement 1 above.
For scenario 2, when o1 is inserted into o2's prototype chain, we need to check
if o1's global object has a bad time. If so, then we need to make sure o2's
global also has a bad time (because o2 is a prototype) and convert o2's
storage type to SlowPut. This is handled by enhancement 2 above in conjunction
with JSObject::setPrototypeDirect().
For scenario 3, when o1 is inserted into o2's prototype chain, we need to check
if o1's global object has a bad time. If so, then we only need to convert o2's
storage type to SlowPut (because o2 is NOT a prototype). This is handled by
enhancement 2 above.
- Also add $vm.isHavingABadTime(), $vm.createGlobalObject() to enable us to write some tests for this issue.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
(JSC::JSGlobalObject::haveABadTime):
- runtime/JSGlobalObject.h:
- runtime/JSObject.h:
(JSC::JSObject::mayInterceptIndexedAccesses): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::mayInterceptIndexedAccesses):
- runtime/Structure.h:
- runtime/StructureInlines.h:
(JSC::Structure::mayInterceptIndexedAccesses const):
- tools/JSDollarVM.cpp:
(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):
(JSC::functionCreateGlobalObject):
(JSC::JSDollarVM::finishCreation):
- 6:44 AM Changeset in webkit [237519] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r237450 - [MSE][WTF][Media] Invalid MediaTime should be falsy
https://bugs.webkit.org/show_bug.cgi?id=190893
Reviewed by Jer Noble.
Source/WTF:
This patch modifies the definition of MediaTime so that invalid times
are evaluated to false in the context of a boolean expression.
- wtf/MediaTime.cpp:
(WTF::MediaTime::operator! const):
(WTF::MediaTime::operator bool const):
Tools:
This patch adds additional API tests for the conversions from
MediaTime to boolean.
- TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
A test is added that replicates a bug fixed by this patch.
- media/media-source/media-source-timestampoffset-then-zero-expected.txt: Added.
- media/media-source/media-source-timestampoffset-then-zero.html: Added.
- 6:44 AM Changeset in webkit [237518] by
-
- 13 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r237410 - [GTK][AC] Resizing the window doesn't always update the visible rect
https://bugs.webkit.org/show_bug.cgi?id=189743
Reviewed by Michael Catanzaro.
Disassociate resizing that can be done on an AcceleratedSurface object
between "host resizes" and "client resizes".
The former is done from ThreadedCoordinatedLayerTreeHost directly, and
is currently used only for GTK on X11, where a new pixmap object is
created on each resize, which affects the context ID that is based on
that pixmap object's address.
The latter is done from the composition thread. It's used for GTK on
Wayland and WPE. In both cases, the underlying window object does not
change on each resize, but it's necessary to perform the actual resize
on the composition thread.
So far it hasn't been performed there, which ended up pushing sizes of
the WebKit view and the underlying window object out of sync during
resizing, leaving parts of window unrendered.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- WebProcess/WebPage/AcceleratedSurface.cpp:
(WebKit::AcceleratedSurface::hostResize):
(WebKit::AcceleratedSurface::resize): Deleted.
- WebProcess/WebPage/AcceleratedSurface.h:
(WebKit::AcceleratedSurface::clientResize):
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:
(WebKit::AcceleratedSurfaceWayland::clientResize):
(WebKit::AcceleratedSurfaceWayland::resize): Deleted.
- WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h:
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::hostResize):
(WebKit::AcceleratedSurfaceX11::resize): Deleted.
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:
(WebKit::AcceleratedSurfaceWPE::clientResize):
(WebKit::AcceleratedSurfaceWPE::resize): Deleted.
- WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.h:
- 6:43 AM Changeset in webkit [237517] by
-
- 5 edits5 adds in releases/WebKitGTK/webkit-2.22
Merged r237395 - Only report resource timing to parent frame for the first iframe load
https://bugs.webkit.org/show_bug.cgi?id=190498
<rdar://problem/44347398>
Reviewed by Youenn Fablet.
Source/WebCore:
Only the first iframe navigation or the first iframe navigation after about:blank should be reported.
https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface
Test: http/tests/misc/resource-timing-navigation-in-restored-iframe.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithDocumentLoader):
- loader/FrameLoader.h:
(WebCore::FrameLoader::shouldReportResourceTimingToParentFrame):
(WebCore::FrameLoader::setShouldReportResourceTimingToParentFrame): Deleted.
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
LayoutTests:
The layout test is from Chromium change:
https://chromium-review.googlesource.com/c/chromium/src/+/1186215.
- http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt: Added.
- http/tests/misc/resource-timing-navigation-in-restored-iframe.html: Added.
- http/tests/misc/resources/alert-then-back.html: Added.
- http/tests/misc/resources/navigate-on-message.html: Added.
- http/tests/misc/resources/post-message-to-parent.html: Added.
- 6:43 AM Changeset in webkit [237516] by
-
- 7 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r237325 - DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>
Reviewed by Saam Barati.
JSTests:
- stress/regress-190515.js: Added.
Source/JavaScriptCore:
- Fixes calls to asArrayModes() to take a structure's IndexingMode instead of IndexingType.
- DFG's compileNewArrayBuffer()'s HaveABadTime case was previously using the node's indexingType (instead of indexingMode) to choose the array structure to use for creating an array buffer with. This turns out to not be an issue because when the VM is in having a bad time, all the arrayStructureForIndexingTypeDuringAllocation structure pointers will point to the SlowPutArrayStorage structure anyway. However, to be strictly correct, we'll fix it to use the structure for the node's indexingMode.
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::mergeOSREntryValue):
- dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::validate const):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
- dfg/DFGRegisteredStructureSet.cpp:
(JSC::DFG::RegisteredStructureSet::arrayModesFromStructures const):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):
- 6:43 AM Changeset in webkit [237515] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22
Merged r237278 - [Media] Use nanoseconds as MaximumTimeScale
https://bugs.webkit.org/show_bug.cgi?id=190631
Source/WTF:
1e9 is a much more useful timescale than the previous one 231-1.
Unlike 231-1, which is a prime number, nanosecond scale is pretty
common among some formats like WebM and frameworks like GStreamer
where base 10 timescale is common... and it's those big timescales the
ones that are usually scaled up to MaximumTimeScale.
Reviewed by Jer Noble.
- wtf/MediaTime.cpp:
Tools:
Rebased MediaTime tests covering timescales over the maximum.
Reviewed by Jer Noble.
- TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(TestWebKitAPI::TEST):
- 6:43 AM Changeset in webkit [237514] by
-
- 6 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r237274 - [MSE] timestampOffset can introduce floating-point rounding errors to incoming samples
https://bugs.webkit.org/show_bug.cgi?id=190590
<rdar://problem/45275626>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-timestampoffset-rounding-error.html
SourceBuffer.timestampOffset is a double property, which, when added to a MediaTime will
result in a double-backed MediaTime as PTS & DTS. This can introduce rounding errors when
these samples are appended as overlapping existing samples. Rather than converting a MediaTime
to double-backed when adding the timestampOffset, convert the offset to a multiple of the
sample's timeBase.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::setTimestampOffset):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
LayoutTests:
- media/media-source/media-source-sequence-timestamps-expected.txt:
- media/media-source/media-source-timestampoffset-rounding-error-expected.txt: Added.
- media/media-source/media-source-timestampoffset-rounding-error.html: Added.
- media/media-source/mock-media-source.js:
(makeASample):
- 6:43 AM Changeset in webkit [237513] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore
Merged r237215 - GetIndexedPropertyStorage can GC.
https://bugs.webkit.org/show_bug.cgi?id=190625
<rdar://problem/45309366>
Reviewed by Saam Barati.
This is because if the ArrayMode type is String, the DFG and FTL will be emitting
a call to operationResolveRope, and operationResolveRope can GC. This patch
updates doesGC() to reflect this.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- 6:43 AM Changeset in webkit [237512] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r237191 - [GLib] Build error with RemoteInspector disabled
https://bugs.webkit.org/show_bug.cgi?id=190623
Reviewed by Michael Catanzaro.
Compilation guards added to ensure the build still works when the
Remote WebInspector has been disabled.
- UIProcess/API/glib/WebKitAutomationSession.cpp:
- UIProcess/API/glib/WebKitAutomationSessionPrivate.h:
- UIProcess/RemoteWebInspectorProxy.cpp:
- 6:43 AM Changeset in webkit [237511] by
-
- 4 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r237129 - JSArray::shiftCountWithArrayStorage is wrong when an array has holes
https://bugs.webkit.org/show_bug.cgi?id=190262
<rdar://problem/44986241>
Reviewed by Mark Lam.
JSTests:
- stress/array-prototype-concat-of-long-spliced-arrays.js:
(test):
- stress/slice-array-storage-with-holes.js: Added.
(main):
Source/JavaScriptCore:
We would take the fast path for shiftCountWithArrayStorage when the array
hasHoles(). However, the code for this was wrong. It'd incorrectly update
ArrayStorage::m_numValuesInVector. Since the hasHoles() for ArrayStorage
path is never taken in JetStream 2, this patch just removes that from
the fast path. Instead, we just fallback to the slow path when hasHoles().
If we find evidence that this matters for real use cases, we can
figure out a way to make the fast path work.
- runtime/JSArray.cpp:
(JSC::JSArray::shiftCountWithArrayStorage):
- 6:42 AM Changeset in webkit [237510] by
-
- 3 edits4 adds in releases/WebKitGTK/webkit-2.22
Merged r237119 - [Cairo] Incorrect rendering for 135-deg skews
https://bugs.webkit.org/show_bug.cgi?id=190513
Source/WebCore:
Compensation value to zero the the translation components
of the transformation matrix is incorrect if the matrix
has a shear factor.
Reviewed by Žan Doberšek.
Tests: fast/transforms/skew-x-135deg-with-gradient.html
fast/transforms/skew-y-135deg-with-gradient.html
- platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::drawPatternToCairoContext):
LayoutTests:
Reviewed by Žan Doberšek.
- fast/transforms/skew-x-135deg-with-gradient-expected.html: Added.
- fast/transforms/skew-x-135deg-with-gradient.html: Added.
- fast/transforms/skew-y-135deg-with-gradient-expected.html: Added.
- fast/transforms/skew-y-135deg-with-gradient.html: Added.
- 6:42 AM Changeset in webkit [237509] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r236991 - REGRESSION(r234620): SVGLangSpace::svgAttributeChanged() should invalidate the renderer of the SVGGeometryElement descendant only
https://bugs.webkit.org/show_bug.cgi?id=190411
Reviewed by Simon Fraser.
Source/WebCore:
Test: svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html
When changing the attributes of the SVGLangSpace, we should invalidate
the renderer of the SVGGeometryElement descendant only. Renderer of other
elements, like SVGStopElement, should not be invalidated because they do
not have geometry and they can be used as resources for drawing another
SVGGeometryElement.
- svg/SVGElement.h:
(WebCore::SVGElement::isSVGGeometryElement const):
- svg/SVGGeometryElement.h:
(isType):
- svg/SVGLangSpace.cpp:
(WebCore::SVGLangSpace::svgAttributeChanged):
LayoutTests:
- svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr-expected.txt: Added.
- svg/dynamic-updates/SVGStopElement-dom-xml-lang-attrr.html: Added.
- 6:42 AM Changeset in webkit [237508] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merged r236985 - [WPE][GTK] Complex text crashes with harfbuzz 1.8.8
https://bugs.webkit.org/show_bug.cgi?id=190409
Reviewed by Žan Doberšek.
We discovered that harfbuzz 1.8.8 breaks WebKit by changing the ownership semantics of
hb_icu_get_unicode_funcs() from (transfer full) to (transfer none). Our code was actually
expecting (transfer none), so it's not immediately clear to me why it's crashing now, but
doesn't matter as Behdad recommends removing this line of code because it hasn't been
been needed for many years.
This should be covered by all our complex text tests if the bots were upgraded to the newer
harfbuzz.
- platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
- 6:42 AM Changeset in webkit [237507] by
-
- 4 edits in releases/WebKitGTK/webkit-2.22/Source
Mergeg r236975 - [WPE] Explicitly link against gmodule where used
https://bugs.webkit.org/show_bug.cgi?id=190398
Reviewed by Michael Catanzaro.
- PlatformWPE.cmake:
- 6:42 AM Changeset in webkit [237506] by
-
- 7 edits in releases/WebKitGTK/webkit-2.22
Merged r236961 - [GStreamer] Stealing cross-origin video pixel with HLS
https://bugs.webkit.org/show_bug.cgi?id=190003
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
Report the SecurityOrigin of downloaded adaptivedemux (HLS, DASH,
SmoothStreaming) fragments as tainted if their origin differs from
the manifest SecurityOrigin. SecurityOrigins are stored in the
CachedResourceStreamingClient implemented in the internal
GStreamer HTTP(S) source element.
The implementation is not ideal yet because the fragments download
is performed by the WebProcess, until bug 189967 is fixed. When
this bug is fixed, the m_hasTaintedOrigin member variable should
be removed and all checks be done unconditionally to the
webkithttpsrc element which will manage the download of the
manifests and fragments.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::loadFull): Reset the m_hasTaintedOrigin value.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Get the
fragment URL from the adaptivedemux stats message and check if its
origin is tainted.
(WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const):
Initial implementation by checking the m_hasTaintedOrigin member
variable value.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::responseReceived): Store the
resource origin internally so it can be checked later on by
webKitSrtcWouldTaintOrigin().
(webKitSrcWouldTaintOrigin): Check given origin against cached
origins. This implementation is similar to Cocoa's
WebCoreNSURLSession implementation.
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
LayoutTests:
- platform/gtk/TestExpectations: Unflag now-passing test.
- 6:42 AM Changeset in webkit [237505] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit
Merged r236928 - Validation in Connection::readBytesFromSocket() is too aggressive
https://bugs.webkit.org/show_bug.cgi?id=190281
Reviewed by Michael Catanzaro.
Since r217206 Connection::readBytesFromSocket() validates size of
control message. However, it compares cmsg_len with attachmentMaxAmount,
while Connection::sendOutgoingMessage() computes it as
CMSG_LEN(sizeof(int) * attachmentFDBufferLength) where
attachmentFDBufferLength <= attachmentMaxAmount. This mismatch between
sender and receiver leads to possibility of assertion failure with large
number of attachments, e.g. here 62 attachments have cmsg_length == 264.
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::readBytesFromSocket):
- 6:42 AM Changeset in webkit [237504] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore
Merged r236789 - Ref<FetchResponse> use-after-move in DOMCache::put()
https://bugs.webkit.org/show_bug.cgi?id=190239
Reviewed by Youenn Fablet.
Retrieve reference from the Ref<FetchResponse> object before it's
move-captured in the lambda that's passed to the
FetchResponse::consumeBodyReceivedByChunk() method that is invoked on
that very same object. This is a classic use-after-move bug that pops
up on compilers with different C++ calling convention.
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::put):
- 6:42 AM Changeset in webkit [237503] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.22
Merged r236288 - Release assert under RenderView::pageOrViewLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=189798
<rdar://problem/43659749>
Reviewed by Simon Fraser.
Source/WebCore:
Only the mainframe's render view is sized to the page while printing.
Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize.
Test: printing/crash-while-formatting-subframe-for-printing.html
- rendering/RenderView.cpp:
(WebCore::RenderView::pageOrViewLogicalHeight const):
LayoutTests:
- printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
- printing/crash-while-formatting-subframe-for-printing.html: Added.
- 6:41 AM Changeset in webkit [237502] by
-
- 6 edits1 add in releases/WebKitGTK/webkit-2.22
Merged r236161 - Ensure that ForInContexts are invalidated if their loop local is over-written. https://bugs.webkit.org/show_bug.cgi?id=189571 <rdar://problem/44402277>
Reviewed by Saam Barati.
JSTests:
- stress/regress-189571.js: Added.
Source/JavaScriptCore:
Instead of hunting down every place in the BytecodeGenerator that potentially
needs to invalidate an enclosing ForInContext (if one exists), we simply iterate
the bytecode range of the loop body when the ForInContext is popped, and
invalidate the context if we ever find the loop temp variable over-written.
This has 2 benefits:
- It ensures that every type of opcode that can write to the loop temp will be handled appropriately, not just the op_mov that we've hunted down.
- It avoids us having to check the BytecodeGenerator's m_forInContextStack every time we emit an op_mov (or other opcodes that can write to a local) even when we're not inside a for-in loop.
JSC benchmarks show that that this change is performance neutral.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::popIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::BytecodeGenerator::popStructureForInScope):
(JSC::ForInContext::finalize):
(JSC::StructureForInContext::finalize):
(JSC::IndexedForInContext::finalize):
(JSC::BytecodeGenerator::invalidateForInContextForLocal): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::ForInContext::ForInContext):
(JSC::ForInContext::bodyBytecodeStartOffset const):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):
- bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue const):
(JSC::AssignmentElementNode::bindValue const):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- 6:41 AM Changeset in webkit [237501] by
-
- 3 edits in releases/WebKitGTK/webkit-2.22
Merged r235956 - imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html hits assertion
https://bugs.webkit.org/show_bug.cgi?id=189493
Reviewed by Alex Christensen.
Source/WebCore:
The debug assertion was caused by RefPtr in FormAssociatedElement::formOwnerRemovedFromTree introduced
by r224390 and r223644 ref'ing ShadowRoot while calling removeDetachedChildren inside ~ShadowRoot.
When a form (or any other) element has more than one ref inside removeDetachedChildren,
addChildNodesToDeletionQueue calls notifyChildNodeRemoved in the tree oreder.
However, when a form associated element of this form element appears later in the tree order,
FormAssociatedElement::formOwnerRemovedFromTree can traverse up ancestors including the ShadowRoot.
Fixed the bug by using raw pointers instead. Luckily, there is no DOM mutations or other non-trivial
operations happening in this function so this should be safe.
Test: imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html
- html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::formOwnerRemovedFromTree): Fixed the bug.
LayoutTests:
Unskip the test now that it doesn't hit a debug assertion.
- 5:48 AM WebKitGTK/2.22.x edited by
- (diff)
- 3:47 AM WebKitGTK/2.22.x edited by
- (diff)
- 12:54 AM Changeset in webkit [237500] by
-
- 3 edits in trunk/Source/WebCore
[Web Animations] Remove WebAnimation::description()
https://bugs.webkit.org/show_bug.cgi?id=190995
Reviewed by Dean Jackson.
This method is never used.
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::description): Deleted.
- animation/WebAnimation.h:
- 12:53 AM Changeset in webkit [237499] by
-
- 4 edits in trunk/Source/WebCore
[Web Animations] Move the logic of Document::getAnimations() to DocumentTimeline
https://bugs.webkit.org/show_bug.cgi?id=190994
Reviewed by Dean Jackson.
It would be cleaner to have the logic of document.getAnimations() on the DocumentTimeline instead of the Document, keep more
animation-related code compartmentalized in the animation directory. No change in behavior, so no test update.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::getAnimations const):
- animation/DocumentTimeline.h:
- dom/Document.cpp:
(WebCore::Document::getAnimations):
- 12:51 AM Changeset in webkit [237498] by
-
- 5 edits in trunk/Source/WebCore
[Web Animations] Move bindings methods requiring style flush from CSSAnimation to DeclarativeAnimation
https://bugs.webkit.org/show_bug.cgi?id=190996
Reviewed by Dean Jackson.
Moving all of the IDL bindings methods that require flushing style from CSSAnimation to its superclass
DeclarativeAnimation so we follow the same route in CSSTransition. Note that there was code in
CSSAnimation::bindingsCurrentTime() that was not moved as it proved to not be necessary.
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::bindingsPlay):
(WebCore::CSSAnimation::bindingsPause):
(WebCore::CSSAnimation::bindingsStartTime const): Deleted.
(WebCore::CSSAnimation::setBindingsStartTime): Deleted.
(WebCore::CSSAnimation::bindingsCurrentTime const): Deleted.
(WebCore::CSSAnimation::setBindingsCurrentTime): Deleted.
(WebCore::CSSAnimation::bindingsPlayState const): Deleted.
(WebCore::CSSAnimation::bindingsPending const): Deleted.
(WebCore::CSSAnimation::bindingsReady): Deleted.
(WebCore::CSSAnimation::bindingsFinished): Deleted.
(WebCore::CSSAnimation::flushPendingStyleChanges const): Deleted.
- animation/CSSAnimation.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::bindingsStartTime const):
(WebCore::DeclarativeAnimation::setBindingsStartTime):
(WebCore::DeclarativeAnimation::bindingsCurrentTime const):
(WebCore::DeclarativeAnimation::setBindingsCurrentTime):
(WebCore::DeclarativeAnimation::bindingsPlayState const):
(WebCore::DeclarativeAnimation::bindingsPending const):
(WebCore::DeclarativeAnimation::bindingsReady):
(WebCore::DeclarativeAnimation::bindingsFinished):
(WebCore::DeclarativeAnimation::bindingsPlay):
(WebCore::DeclarativeAnimation::bindingsPause):
(WebCore::DeclarativeAnimation::flushPendingStyleChanges const):
- animation/DeclarativeAnimation.h:
Oct 27, 2018:
- 7:02 PM Changeset in webkit [237497] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, fix content added by a stray Ctrl+V
- platform/gtk/TestExpectations:
- 6:59 PM Changeset in webkit [237496] by
-
- 3 edits6 adds in trunk/LayoutTests
Unreviewed GTK test gardening
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-badInput-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt: Added.
- platform/gtk/inspector/canvas/recording-bitmaprenderer-expected.txt: Added.
- 4:30 PM Changeset in webkit [237495] by
-
- 7 edits2 adds in trunk
Web Inspector: Table should support deleting rows
https://bugs.webkit.org/show_bug.cgi?id=189803
<rdar://problem/44655709>
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Add methods for removing rows from a Table without reloading the data
source. This patch adds Table.prototype.removeRow for removing a single
row, and Table.prototype.removeSelectedRows for removing the entire selection.
The latter also attempts to select a new row, if possible, before removing
the selection.
- UserInterface/Base/IndexSet.js:
(WI.IndexSet.prototype.copy):
- UserInterface/Views/Table.js:
(WI.Table):
(WI.Table.prototype.get numberOfRows):
Cache the number of rows in the table data source. Invalidate cached
value whenever table data is reloaded. Removing rows immediately updates
cached value, without incurring a potentially expensive reload.
(WI.Table.prototype.reloadData):
(WI.Table.prototype.selectRow):
(WI.Table.prototype.deselectRow):
(WI.Table.prototype.removeRow):
(WI.Table.prototype.removeSelectedRows):
Remove the selected rows and select a new row, if possible.
(WI.Table.prototype._updateVisibleRows):
(WI.Table.prototype._handleKeyDown):
(WI.Table.prototype._deselectAllAndSelect):
Drive-by fix: should work whenrowToSelectisn't already selected.
(WI.Table.prototype._removeRows):
Remove rows and adjust the indexes of rows that are shifted up as a result
of preceding rows being removed.
LayoutTests:
- inspector/table/resources/table-utilities.js:
(TestPage.registerInitializer.InspectorTest.TableDelegate.prototype.tableDidRemoveRows):
(TestPage.registerInitializer.createDataSource):
(TestPage.registerInitializer.InspectorTest.createTable):
(TestPage.registerInitializer.InspectorTest.createTableWithDelegate):
(TestPage.registerInitializer):
Update table test utilities to keep TableDataSource backing array in
sync when rows are removed. Also allow the number of table rows to be
specified when creating a table for testing.
- inspector/table/table-remove-rows-expected.txt: Added.
- inspector/table/table-remove-rows.html: Added.
Add tests for new Table methods
removeRow(rowIndex)andremoveSelectedRows().
- inspector/unit-tests/index-set-expected.txt:
- inspector/unit-tests/index-set.html:
Add tests for new IndexSet method
copy().
- 2:27 PM WebKitGTK/2.22.x edited by
- (diff)
- 2:17 PM Changeset in webkit [237494] by
-
- 2 edits in releases/WebKitGTK/webkit-2.22
Merged r235177 - 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):
- 1:35 PM WebKitGTK/2.22.x edited by
- (diff)
- 12:07 PM WebKitGTK/2.22.x edited by
- Propose more backports (diff)
- 11:15 AM WebKitGTK/2.22.x edited by
- (diff)
- 8:34 AM Changeset in webkit [237493] by
-
- 5 edits in trunk/Source/WebCore
[EME] Add a logging macro
https://bugs.webkit.org/show_bug.cgi?id=190984
Reviewed by Xabier Rodriguez-Calvar.
No tests since no new functionality.
- Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::close):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::sessionClosed):
- Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession):
- Modules/encryptedmedia/NavigatorEME.cpp:
(WebCore::NavigatorEME::requestMediaKeySystemAccess):
- platform/Logging.h:
- 7:41 AM Changeset in webkit [237492] by
-
- 9 edits in trunk/Source/JavaScriptCore
Unreviewed, partial rolling in r237254
https://bugs.webkit.org/show_bug.cgi?id=190340
We do not use the added function right now to investigate what is the reason of the regression.
It also does not include any Parser.{h,cpp} changes to ensure that Parser.cpp's inlining decision
seems culprit of the regression on iOS devices.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
- bytecode/UnlinkedFunctionExecutable.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator== const):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
(JSC::CodeCache::getUnlinkedGlobalFunctionExecutable):
- runtime/CodeCache.h:
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::fromGlobalCode):
- runtime/FunctionExecutable.h:
- 7:28 AM Changeset in webkit [237491] by
-
- 2 edits in trunk
Make VIDEO enabled if ENCRYPTED_MEDIA is enabled.
https://bugs.webkit.org/show_bug.cgi?id=190983
Unreviewed build update.
- Source/cmake/WebKitFeatures.cmake:
- 5:55 AM Changeset in webkit [237490] by
-
- 2 edits in trunk/Tools
[GTK] Add bubblewrap feature option
https://bugs.webkit.org/show_bug.cgi?id=190981
Reviewed by Xabier Rodriguez-Calvar.
Without this, it was not possible to disable the bubblewrap sandbox
from the webkit build scripts.
- Scripts/webkitperl/FeatureList.pm:
- 3:24 AM Changeset in webkit [237489] by
-
- 2 edits in trunk
[GTK] Enable experimental encrypted media support
https://bugs.webkit.org/show_bug.cgi?id=190829
Reviewed by Michael Catanzaro.
- Source/cmake/OptionsGTK.cmake:
- 3:05 AM Changeset in webkit [237488] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][EME] Post key received to bus should be done before waking up other threads
https://bugs.webkit.org/show_bug.cgi?id=190822
Reviewed by Philippe Normand.
Notify after posting message to bus.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptSinkEventHandler):
- 3:01 AM Changeset in webkit [237487] by
-
- 7 edits in trunk/Source/WebCore
Fix release build with -DLOG_DISABLED=0
https://bugs.webkit.org/show_bug.cgi?id=190866
Reviewed by Xabier Rodriguez-Calvar.
No new tests since no functionality changed.
- platform/graphics/Font.cpp:
- platform/graphics/Font.h:
- platform/graphics/FontPlatformData.h:
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
- platform/graphics/freetype/FontPlatformDataFreeType.cpp:
- platform/graphics/win/FontPlatformDataWin.cpp: