WebKit-https.git
8 months ago[iOS] Replace "node assistance" terminology in WebKit with "focused element"
wenson_hsieh@apple.com [Thu, 20 Dec 2018 18:42:45 +0000 (18:42 +0000)]
[iOS] Replace "node assistance" terminology in WebKit with "focused element"
https://bugs.webkit.org/show_bug.cgi?id=192936

Reviewed by Tim Horton.

Renames a few methods and data structures in WebKit, to refer to "focused elements" rather than "assisted nodes";
see below for more details. No new tests, because there should be no change in behavior.

* Shared/FocusedElementInformation.cpp: Renamed from Source/WebKit/Shared/AssistedNodeInformation.cpp.
(WebKit::OptionItem::encode const):
(WebKit::OptionItem::decode):
(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):
* Shared/FocusedElementInformation.h: Renamed from Source/WebKit/Shared/AssistedNodeInformation.h.

Rename AssistedNodeInformation to FocusedElementInformation. Additionally, introduce a named type for the
focusedElementIdentifier (which is currently just a `uint64_t`).

(WebKit::OptionItem::OptionItem):
* Shared/ios/InteractionInformationAtPosition.h:
* Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
* SourcesCocoa.txt:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _shouldUpdateKeyboardWithInfo:]):
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:

Rename NodeAssistanceArguments to ElementDidFocusArguments (and also add a FIXME for removing this mechanism
eventually).

(WebKit::WebPageProxy::focusNextFocusedElement):
(WebKit::WebPageProxy::focusNextAssistedNode): Deleted.
* UIProcess/WebPageProxy.messages.in:

Rename StartAssistingNode to ElementDidFocus, and StopAssistingNode to ElementDidBlur.

* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::elementDidFocus):
(WebKit::PageClientImpl::isFocusingElement):
(WebKit::PageClientImpl::elementDidBlur):
(WebKit::PageClientImpl::startAssistingNode): Deleted.
(WebKit::PageClientImpl::isAssistingNode): Deleted.
(WebKit::PageClientImpl::stopAssistingNode): Deleted.
* UIProcess/ios/WKContentView.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView isFocusingElement]):
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView isAssistingNode]): Deleted.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFocusedElementInfo initWithFocusedElementInformation:isUserInitiated:userObject:]):
(hasFocusedElement):
(-[WKContentView cleanupInteraction]):
(-[WKContentView shouldHideSelectionWhenScrolling]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:]):
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView _zoomToRevealFocusedElement]):
(-[WKContentView inputView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView clearSelection]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _isInteractingWithFocusedElement]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKContentView accessoryClear]):
(-[WKContentView _updateAccessory]):
(-[WKContentView insertTextSuggestion:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView textInputTraits]):
(-[WKContentView isScrollableForKeyboardScrollViewAnimator:]):
(-[WKContentView focusedElementInformation]):
(-[WKContentView focusedSelectElementOptions]):
(rectToRevealWhenZoomingToFocusedElement):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _elementDidBlur]):
(-[WKContentView _didReceiveEditorStateUpdateAfterFocus]):
(-[WKContentView updateCurrentFocusedElementInformation:]):
(-[WKContentView presentViewControllerForCurrentFocusedElement]):
(-[WKContentView focusedFormControlViewDidSubmit:]):
(-[WKContentView focusedFormControlViewDidCancel:]):
(-[WKContentView focusedFormControlViewDidBeginEditing:]):
(-[WKContentView rectForFocusedFormControlView:]):
(-[WKContentView nextRectForFocusedFormControlView:]):
(-[WKContentView previousRectForFocusedFormControlView:]):
(-[WKContentView actionNameForFocusedFormControlView:]):
(-[WKContentView focusedFormControlViewDidRequestNextNode:]):
(-[WKContentView focusedFormControlViewDidRequestPreviousNode:]):
(-[WKContentView hasNextNodeForFocusedFormControlView:]):
(-[WKContentView hasPreviousNodeForFocusedFormControlView:]):
(-[WKContentView selectMenu:didSelectItemAtIndex:]):
(-[WKContentView numberOfItemsInSelectMenu:]):
(-[WKContentView selectMenu:displayTextForItemAtIndex:]):
(-[WKContentView selectMenu:didCheckItemAtIndex:checked:]):
(-[WKContentView selectMenuUsesMultipleSelection:]):
(-[WKContentView selectMenu:hasSelectedOptionAtIndex:]):
(-[WKContentView _updateChangedSelection:]):
(-[WKContentView _autofillContext]):
(-[WKContentView dismissQuickboardViewControllerAndRevealFocusedFormOverlayIfNecessary:]):
(-[WKContentView allowsLanguageSelectionMenuForListViewController:]):
(-[WKContentView inputLabelTextForViewController:]):
(-[WKContentView initialValueForViewController:]):
(-[WKContentView shouldDisplayInputContextViewForListViewController:]):
(-[WKContentView numericInputModeForListViewController:]):
(-[WKContentView textContentTypeForListViewController:]):
(-[WKContentView allowsDictationInputForListViewController:]):
(-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): Deleted.
(hasAssistedNode): Deleted.

Replaced with hasFocusedElement.

(-[WKContentView _isInteractingWithAssistedNode]): Deleted.
(-[WKContentView assistedNodeInformation]): Deleted.
(-[WKContentView assistedNodeSelectOptions]): Deleted.
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): Deleted.
(-[WKContentView _stopAssistingNode]): Deleted.
(-[WKContentView updateCurrentAssistedNodeInformation:]): Deleted.
(-[WKContentView presentViewControllerForCurrentAssistedNode]): Deleted.
* UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(-[WKDataListSuggestionsControl textAlignment]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::focusedElementInformationCallback):
(WebKit::WebPageProxy::requestFocusedElementInformation):
(WebKit::WebPageProxy::computeCustomFixedPositionRect const):
(WebKit::WebPageProxy::didCommitLayerTree):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::blurFocusedElement):
(WebKit::WebPageProxy::elementDidFocus):
(WebKit::WebPageProxy::elementDidBlur):
(WebKit::WebPageProxy::focusNextFocusedElement):
(WebKit::WebPageProxy::setFocusedElementValue):
(WebKit::WebPageProxy::setFocusedElementValueAsNumber):
(WebKit::WebPageProxy::setFocusedElementSelectedIndex):
(WebKit::WebPageProxy::assistedNodeInformationCallback): Deleted.
(WebKit::WebPageProxy::requestAssistedNodeInformation): Deleted.
(WebKit::WebPageProxy::blurAssistedNode): Deleted.
(WebKit::WebPageProxy::startAssistingNode): Deleted.
(WebKit::WebPageProxy::stopAssistingNode): Deleted.
(WebKit::WebPageProxy::focusNextAssistedNode): Deleted.
(WebKit::WebPageProxy::setAssistedNodeValue): Deleted.
(WebKit::WebPageProxy::setAssistedNodeValueAsNumber): Deleted.
(WebKit::WebPageProxy::setAssistedNodeSelectedIndex): Deleted.
* UIProcess/ios/forms/WKFormColorPicker.mm:
(-[WKColorPicker initWithView:]):
(-[WKColorPicker setControlValueFromUIColor:]):
* UIProcess/ios/forms/WKFormInputControl.mm:
(-[WKDateTimePicker initWithView:datePickerMode:]):
(-[WKDateTimePicker shouldPresentGregorianCalendar:]):
(-[WKDateTimePicker _dateChangedSetAsNumber]):
(-[WKDateTimePicker _dateChangedSetAsString]):
(-[WKDateTimePicker controlBeginEditing]):
(-[WKFormInputControl initWithView:]):
(-[WKDateTimePopover clear:]):
(-[WKDateTimePopover initWithView:datePickerMode:]):
* UIProcess/ios/forms/WKFormPopover.mm:
(-[WKRotatingPopover presentPopoverAnimated:]):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
(-[WKFormSelectControl initWithView:]):
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker initWithView:]):
(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKMultipleSelectPicker pickerView:numberOfRowsInComponent:]):
(-[WKMultipleSelectPicker findItemIndexAt:]):
(-[WKMultipleSelectPicker pickerView:row:column:checked:]):
(-[WKSelectSinglePicker initWithView:]):
(-[WKSelectSinglePicker controlEndEditing]):
(-[WKSelectSinglePicker pickerView:numberOfRowsInComponent:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectSinglePicker pickerView:didSelectRow:inComponent:]):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectTableViewController initWithView:hasGroups:]):
(-[WKSelectTableViewController tableView:numberOfRowsInSection:]):
(-[WKSelectTableViewController tableView:titleForHeaderInSection:]):
(-[WKSelectTableViewController findItemIndexAt:]):
(-[WKSelectTableViewController findItemAt:]):
(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectTableViewController tableView:didSelectRowAtIndexPath:]):
(-[WKSelectPopover initWithView:hasGroups:]):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::elementDidFocus):
(WebKit::WebChromeClient::elementDidRefocus):
(WebKit::WebChromeClient::elementDidBlur):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::setTextAsync):
(WebKit::WebPage::resetFocusedElementForFrame):
(WebKit::WebPage::elementDidRefocus):
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::resetAssistedNodeForFrame): Deleted.
* WebProcess/WebPage/WebPage.h:

Refactor elementDid{Refocus|Focus|Blur} to take `Element&` rather than `Node*`.

* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:

Replace m_assistedNode (a `RefPtr<Node>`) with m_focusedElement (a `RefPtr<Element>`).

(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::requestFocusedElementInformation):
(WebKit::WebPage::blurFocusedElement):
(WebKit::WebPage::setFocusedElementValue):
(WebKit::WebPage::setFocusedElementValueAsNumber):
(WebKit::WebPage::setFocusedElementSelectedIndex):
(WebKit::innerFrameQuad):
(WebKit::constrainPoint):
(WebKit::WebPage::selectWithGesture):
(WebKit::WebPage::startAutoscrollAtPosition):
(WebKit::WebPage::visiblePositionInFocusedNodeForPoint):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::rangeForGranularityAtPoint):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPage::updateSelectionWithExtentPoint):
(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::focusNextFocusedElement):
(WebKit::WebPage::getFocusedElementInformation):
(WebKit::WebPage::autofillLoginCredentials):
(WebKit::WebPage::requestAssistedNodeInformation): Deleted.
(WebKit::WebPage::blurAssistedNode): Deleted.
(WebKit::WebPage::setAssistedNodeValue): Deleted.
(WebKit::WebPage::setAssistedNodeValueAsNumber): Deleted.
(WebKit::WebPage::setAssistedNodeSelectedIndex): Deleted.
(WebKit::WebPage::focusNextAssistedNode): Deleted.
(WebKit::WebPage::getAssistedNodeInformation): Deleted.

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

8 months agoUnreviewed, rolling out r239417.
ryanhaddad@apple.com [Thu, 20 Dec 2018 18:32:38 +0000 (18:32 +0000)]
Unreviewed, rolling out r239417.

Introduced two API test failures on macOS.

Reverted changeset:

"<rdar://problem/46194315> macOS: WebKit1 does not handle
occlusion changes"
https://bugs.webkit.org/show_bug.cgi?id=192821
https://trac.webkit.org/changeset/239417

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

8 months agoWeb Inspector: UIString should take an optional key and description to aid localization
drousso@apple.com [Thu, 20 Dec 2018 18:29:45 +0000 (18:29 +0000)]
Web Inspector: UIString should take an optional key and description to aid localization
https://bugs.webkit.org/show_bug.cgi?id=153962
<rdar://problem/24542505>

Reviewed by Brian Burg.

Source/WebInspectorUI:

* UserInterface/Base/LoadLocalizedStrings.js:
(WI.UIString):

* UserInterface/Test/Test.js:
(WI.UIString):

* UserInterface/Views/AuditTestGroupContentView.js:
(WI.AuditTestGroupContentView.prototype.initialLayout):

Tools:

* Scripts/extract-localizable-js-strings:

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

8 months agoWKWebView default UA doesn't freeze the build number
bfulgham@apple.com [Thu, 20 Dec 2018 18:27:46 +0000 (18:27 +0000)]
WKWebView default UA doesn't freeze the build number
https://bugs.webkit.org/show_bug.cgi?id=192809
<rdar://problem/44687185>

Reviewed by Andy Estes.

Always reports the frozen build number.

Source/WebKit:

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(defaultApplicationNameForUserAgent): Do not expose the actual build number through this API.

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
(-[WebView _setBrowserUserAgentProductVersion:buildVersion:bundleVersion:]): Do not report the
actual build number through this method call.
(-[WebView _setUIWebViewUserAgentWithBuildVersion:]): Ditto.

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

8 months ago[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker...
ryanhaddad@apple.com [Thu, 20 Dec 2018 18:25:09 +0000 (18:25 +0000)]
[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-registration-with-type.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=192938

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as flaky.

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

8 months agoWeb Inspector: Audits: don't cache default audits
drousso@apple.com [Thu, 20 Dec 2018 18:15:46 +0000 (18:15 +0000)]
Web Inspector: Audits: don't cache default audits
https://bugs.webkit.org/show_bug.cgi?id=192918
<rdar://problem/46626543>

Reviewed by Brian Burg.

Instead of adding the default audits to the "audits" `WI.ObjectStore`, which preserves them
across WebInspector sessions, load them every time WebInspector is opened (unless there are
existing audits) so that the localized strings are able to respond to locale changes.

* UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype.removeTest):
(WI.AuditManager.prototype.addDefaultTestsIfNeeded):

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

8 months agoAdded a dark mode color scheme.
jond@apple.com [Thu, 20 Dec 2018 18:14:52 +0000 (18:14 +0000)]
Added a dark mode color scheme.
https://bugs.webkit.org/show_bug.cgi?id=192930

Reviewed by Timothy Hatcher.

* .htaccess: Added convenience redirects for /features and /css-features
* wp-content/themes/webkit/build-archives.php: Customized dark color styles for the page.
* wp-content/themes/webkit/css-status.php: Implemented new design and dark styles support.
* wp-content/themes/webkit/front-header.php: Added dark color styles.
* wp-content/themes/webkit/functions.php: Added new feature status navigation menu.
* wp-content/themes/webkit/header.php: Specify support for light and dark color schemes.
* wp-content/themes/webkit/images/chevron-dark.svg: Added.
* wp-content/themes/webkit/images/chevron.svg: Switch to HSL color.
* wp-content/themes/webkit/images/filter.svg: Added.
* wp-content/themes/webkit/images/icons.svg: Use currentColor for dark mode.
* wp-content/themes/webkit/images/invert-lightness.svg: Added.
* wp-content/themes/webkit/images/search.svg: Added.
* wp-content/themes/webkit/sitemap.php: Customized dark color styles for the page.
* wp-content/themes/webkit/status.php: Updated design and dark styles support.
* wp-content/themes/webkit/style.css: Added dark style rules and switched to custom properties.
(:root):
(@media(prefers-color-scheme:dark)):
(body):
(a):
(a,):
(hr):
(code):
(main):
(a[name]):
(p > a[name]::before):
(a[name]:hover):
(a[name]:hover::before):
(p:hover > a[name]::before):
(input[type=text]):
(input[type=submit]):
(.screen-reader-text:focus):
(.pagination .page-numbers,):
(.pagination .menu-item a):
(.pagination .page-numbers:not(.current, .dots):hover):
(.pagination .dots,):
(.connected.pagination .menu-item):
(.connected.pagination .menu-item:hover a):
(.connected.pagination .menu-item:first-child a):
(.connected.pagination .menu-item:last-child a):
(.connected.pagination .menu-item.current-menu-item a,):
(.menu-feature-pages-container):
(.nextrouter):
(.nextrouter.previous):
(.nextrouter:hover,):
(.nextrouter a):
(.nextrouter-copy):
(.nextrouter .label):
(.nextrouter .link):
(.tiles):
(.tile):
(.tile .background-image):
(.tile .background-image svg):
(.tile.category-web-inspector svg):
(.tile.category-performance svg):
(.tile.category-javascript svg):
(.tile.category-css svg):
(.tile.category-standards svg):
(.tile.category-contributing svg):
(.tile.category-storage svg):
(.tile.category-layout svg):
(.tile.category-safari-technology-preview svg):
(.tile.category-accessibility svg):
(.tile.category-security svg):
(.tile.category-privacy svg):
(.tile .background-image.loaded):
(.tile:not(.has-post-thumbnail) .background-image,):
(.featured-tile .tile-content):
(.background-vignette):
(.tag-window .background-image):
(.tag-window .background-vignette):
(.featured-tile.tag-dark .background-vignette):
(.featured-tile.tag-dark .tile-content):
(.featured-tile.tag-dark .tile-content a):
(.icon-tile .icon):
(.icon-tile,):
(.gray-tile):
(.gray-tile a):
(.amber-tile):
(.blue-tile):
(.twitter-tile):
(.icon.twitter-icon):
(pre):
(code .keyword,):
(code .keyword.builtin,):
(code .keyword.type):
(code .preprocessor):
(code .comment):
(code .comment .doc):
(code .identifier):
(code .string,):
(code .escaped):
(code .number,):
(code .regex,):
(code .attribute.value):
(code .operator):
(code .keyword.operator):
(code .whitespace):
(code .error):
(code .doctype):
(code .property):
(code.xml .comment,):
(code.xml .preprocessor .keyword):
(code.xml .meta,):
(code.cpp .preprocessor .identifier):
(pre::-moz-selection,):
(pre::selection, pre span::selection):
(code.css .attribute,):
(code.css .keyword):
(code.css .number):
(article h1,):
(article .byline p):
(article thead, article tfoot):
(article tr):
(article blockquote):
(.post .bodycopy > p:last-child:after):
(article div.note):
(article .foreword):
(article .cliptop):
(article .clipbottom):
(article .clipright):
(article .clipleft):
(article .mattewhite):
(article .mattewhite:not(.widescreen)):
(figure.table):
(article figcaption):
(article figcaption::before):
(.table-of-contents):
(.site-logo):
(.feature-header:after,):
(header nav a,):
(header nav a:hover,):
(.sub-menu-layer):
(.sub-menu-layer:after):
(.sub-menu-layer:before):
(@media only screen and (max-width: 920px)):
(header .menu):
(header nav a):
(header .menu > .menu-item > .sub-menu):
(@media only screen and (max-width: 690px)):
(article .scrollable):
(@media only screen and (max-width: 600px)):
(.table-of-contents label:after):
(@media only screen and (max-width: 415px)):
(article .invert-brightness,):
(.preserve-color, video):
(.preserve-color:hover,):
(.nextrouter .link,):
(.search-input):
(.filters-toggle-button):
(a > code): Deleted.
(.pagination .page-numbers): Deleted.
(.nextrouter:hover): Deleted.
(.nextrouter.previous:hover): Deleted.
(.icon-tile, .icon-tile a): Deleted.
(.gray-tile, .gray-tile a): Deleted.
(code .string, code .char): Deleted.
(code .number, code .tag): Deleted.
(code .regex, code .attribute): Deleted.
(code.xml .meta, code.xml .meta .keyword): Deleted.
(code::-moz-selection, code span::-moz-selection): Deleted.
(code::selection, code span::selection): Deleted.
(article h1 a): Deleted.
(.feature-header:after): Deleted.
(.feature.opened .feature-header:after): Deleted.
* wp-content/themes/webkit/team.php: Customized dark color styles for the page.

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

8 months agoSwitch tabs before retuning PiP video to inline.
commit-queue@webkit.org [Thu, 20 Dec 2018 18:11:31 +0000 (18:11 +0000)]
Switch tabs before retuning PiP video to inline.
https://bugs.webkit.org/show_bug.cgi?id=192767
rdar://problem/46006046

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-12-20
Reviewed by Jer Noble.

No new tests because this code path only happens with a user action on system UI.

When exiting PiP, notify the fullscreen change observer so it can restore client UI state before exiting.

* platform/mac/VideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC pipShouldClose:]):

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

8 months agoEnable MediaCapabilities by default.
jer.noble@apple.com [Thu, 20 Dec 2018 18:08:14 +0000 (18:08 +0000)]
Enable MediaCapabilities by default.
https://bugs.webkit.org/show_bug.cgi?id=192340
<rdar://problem/46435149>

Reviewed by Dean Jackson.

* Shared/WebPreferences.yaml:

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

8 months agoWebDriver: Session::findElements should handle user prompts
commit-queue@webkit.org [Thu, 20 Dec 2018 17:45:18 +0000 (17:45 +0000)]
WebDriver: Session::findElements should handle user prompts
https://bugs.webkit.org/show_bug.cgi?id=192928

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-12-20
Reviewed by Michael Catanzaro.

All user prompt tests for commands using Session::findElements are failing because of this.

* Session.cpp:
(WebDriver::Session::findElements):

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

8 months ago[GTK] WebDriver: tests in imported/w3c/webdriver/tests/element_clear/user_prompts...
commit-queue@webkit.org [Thu, 20 Dec 2018 17:44:39 +0000 (17:44 +0000)]
[GTK] WebDriver: tests in imported/w3c/webdriver/tests/element_clear/user_prompts.py are failing
https://bugs.webkit.org/show_bug.cgi?id=192927

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-12-20
Reviewed by Michael Catanzaro.

Source/WebDriver:

Handle user prompts in element clear command.

* Session.cpp:
(WebDriver::Session::elementClear):

Source/WebKit:

Give the focus back to the web view when a dialog is dismissed.

* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseContainerRemove):

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

8 months agoWeb Inspector: Dark Mode: unreadable background color for tables containing object...
drousso@apple.com [Thu, 20 Dec 2018 17:37:56 +0000 (17:37 +0000)]
Web Inspector: Dark Mode: unreadable background color for tables containing object previews
https://bugs.webkit.org/show_bug.cgi?id=192887
<rdar://problem/46855270>

Reviewed by Brian Burg.

* UserInterface/Views/LogContentView.css:
(.console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
(@media (prefers-dark-interface) .console-item .data-grid tr.selected): Added.
(@media (prefers-dark-interface) .console-messages:focus .console-item.selected .data-grid tr.selected): Added.
(@media (prefers-dark-interface) .console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.

* UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
(.content-view.indexed-database-object-store > .data-grid tr.selected):
(.content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
(@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid tr.selected): Added.
(@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
(@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected td:not(:last-child)): Added.

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

8 months agoUnparented WKWebView can't retrieve main resource data for a main frame plugin
timothy_horton@apple.com [Thu, 20 Dec 2018 17:35:17 +0000 (17:35 +0000)]
Unparented WKWebView can't retrieve main resource data for a main frame plugin
https://bugs.webkit.org/show_bug.cgi?id=192923
<rdar://problem/46859068>

Reviewed by Wenson Hsieh.

Source/WebKit:

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::liveResourceData const):
If the WKWebView is unparented, we may not immediately initialize the plugin.
In that case, PluginView holds on to the backing data until the plugin
is initialized. If a WKWebView API client asks for the backing data
for the plugin during this time, we should return it, instead of bailing.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/WebKitCocoa/GetResourceData.mm:
Add a test ensuring that both parented and unparented WKWebViews can
retrieve main resource data when loading a PDF.

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

8 months ago[iOS] Focusing an editable element should scroll to reveal the selection
wenson_hsieh@apple.com [Thu, 20 Dec 2018 16:28:55 +0000 (16:28 +0000)]
[iOS] Focusing an editable element should scroll to reveal the selection
https://bugs.webkit.org/show_bug.cgi?id=192802
<rdar://problem/46781759>

Reviewed by Tim Horton.

Source/WebKit:

Currently, when tapping on an editable element, logic in -[WKWebView _zoomToFocusRect:…:] attempts to adjust the
visible viewport such that the rect containing the selection is visible. However, AssistedNodeInformation's
selectionRect is used here, which (as the FIXME in WebPage::getAssistedNodeInformation notes) is either the last
touch location, or the top left of the element if the touch location is outside of the element's bounding rect.
This leads to confusing and undesirable behavior when tapping near the bottom of a large contenteditable element
to focus it, since the actual selection will end up near the top of the element, yet we'll try to scroll to
reveal the bottom of the element, which causes the visible selection to scroll offscreen. Notably, this affects
scenarios involving editable web views embedded in apps, such as Mail compose.

Right now, we use the last touch location as an approximation for the selection rect because the selection may
have not yet been updated at the moment when focus moves into an editable element. To fix this, we defer the
process of zooming to the focused element rect until after the selection changes and the UI process is updated
with information about the new selection rects.

Test: editing/selection/ios/selection-is-visible-after-focusing-editable-area.html

* Shared/AssistedNodeInformation.cpp:
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:

Rename selectionRect to elementInteractionLocation, to more accurately reflect its value and purpose. This isn't
strictly always the last touch location, since we may default to the focused element location instead if the
last touch location is outside of the element rect.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

Tweak a constant that determines the minimum amount of margin to leave between the selection rect and the edge
of the window when scrolling to reveal the focused element. Previously, this was larger than necessary to
accomodate for the fact that the "selection rect" used when zooming to the focused element did not take the
actual selection into account at all, and was simply a 1 by 1 rect; this meant that the margin needed to be
large enough to exceed the usual height of a text caret in editable content. Since we now use the real selection
rect, we can be much less generous with this margin.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanupInteraction]):
(-[WKContentView observeValueForKeyPath:ofObject:change:context:]):

Don't additionally update the selection in the middle of triggering zooming to the focused element; on
particular versions of iOS, this now attempts to scroll the selection rect on-screen, which then conflicts with
zooming to reveal the focused element.

(-[WKContentView _zoomToRevealFocusedElement]):

Renamed from _displayFormNodeInputView to _zoomToRevealFocusedElement, to make the purpose of this function more
clear. Additionally, pull logic to update the accessory view out of this method, so that it's strictly concerned
with zooming to the focused element.

(-[WKContentView inputView]):

Add a FIXME describing the implications of zooming to the focused element in the implementation of -inputView.
See also: <https://bugs.webkit.org/show_bug.cgi?id=192878>.

(-[WKContentView accessoryTab:]):

Fix a subtle issue when keeping track of _didAccessoryTabInitiateFocus. Currently, this is set to YES in
-accessoryTab: and unset in _displayFormNodeInputView, but since _displayFormNodeInputView may be invoked
multiple times for the same focused element (see: -inputView), we might end up zooming to the focused element
with _didAccessoryTabInitiateFocus set to NO, even though we initiated focus with the previous/next buttons.

Instead, temporarily set a different ivar, _isChangingFocusUsingAccessoryTab, to YES in -accessoryTab:, and
unset it in the completion handler after the focused element has changed. Then, when we _startAssistingNode:,
set _didAccessoryTabInitiateFocus to _isChangingFocusUsingAccessoryTab. This ensures that the correctness of
_didAccessoryTabInitiateFocus isn't tied to the number of times -[WKContentView inputView] is invoked when
focusing an element.

(shouldZoomToRevealSelectionRect):
(rectToRevealWhenZoomingToFocusedElement):

Add a helper method to determine the selection rect to use when zooming to reveal the focused element. ASSERTs
that we have post-layout data in the EditorState.

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

When "assisting" a focused element, immediately zoom to it if we don't need selection information to compute the
rect to zoom to; otherwise, defer zooming until we receive the first editor state update in the UI process that
contains information about our selection rects.

(-[WKContentView _stopAssistingNode]):
(-[WKContentView _didReceiveEditorStateUpdateAfterFocus]):

If necessary, reveal the focused element by zooming.

(-[WKContentView _updateInitialWritingDirectionIfNecessary]):

Pull this initial writing direction update logic out into a separate helper method.

(-[WKContentView _displayFormNodeInputView]): Deleted.

Replaced by _zoomToRevealFocusedElement.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::elementDidRefocus):

This currently calls WebChromeClient::elementDidFocus; instead, call the new WebPage::elementDidRefocus;
additionally, make this available on all PLATFORM(COCOA), rather than just IOS_FAMILY.

* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::elementDidRefocus): Deleted.

Replaced by the PLATFORM(COCOA) version.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::elementDidRefocus):

When refocusing an element, ensure that post-layout editor state data is sent to the UI process by including a
full EditorState in the next layer tree transaction.

* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):

Call elementDidRefocus instead of elementDidFocus, in the case where the existing focused element is clicked.

(WebKit::WebPage::getAssistedNodeInformation):

Adjust for the change from selectionRect to elementInteractionLocation.

LayoutTests:

Adds a new layout test to verify that tapping near the bottom of a tall editable element to focus it doesn't
cause the page to scroll up (and, as a result, leave the selection caret obscured).

* editing/selection/ios/selection-is-visible-after-focusing-editable-area-expected.txt: Added.
* editing/selection/ios/selection-is-visible-after-focusing-editable-area.html: Added.

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

8 months ago[GTK][WPE] Grant the sandbox read access to XDG_DATA_HOME/prgname
commit-queue@webkit.org [Thu, 20 Dec 2018 16:18:26 +0000 (16:18 +0000)]
[GTK][WPE] Grant the sandbox read access to XDG_DATA_HOME/prgname
https://bugs.webkit.org/show_bug.cgi?id=192929

Patch by Patrick Griffis <pgriffis@igalia.com> on 2018-12-20
Reviewed by Michael Catanzaro.

* UIProcess/API/glib/WebKitWebContext.cpp:
* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):

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

8 months agoJSTests:
tzagallo@apple.com [Thu, 20 Dec 2018 16:06:44 +0000 (16:06 +0000)]
JSTests:
WTF::String and StringImpl overflow MaxLength
https://bugs.webkit.org/show_bug.cgi?id=192853
<rdar://problem/45726906>

Reviewed by Mark Lam.

* stress/string-16bit-repeat-overflow.js: Added.
(catch):

Source/WTF:
Consistently use MaxLength for all WTF strings
https://bugs.webkit.org/show_bug.cgi?id=192853
<rdar://problem/45726906>

Reviewed by Mark Lam.

MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
but all the assertions were still done using UINT_MAX. Change it to
use MaxLength for all checks.

* wtf/text/StringImpl.cpp:
(WTF::StringImpl::createUninitializedInternalNonEmpty):
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::create):
(WTF::StringImpl::convertToLowercaseWithoutLocale):
(WTF::StringImpl::convertToUppercaseWithoutLocale):
(WTF::StringImpl::convertToLowercaseWithLocale):
(WTF::StringImpl::convertToUppercaseWithLocale):
(WTF::StringImpl::foldCase):
(WTF::StringImpl::find):
(WTF::StringImpl::replace):
(WTF::StringImpl::utf8ForCharacters):
(WTF::StringImpl::tryGetUtf8ForRange const):
* wtf/text/StringImpl.h:
(WTF::lengthOfNullTerminatedString):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::adopt):
(WTF::StringImpl::maxInternalLength):
* wtf/text/WTFString.cpp:
(WTF::String::append):
(WTF::String::insert):
(WTF::String::fromUTF8):
* wtf/text/WTFString.h:
(WTF::String::reverseFind const):

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

8 months ago[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
ticaiolima@gmail.com [Thu, 20 Dec 2018 11:59:05 +0000 (11:59 +0000)]
[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=192723

Reviewed by Yusuke Suzuki.

PerformanceTests:

* BigIntBench/big-int-cse.js: Added.
* BigIntBench/big-int-global-cse.js: Added.
* BigIntBench/big-int-licm.js: Added.

Source/JavaScriptCore:

This patch is adjusting clobberize rules into ValueOp nodes to enable
more optimizations when we speculate BigIntUse. In such case, DFG now
is able to apply CSE, LICM and commutativity on nodes like
ValueAdd(BigInt, BigInt), ValueSub(BigInt, BigInt), etc.

Here are the numbers we can observe with some microbenchmarks:

                          baseline                 changes

big-int-cse           108.2733+-0.8445    ^    80.9897+-4.9781   ^ definitely 1.3369x faster
big-int-licm          75.6641+-0.3477     ^    57.8144+-1.6043   ^ definitely 1.3087x faster
big-int-global-cse    145.3557+-1.0552    ^    86.5866+-0.3025   ^ definitely 1.6787x faster

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):

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

8 months ago[PSON] SuspendedPageProxy fails to release its process assertion if the WebPage fails...
cdumez@apple.com [Thu, 20 Dec 2018 09:12:27 +0000 (09:12 +0000)]
[PSON] SuspendedPageProxy fails to release its process assertion if the WebPage fails to enter PageCache
https://bugs.webkit.org/show_bug.cgi?id=192873

Reviewed by Antti Koivisto.

SuspendedPageProxy fails to release its process assertion if the WebPage fails to enter PageCache, preventing
the process from suspending on iOS.

* UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::didProcessRequestToSuspend):
(WebKit::SuspendedPageProxy::didReceiveMessage):
(WebKit::SuspendedPageProxy::didSuspend): Deleted.
(WebKit::SuspendedPageProxy::didFailToSuspend): Deleted.
* UIProcess/SuspendedPageProxy.h:

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

8 months ago[GTK][WPE] Bump webkitgtk-test-fonts to 0.0.8
commit-queue@webkit.org [Thu, 20 Dec 2018 08:45:22 +0000 (08:45 +0000)]
[GTK][WPE] Bump webkitgtk-test-fonts to 0.0.8
https://bugs.webkit.org/show_bug.cgi?id=192852

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2018-12-20
Reviewed by Michael Catanzaro.

EmojiOne font was replaced by Noto Color Emoji.

* WebKitTestRunner/gtk/fonts/fonts.conf: Use Noto Color Emoji when Apple Color Emoji font family is used in tests.
* gtk/jhbuild.modules:
* wpe/jhbuild.modules:

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

8 months agoUnreviewed, rolling out r239377.
commit-queue@webkit.org [Thu, 20 Dec 2018 07:36:00 +0000 (07:36 +0000)]
Unreviewed, rolling out r239377.
https://bugs.webkit.org/show_bug.cgi?id=192921

broke 32-bit JSC tests (Requested by keith_miller on #webkit).

Reverted changeset:

"[BigInt] We should enable CSE into arithmetic operations that
speculate BigIntUse"
https://bugs.webkit.org/show_bug.cgi?id=192723
https://trac.webkit.org/changeset/239377

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

8 months agoWeb Inspector: Audit: fix descriptions for default tests
drousso@apple.com [Thu, 20 Dec 2018 06:48:32 +0000 (06:48 +0000)]
Web Inspector: Audit: fix descriptions for default tests
https://bugs.webkit.org/show_bug.cgi?id=192764
<rdar://problem/46729437>

Reviewed by Matt Baker.

* UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype.addDefaultTestsIfNeeded):

* Localizations/en.lproj/localizedStrings.js:

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

8 months agoWeb Inspector: "E" icon on debugger dashboard is too close to current function name
nvasilyev@apple.com [Thu, 20 Dec 2018 06:39:19 +0000 (06:39 +0000)]
Web Inspector: "E" icon on debugger dashboard is too close to current function name
https://bugs.webkit.org/show_bug.cgi?id=192915

Reviewed by Matt Baker.

* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger > .location):
(body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
(body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
(.dashboard.debugger > .location .function-icon): Deleted.
(body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted.
(body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted.

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

8 months agoUnreviewed follow-up to r192914.
ross.kirsling@sony.com [Thu, 20 Dec 2018 06:24:05 +0000 (06:24 +0000)]
Unreviewed follow-up to r192914.

* test262/expectations.yaml:
Add the last 20 missing expectations.

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

8 months agoWeb Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
nvasilyev@apple.com [Thu, 20 Dec 2018 06:21:06 +0000 (06:21 +0000)]
Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
https://bugs.webkit.org/show_bug.cgi?id=192097
<rdar://problem/46318421>

Reviewed by Matt Baker.

* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread .status-button.resume):
(.tree-outline > .item.thread .status-button.resume:active):

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

8 months agoFix test262 expectations
keith_miller@apple.com [Thu, 20 Dec 2018 05:00:30 +0000 (05:00 +0000)]
Fix test262 expectations
https://bugs.webkit.org/show_bug.cgi?id=192914

Unreviewed, when I imported the latest round of test262 tests I must have failed to update the test expectations.

* test262/expectations.yaml:

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

8 months agoUnreviewed, fix GTK build after r239410
mcatanzaro@igalia.com [Thu, 20 Dec 2018 04:46:27 +0000 (04:46 +0000)]
Unreviewed, fix GTK build after r239410

It added a new file to the build, breaking the unified sources magic that obscured a bug in
URLSoup.h. It forward-declares URL, but this never worked unless the URL.h header was
included via another source file in the unified source bundle.

* platform/network/soup/URLSoup.h:

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

8 months agowtf/Optional.h: move-constructor and move-assignment operator should disengage the...
cdumez@apple.com [Thu, 20 Dec 2018 04:41:11 +0000 (04:41 +0000)]
wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
https://bugs.webkit.org/show_bug.cgi?id=192728
<rdar://problem/46746779>

Reviewed by Geoff Garen.

Source/JavaScriptCore:

* API/*:
* Scripts/*:
* assembler/*:
* b3/*:
* bytecode/*:
* bytecompiler/*:
* debugger/*:
* dfg/*:
* ftl/*:
* heap/*:
* inspector/*:
* jit/*:
* llint/*:
* parser/*:
* runtime/*:
* tools/*:
* wasm/*:
* yarr/*:

Source/WebCore:

* Modules/*:
* animation/*:
* bindings/*:
* crypto/*:
* css/*:
* dom/*:
* editing/*:
* fileapi/*:
* html/*:
* inspector/*:
* layout/*:
* loader/*:
* mathml/*:
* page/*:
* platform/*:
* plugins/*:
* rendering/*:
* testing/*:
* workers/*:
* xml/*:

Source/WebCore/PAL:

* pal/*:

Source/WebDriver:

* :

Source/WebKit:

* NetworkProcess/*:
* Platform/*:
* Scripts/*:
* Shared/*:
* UIProcess/*:
* WebProcess/*:

Source/WebKitLegacy/mac:

* DOM/*:
* Plugins/*:
* WebCoreSupport/*:
* WebView/*:

Source/WebKitLegacy/win:

* Plugins/*:
* WebCoreSupport/*:

Source/WTF:

Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.

Based on patch by David Kilzer.

* wtf/*:

Tools:

* DumpRenderTree/*:
* MiniBrowser/*:
* TestRunnerShared/*:
* TestWebKitAPI/*:
* WebGPUAPIStructure/*:
* WebKitTestRunner/*:

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

8 months agoUnreviewed, silence -Wpragmas warning
mcatanzaro@igalia.com [Thu, 20 Dec 2018 04:26:57 +0000 (04:26 +0000)]
Unreviewed, silence -Wpragmas warning

* WebProcess/WebCoreSupport/WebAlternativeTextClient.h:

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

8 months agoUpdate test262 tests.
keith_miller@apple.com [Thu, 20 Dec 2018 04:17:37 +0000 (04:17 +0000)]
Update test262 tests.
https://bugs.webkit.org/show_bug.cgi?id=192907

Rubber stamped by Mark Lam.

* test262/*: Omitted because prepare-changelog crashes.

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

8 months ago[WinCairo] Unreviewed test gardening.
ross.kirsling@sony.com [Thu, 20 Dec 2018 04:11:15 +0000 (04:11 +0000)]
[WinCairo] Unreviewed test gardening.

* platform/wincairo/TestExpectations:

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

8 months agoHTTPS Upgrade: Use full sqlite upgrade list
commit-queue@webkit.org [Thu, 20 Dec 2018 04:04:06 +0000 (04:04 +0000)]
HTTPS Upgrade: Use full sqlite upgrade list
https://bugs.webkit.org/show_bug.cgi?id=192736
<rdar://problem/45851427>

Patch by Vivek Seth <v_seth@apple.com> on 2018-12-19
Reviewed by Chris Dumez.

* NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Added.
(WebKit::NetworkHTTPSUpgradeCheckerDatabasePath):
(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
(WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker):
(WebKit::NetworkHTTPSUpgradeChecker::query):
(WebKit::NetworkHTTPSUpgradeChecker::isAlwaysOnLoggingAllowed const):
* NetworkProcess/NetworkHTTPSUpgradeChecker.h: Added.
(WebKit::NetworkHTTPSUpgradeChecker::didSetupCompleteSuccessfully const):
* NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const):
(WebKit::NetworkLoadChecker::checkRequest):
* NetworkProcess/NetworkLoadChecker.h:
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::networkHTTPSUpgradeChecker):
* Sources.txt:
* WebKit.xcodeproj/project.pbxproj:

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

8 months agoWeb Inspector: Uncaught Exception: TypeError: null is not an object (evaluating ...
drousso@apple.com [Thu, 20 Dec 2018 04:00:01 +0000 (04:00 +0000)]
Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses')
https://bugs.webkit.org/show_bug.cgi?id=192783

Reviewed by Joseph Pecoraro.

* UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):

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

8 months agoWeb Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves...
drousso@apple.com [Thu, 20 Dec 2018 03:57:10 +0000 (03:57 +0000)]
Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection
https://bugs.webkit.org/show_bug.cgi?id=192773
<rdar://problem/46782446>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TimelineOverview.js:
(WI.TimelineOverview.prototype._recordSelected):
The Frames timeline uses `frameIndex` instead of `startTime`/`endTime`, so when trying to
ensure that the selected record is within the filtered range, use `frameIndex` instead.
The associated `WI.TimelineRuler` will already be using an index-based approach for
selection, so this will match.

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

8 months agoWeb Inspector: Canvas: the recording auto-capture input shouldn't start focused
drousso@apple.com [Thu, 20 Dec 2018 03:56:27 +0000 (03:56 +0000)]
Web Inspector: Canvas: the recording auto-capture input shouldn't start focused
https://bugs.webkit.org/show_bug.cgi?id=192454

Reviewed by Joseph Pecoraro.

* UserInterface/Views/CanvasOverviewContentView.js:
(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
(WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):

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

8 months agoLeak of MTAudioProcessingTap (304 bytes) in com.apple.WebKit.WebContent running WebKi...
jer.noble@apple.com [Thu, 20 Dec 2018 03:24:28 +0000 (03:24 +0000)]
Leak of MTAudioProcessingTap (304 bytes) in com.apple.WebKit.WebContent running WebKit layout tests
https://bugs.webkit.org/show_bug.cgi?id=192896
<rdar://46732186>

Reviewed by Eric Carlson.

* platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::initCallback):

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

8 months agoRefresh usrsctplib to M72
youenn@apple.com [Thu, 20 Dec 2018 01:45:29 +0000 (01:45 +0000)]
Refresh usrsctplib to M72
https://bugs.webkit.org/show_bug.cgi?id=192863

Reviewed by Alex Christensen.

* Source/third_party/usrsctp/: Resynced to Chrome M72 branch.

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

8 months ago<rdar://problem/46194315> macOS: WebKit1 does not handle occlusion changes
benjamin@webkit.org [Thu, 20 Dec 2018 01:41:35 +0000 (01:41 +0000)]
<rdar://problem/46194315> macOS: WebKit1 does not handle occlusion changes
https://bugs.webkit.org/show_bug.cgi?id=192821

Reviewed by Chris Dumez.

Source/WebKitLegacy/mac:

When a window becomes occluded, the window server informs the application.
This should be used to suspend any work that is not visible by the user.

WebKit2 handles it just fine, but WebKit1 did not handle the notification.
In some cases, that lead to performance impact (see radar).

This patch adds an observer for the occlusion notification. I tried to stick
with the same names used by WebKit2.

* WebView/WebView.mm:
(-[WebView _isViewVisible]):
(-[WebView addWindowObserversForWindow:]):
(-[WebView removeWindowObservers]):
(-[WebView _windowDidChangeOcclusionState:]):

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):

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

8 months ago[GTK][WPE] Unreviewed test gardening.
aboya@igalia.com [Thu, 20 Dec 2018 01:40:11 +0000 (01:40 +0000)]
[GTK][WPE] Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=192904

* platform/gtk/TestExpectations:
* platform/gtk/animations/lineheight-animation-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt.
* platform/gtk/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
* platform/gtk/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
* platform/gtk/css1/font_properties/font-expected.txt:
* platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
* platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt:
* platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt:
* platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
* platform/gtk/fast/inline/inline-content-with-image-simple-expected.txt: Added.
* platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
* platform/gtk/legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
* platform/gtk/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
* platform/gtk/legacy-animation-engine/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
* platform/wpe/TestExpectations:
* platform/wpe/css1/font_properties/font-expected.txt:
* platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-00-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-06-b-expected.txt:
* platform/wpe/css2.1/t1508-c527-font-10-c-expected.txt:
* platform/wpe/fast/inline/inline-content-with-image-simple-expected.txt: Added.
* platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
* platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt:
* platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
* platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt:

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

8 months agoRefresh libyuv to M72
youenn@apple.com [Thu, 20 Dec 2018 01:37:30 +0000 (01:37 +0000)]
Refresh libyuv to M72
https://bugs.webkit.org/show_bug.cgi?id=192864

Reviewed by Alex Christensen.

* Source/third_party/libyuv: Resynced.

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

8 months agoREGRESSION (r232991): Switching to dark mode in Mail does not update the message...
timothy@apple.com [Thu, 20 Dec 2018 01:28:06 +0000 (01:28 +0000)]
REGRESSION (r232991): Switching to dark mode in Mail does not update the message view to be transparent
https://bugs.webkit.org/show_bug.cgi?id=188891
rdar://problem/42344352

Reviewed by Simon Fraser.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Don't return early when m_layerForOverhangAreas is null to avoid skipping
setRootLayerConfigurationNeedsUpdate() and scheduleCompositingLayerUpdate().

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

8 months agoWeb Inspector: Styles: shift-clicking a color-swatch to change formats starts editing...
nvasilyev@apple.com [Thu, 20 Dec 2018 01:22:39 +0000 (01:22 +0000)]
Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color
https://bugs.webkit.org/show_bug.cgi?id=192784
<rdar://problem/46801028>

Reviewed by Devin Rousso.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):

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

8 months agoUse delegate instead of drawingDelegate in WKDrawingView
timothy_horton@apple.com [Thu, 20 Dec 2018 01:09:57 +0000 (01:09 +0000)]
Use delegate instead of drawingDelegate in WKDrawingView
https://bugs.webkit.org/show_bug.cgi?id=192899
<rdar://problem/46733339>

Reviewed by Wenson Hsieh.

* UIProcess/ios/WKDrawingView.mm:
(-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]):
Do the dance.

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

8 months ago[WebGPU] Add stubs for WebGPUPipelineLayout/Descriptor and device::createPipelineLayout
justin_fan@apple.com [Thu, 20 Dec 2018 00:59:13 +0000 (00:59 +0000)]
[WebGPU] Add stubs for WebGPUPipelineLayout/Descriptor and device::createPipelineLayout
https://bugs.webkit.org/show_bug.cgi?id=192843
<rdar://problem/46820395>

Reviewed by Myles Maxfield.

Source/WebCore:

Test: webgpu/pipeline-layouts.html

Implement the emtpy WebGPUPipelineLayout interface, and enable creation via WebGPUDevice::createPipelineLayout:
* Modules/webgpu/WebGPUBindGroupLayout.cpp:
(WebCore::WebGPUBindGroupLayout::WebGPUBindGroupLayout):
* Modules/webgpu/WebGPUBindGroupLayout.h:
(WebCore::WebGPUBindGroupLayout::bindGroupLayout const): Added getter.
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createPipelineLayout const): Added.
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.idl: Enable createPipelineLayout.
* Modules/webgpu/WebGPUPipelineLayout.cpp: Added.
(WebCore::WebGPUPipelineLayout::create):
(WebCore::WebGPUPipelineLayout::WebGPUPipelineLayout):
* Modules/webgpu/WebGPUPipelineLayout.h: Added.
* Modules/webgpu/WebGPUPipelineLayout.idl: Added.
* Modules/webgpu/WebGPUPipelineLayoutDescriptor.h: Added.
* Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl: Added.
* platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::createPipelineLayout const): Added.
* platform/graphics/gpu/GPUDevice.h:
* platform/graphics/gpu/GPUPipelineLayout.cpp: Added.
(WebCore::GPUPipelineLayout::create):
(WebCore::GPUPipelineLayout::GPUPipelineLayout):
* platform/graphics/gpu/GPUPipelineLayout.h: Added.
* platform/graphics/gpu/GPUPipelineLayoutDescriptor.h: Added.

Add files and symbols to project:
* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

Add missing include:
* Modules/webgpu/WebGPUQueue.h:

LayoutTests:

Update bind-group-layouts and rename to match new PipelineLayout functionality.

* webgpu/bind-group-layouts-expected.txt: Removed.
* webgpu/pipeline-layouts-expected.txt: Added.
* webgpu/pipeline-layouts.html: Renamed from LayoutTests/webgpu/bind-group-layouts.html.

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

8 months agoNavigations away from the SafeBrowsing interstitial show a flash of old content
achristensen@apple.com [Thu, 20 Dec 2018 00:55:10 +0000 (00:55 +0000)]
Navigations away from the SafeBrowsing interstitial show a flash of old content
https://bugs.webkit.org/show_bug.cgi?id=192676

Reviewed by Chris Dumez.

Source/WebKit:

When a user clicks through a safe browsing warning, do not remove the warning until content is drawn for the destination.
Otherwise, the user will confusingly see the page before the warning while the navigation happens.
We can only do this for warnings caused by main frame navigations, though.  Other warnings (such as those caused by iframes)
need to be cleared immediately, and we still need to clear the warning immediately if the user has said to go back.

This change is reflected in an updated API test.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _showSafeBrowsingWarning:completionHandler:]):
* UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:
(WebKit::SafeBrowsingWarning::SafeBrowsingWarning):
* UIProcess/Cocoa/WKSafeBrowsingWarning.h:
* UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
(-[WKSafeBrowsingWarning forMainFrameNavigation]):
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::beginSafeBrowsingCheck):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::showSafeBrowsingWarning):
(WebKit::WebViewImpl::clearSafeBrowsingWarningIfForMainFrameNavigation):
* UIProcess/PageClient.h:
(WebKit::PageClient::clearSafeBrowsingWarningIfForMainFrameNavigation):
* UIProcess/SafeBrowsingWarning.h:
(WebKit::SafeBrowsingWarning::create):
(WebKit::SafeBrowsingWarning::forMainFrameNavigation const):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didReachLayoutMilestone):
(WebKit::WebPageProxy::beginSafeBrowsingCheck):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::clearSafeBrowsingWarningIfForMainFrameNavigation):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(safeBrowsingView):
(TEST):
(-[SafeBrowsingHelper webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.

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

8 months agoREGRESSION: [ iOS Sim ] Layout Test imported/w3c/web-platform-tests/service-workers...
ryanhaddad@apple.com [Thu, 20 Dec 2018 00:54:10 +0000 (00:54 +0000)]
REGRESSION: [ iOS Sim ] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=192250

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as flaky.

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

8 months agoREGRESSION: imported/w3c/web-platform-tests/service-workers/service-worker/register...
ryanhaddad@apple.com [Thu, 20 Dec 2018 00:54:09 +0000 (00:54 +0000)]
REGRESSION: imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html is very flaky on iOS
https://bugs.webkit.org/show_bug.cgi?id=192279

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as flaky.

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

8 months agoWeb Inspector: Elements tab: arrow key after undoing a DOM node delete selects the...
mattbaker@apple.com [Thu, 20 Dec 2018 00:46:10 +0000 (00:46 +0000)]
Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element
https://bugs.webkit.org/show_bug.cgi?id=192871
<rdar://problem/46849060>

Reviewed by Devin Rousso.

Undoing a DOM node removal reinserts the node into the DOMTreeOutline.
When the reinserted node precedes the selected node in the tree, the
SelectionController should update `_lastSelectedIndex`.

* UserInterface/Controllers/SelectionController.js:
(WI.SelectionController.prototype.didInsertItem):

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

8 months agoWeb Inspector: Audit: provide localization support for % pass display
drousso@apple.com [Thu, 20 Dec 2018 00:31:27 +0000 (00:31 +0000)]
Web Inspector: Audit: provide localization support for % pass display
https://bugs.webkit.org/show_bug.cgi?id=192870
<rdar://problem/46779245>

Reviewed by Brian Burg.

* UserInterface/Views/AuditTestGroupContentView.js:
(WI.AuditTestGroupContentView.prototype.initialLayout):
(WI.AuditTestGroupContentView.prototype.layout):
* UserInterface/Views/AuditTestGroupContentView.css:
(.content-view.audit-test-group > header > .percentage-pass):
(.content-view.audit-test-group > header > .percentage-pass > span): Added.
(@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added.
(@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added.
(.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted.

* Localizations/en.lproj/localizedStrings.js:

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

8 months agoSVGUseElement::findTarget should return nullptr when there is a cycle
rniwa@webkit.org [Wed, 19 Dec 2018 23:51:03 +0000 (23:51 +0000)]
SVGUseElement::findTarget should return nullptr when there is a cycle
https://bugs.webkit.org/show_bug.cgi?id=192840

Reviewed by Tim Horton.

r233366 added an early return to updateShadowTree() when there is a cycle between an use element and its target.
Consolidate this cycle detection code with the one in SVGUseElement::findTarget which detected cycles when
the SVG use element itself had a corresponding element.

No new tests since there should be no behavioral change.

* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::updateShadowTree):
(WebCore::SVGUseElement::findTarget const):

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

8 months ago[GTK][WPE] Unify TestController::platformRunUntil() and honor condition flag
aperez@igalia.com [Wed, 19 Dec 2018 23:44:48 +0000 (23:44 +0000)]
[GTK][WPE] Unify TestController::platformRunUntil() and honor condition flag
https://bugs.webkit.org/show_bug.cgi?id=192855

Reviewed by Michael Catanzaro.

* WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::notifyDone): Use the WPE implementation.
(WTR::TestController::platformRunUntil): Use the WPE implementation.
* WebKitTestRunner/wpe/TestControllerWPE.cpp:
(WTR::TestController::platformRunUntil): Honor the condition flag.

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

8 months agoUI process crash when focusing an editable image
timothy_horton@apple.com [Wed, 19 Dec 2018 23:37:02 +0000 (23:37 +0000)]
UI process crash when focusing an editable image
https://bugs.webkit.org/show_bug.cgi?id=192839
<rdar://problem/46786670>

Reviewed by Wenson Hsieh.

Source/WebKit:

* SourcesCocoa.txt:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView inputView]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _stopAssistingNode]):
(-[WKContentView _installInkPickerForDrawingViewWithID:]):
(-[WKContentView _uninstallInkPicker]):
* UIProcess/ios/WKInkPickerView.h: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.h.
* UIProcess/ios/WKInkPickerView.mm: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.mm.
(-[WKInkPickerView initWithDrawingView:]):
(-[WKInkPickerView didPickInk]):
(-[WKInkPickerView inlineInkPickerDidToggleRuler:]):
(-[WKInkPickerView inlineInkPicker:didSelectTool:]):
(-[WKInkPickerView inlineInkPicker:didSelectColor:]):
(-[WKInkPickerView inkPickerSize]):
(-[WKInkPickerView layoutSubviews]):
(-[WKInkPickerView sizeThatFits:]):
(-[WKInkPickerView viewControllerForPopoverPresentationFromInlineInkPicker:]):
* WebKit.xcodeproj/project.pbxproj:
Make WKInkPickerView a WKWebView subview instead of an inputView.
Also, don't force the keyboard to be visible when an editable image is focused.

LayoutTests:

* editing/images/basic-editable-image-with-gesture.html: Added.
* editing/images/basic-editable-image-with-gesture-expected.txt: Added.
* resources/ui-helper.js:
(window.UIHelper.stylusTapAt.return.new.Promise):
(window.UIHelper.stylusTapAt):
Add a test that ensures that adding an editable image from a gesture
doesn't crash, and can be drawn on.

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

8 months agoWeb Inspector: Computed: make UI more usable when the panel is narrow
nvasilyev@apple.com [Wed, 19 Dec 2018 23:28:58 +0000 (23:28 +0000)]
Web Inspector: Computed: make UI more usable when the panel is narrow
https://bugs.webkit.org/show_bug.cgi?id=192578
<rdar://problem/46615753>

Reviewed by Devin Rousso.

* UserInterface/Views/ComputedStyleSection.css:
(.computed-style-section .computed-property-item .property-traces):
(.computed-style-section .computed-property-item.expanded .disclosure-button):
(.computed-style-section .computed-property-item .property-trace-item):
(.computed-style-section .computed-property-item .property-trace-item::before):
(.computed-style-section .computed-property-item .property):
(.computed-style-section .computed-property-item .property-trace-item .selector):
Allow CSS property values and selectors to take more than one line.

(.computed-style-section .property-trace-item .property .name,):
* UserInterface/Views/ComputedStyleSection.js:
(WI.ComputedStyleSection.prototype._createTrace):
* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype.update):

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

8 months ago[WHLSL] Add a handwritten lexer
mmaxfield@apple.com [Wed, 19 Dec 2018 23:27:45 +0000 (23:27 +0000)]
[WHLSL] Add a handwritten lexer
https://bugs.webkit.org/show_bug.cgi?id=192294

Reviewed by Jon Lee.

This is infrastructure necessary for https://bugs.webkit.org/show_bug.cgi?id=192355. The
implementation matches the lexing rules in the spec (specifically, the rules that start
with an uppercase letter). The spec is at
https://github.com/gpuweb/WHLSL/blob/master/Spec/WHLSL.g4.

This patch also modifies the lexer according to https://github.com/gpuweb/WHLSL/pull/283.

No new tests because the lexer isn't hooked up yet; there are tests in the parser,
once that gets committed.

* Modules/webgpu/WHLSL/WHLSLLexer.cpp: Added.
(WebCore::WHLSL::Lexer::Token::typeName):
(WebCore::WHLSL::Lexer::recognizeKeyword):
(WebCore::WHLSL::Lexer::consumeTokenFromStream):
(WebCore::WHLSL::Lexer::skipWhitespaceAndComments):
(WebCore::WHLSL::isWhitespace):
(WebCore::WHLSL::isNewline):
(WebCore::WHLSL::Lexer::skipWhitespace):
(WebCore::WHLSL::Lexer::skipLineComment):
(WebCore::WHLSL::Lexer::skipLongComment):
(WebCore::WHLSL::Lexer::coreDecimalIntLiteral const):
(WebCore::WHLSL::Lexer::decimalIntLiteral const):
(WebCore::WHLSL::Lexer::decimalUintLiteral const):
(WebCore::WHLSL::isHexadecimalCharacter):
(WebCore::WHLSL::Lexer::coreHexadecimalIntLiteral const):
(WebCore::WHLSL::Lexer::hexadecimalIntLiteral const):
(WebCore::WHLSL::Lexer::hexadecimalUintLiteral const):
(WebCore::WHLSL::Lexer::intLiteral const):
(WebCore::WHLSL::Lexer::uintLiteral const):
(WebCore::WHLSL::Lexer::digit const):
(WebCore::WHLSL::Lexer::digitStar const):
(WebCore::WHLSL::Lexer::character const):
(WebCore::WHLSL::Lexer::coreFloatLiteralType1 const):
(WebCore::WHLSL::Lexer::coreFloatLiteral const):
(WebCore::WHLSL::Lexer::floatLiteral const):
(WebCore::WHLSL::Lexer::validIdentifier const):
(WebCore::WHLSL::Lexer::identifier const):
(WebCore::WHLSL::Lexer::operatorName const):
* Modules/webgpu/WHLSL/WHLSLLexer.h: Added.
(WebCore::WHLSL::Lexer::Lexer):
(WebCore::WHLSL::Lexer::consumeToken):
(WebCore::WHLSL::Lexer::unconsumeToken):
(WebCore::WHLSL::Lexer::state const):
(WebCore::WHLSL::Lexer::setState):
(WebCore::WHLSL::Lexer::isFullyConsumed const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Lexer::string const):
(WebCore::WHLSL::Lexer::anyCharacter const):
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

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

8 months agoWeb Inspector: Timelines: correctly label Intersection Observer callbacks
simon.fraser@apple.com [Wed, 19 Dec 2018 23:17:31 +0000 (23:17 +0000)]
Web Inspector: Timelines: correctly label Intersection Observer callbacks
https://bugs.webkit.org/show_bug.cgi?id=192669
<rdar://problem/46702490>

Reviewed by Joseph Pecoraro.

Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls
to Intersection Observer, Performance Observer and Mutation Observer callbacks so
that they get correctly labeled in the Inspector timeline.

Source/JavaScriptCore:

* inspector/protocol/Timeline.json:

Source/WebCore:

* dom/MutationObserver.cpp:
(WebCore::MutationObserver::deliver):
* en.lproj/Localizable.strings:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willFireObserverCallbackImpl):
(WebCore::InspectorInstrumentation::didFireObserverCallbackImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willFireObserverCallback):
(WebCore::InspectorInstrumentation::didFireObserverCallback):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createObserverCallbackData):
* inspector/TimelineRecordFactory.h:
* inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willFireObserverCallback):
(WebCore::InspectorTimelineAgent::didFireObserverCallback):
(WebCore::toProtocol):
* inspector/agents/InspectorTimelineAgent.h:
* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::notify):
* page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::deliver):

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager.prototype._processRecord):
* UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.EventType.displayName):
* UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView.iconClassNameForRecord):

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

8 months agoResync libwebrtc with M72 branch
youenn@apple.com [Wed, 19 Dec 2018 22:45:12 +0000 (22:45 +0000)]
Resync libwebrtc with M72 branch
https://bugs.webkit.org/show_bug.cgi?id=192858

Reviewed by Eric Carlson.

Merge changes made upstream.
Some of these changes improve support of unified plan and backward compatiblity.

* Source/webrtc/api/candidate.cc:
* Source/webrtc/api/candidate.h:
* Source/webrtc/api/rtpreceiverinterface.h:
* Source/webrtc/api/umametrics.h:
* Source/webrtc/media/engine/webrtcvideoengine.cc:
* Source/webrtc/media/engine/webrtcvideoengine_unittest.cc:
* Source/webrtc/modules/audio_processing/agc2/agc2_common.h:
* Source/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc:
* Source/webrtc/modules/video_coding/BUILD.gn:
* Source/webrtc/modules/video_coding/codecs/vp9/svc_config.cc:
* Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.cc:
* Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.h:
* Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc:
* Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
* Source/webrtc/modules/video_coding/codecs/vp9/vp9.cc:
* Source/webrtc/modules/video_coding/video_codec_initializer.cc:
* Source/webrtc/modules/video_coding/video_codec_initializer_unittest.cc:
* Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
* Source/webrtc/p2p/base/port.cc:
* Source/webrtc/p2p/base/port.h:
* Source/webrtc/p2p/base/portallocator.cc:
* Source/webrtc/p2p/client/basicportallocator.cc:
* Source/webrtc/p2p/client/basicportallocator_unittest.cc:
* Source/webrtc/pc/peerconnection.cc:
* Source/webrtc/pc/peerconnection.h:
* Source/webrtc/pc/peerconnection_integrationtest.cc:
* Source/webrtc/pc/peerconnectioninternal.h:
* Source/webrtc/pc/statscollector.cc:
* Source/webrtc/pc/statscollector.h:
* Source/webrtc/pc/test/fakepeerconnectionbase.h:
* Source/webrtc/pc/test/fakepeerconnectionforstats.h:
* Source/webrtc/pc/test/mockpeerconnectionobservers.h:
(webrtc::MockStatsObserver::OnComplete):
(webrtc::MockStatsObserver::TrackIds const):
* Source/webrtc/pc/webrtcsdp_unittest.cc:
* Source/webrtc/rtc_base/fake_mdns_responder.h:
(webrtc::FakeMdnsResponder::GetMappedAddressForName const):
* Source/webrtc/rtc_base/fakenetwork.h:
(rtc::FakeNetworkManager::CreateMdnsResponder):
(rtc::FakeNetworkManager::GetMdnsResponderForTesting const):
* Source/webrtc/video/video_send_stream_impl.cc:
* Source/webrtc/video/video_stream_encoder.cc:

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

8 months agoContentExtensions: DFANode.cpp:66:44: error: narrowing conversion of '-1' from 'int...
csaavedra@igalia.com [Wed, 19 Dec 2018 22:24:04 +0000 (22:24 +0000)]
ContentExtensions: DFANode.cpp:66:44: error: narrowing conversion of '-1' from 'int' to 'char' inside { }
https://bugs.webkit.org/show_bug.cgi?id=192854

Reviewed by Alex Christensen.

* contentextensions/DFANode.h: Define CharRange's chars as signed

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

8 months agoWeb Inspector: Audit: "Clear Filters" button gets clipped when window is vertically...
drousso@apple.com [Wed, 19 Dec 2018 22:09:22 +0000 (22:09 +0000)]
Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small
https://bugs.webkit.org/show_bug.cgi?id=192868
<rdar://problem/46780400>

Reviewed by Matt Baker.

* UserInterface/Views/Main.css:
(.message-text-view):

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

8 months agoJSPropertyNameEnumerator should cache the iterated object's structure only after...
mark.lam@apple.com [Wed, 19 Dec 2018 22:00:43 +0000 (22:00 +0000)]
JSPropertyNameEnumerator should cache the iterated object's structure only after getting its property names.
https://bugs.webkit.org/show_bug.cgi?id=192464
<rdar://problem/46519455>

Reviewed by Saam Barati.

JSTests:

This patch is about a 10% speed up on the new for-in-on-object-with-lazily-materialized-properties.js
microbenchmark.

* microbenchmarks/for-in-on-object-with-lazily-materialized-properties.js: Added.
* stress/property-name-enumerator-should-cache-structure-after-getting-property-names.js: Added.

Source/JavaScriptCore:

This is because the process of getting its property names may cause some lazy
properties to be reified, and the structure will change.  This is needed in order
for get_direct_pname to work correctly.

* runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):

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

8 months agoRemove RTCRtpTransceiver.setDirection
youenn@apple.com [Wed, 19 Dec 2018 22:00:22 +0000 (22:00 +0000)]
Remove RTCRtpTransceiver.setDirection
https://bugs.webkit.org/show_bug.cgi?id=192869

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/historical-expected.txt:

Source/WebCore:

Covered by rebased test.

* Modules/mediastream/RTCRtpTransceiver.idl:

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

8 months ago[ MacOS iOS ] Layout Test webrtc/no-port-zero-in-upd-candidates.html is flaky timeout
youenn@apple.com [Wed, 19 Dec 2018 22:00:16 +0000 (22:00 +0000)]
[ MacOS iOS ] Layout Test webrtc/no-port-zero-in-upd-candidates.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=192866

Reviewed by Alex Christensen.

* webrtc/no-port-zero-in-upd-candidates.html:
Add some more logging in the test in case of time out.

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

8 months ago[MediaStream] Force system camera/microphone TCC prompt if necessary
eric.carlson@apple.com [Wed, 19 Dec 2018 21:25:29 +0000 (21:25 +0000)]
[MediaStream] Force system camera/microphone TCC prompt if necessary
https://bugs.webkit.org/show_bug.cgi?id=192820
<rdar://problem/42680098>

Reviewed by Jer Noble.

Source/WebKit:

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Enable TCC check
and prompt on Mojave.

Source/WTF:

* wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.

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

8 months agoForce synchronous decode in WebCoreDecompressionSession::decodeSampleSync()
jer.noble@apple.com [Wed, 19 Dec 2018 21:11:12 +0000 (21:11 +0000)]
Force synchronous decode in WebCoreDecompressionSession::decodeSampleSync()
https://bugs.webkit.org/show_bug.cgi?id=192856
<rdar://problem/46843245>

Reviewed by Alex Christensen.

Some decoders exposed through VideoToolbox will decode asynchronously even when
kVTDecodeInfo_Asynchronous is not set. Force synchronous behavior with a Semaphore.

* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::decodeSampleSync):

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

8 months agoWeb Inspector: Dark Mode: selected text is too light when Inspector window is inactive
nvasilyev@apple.com [Wed, 19 Dec 2018 21:09:43 +0000 (21:09 +0000)]
Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive
https://bugs.webkit.org/show_bug.cgi?id=190542
<rdar://problem/45238712>

Reviewed by Devin Rousso.

* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .CodeMirror-selected):

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

8 months agoWeb Inspector: column sort controls in Layers tab sidebar don't render correctly...
nvasilyev@apple.com [Wed, 19 Dec 2018 21:08:53 +0000 (21:08 +0000)]
Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode
https://bugs.webkit.org/show_bug.cgi?id=192845

Reviewed by Devin Rousso.

* UserInterface/Views/DataGrid.css:
(@media (prefers-dark-interface)):
(.data-grid th.sortable:active):
Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray.
(.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after):
Invert colors of the arrow glyph.

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

8 months agoAllow clients to set the navigator platform
megan_gardner@apple.com [Wed, 19 Dec 2018 20:21:31 +0000 (20:21 +0000)]
Allow clients to set the navigator platform
https://bugs.webkit.org/show_bug.cgi?id=192735

Reviewed by Tim Horton.

Source/WebCore:

Expanded TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm.

Lots of piping to allow the setting of a custom navigator platform.

* loader/DocumentLoader.h:
(WebCore::DocumentLoader::setCustomNavigatorPlatform):
(WebCore::DocumentLoader::customNavigatorPlatform const):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::navigatorPlatform const):
* loader/FrameLoader.h:
* page/Navigator.cpp:
(WebCore::Navigator::platform const):
* page/Navigator.h:
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::platform const):
(WebCore::NavigatorBase::platform): Deleted.
* page/NavigatorBase.h:

Source/WebKit:

Add private API to allow clients to override the default navigator
platform. Some websites check for the platform, which
interfears with our request desktop site feature. This should
help more sites function as expected.

* Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):
* Shared/WebsitePoliciesData.h:
* UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::data):
* UIProcess/API/APIWebsitePolicies.h:
* UIProcess/API/Cocoa/_WKWebsitePolicies.h:
* UIProcess/API/Cocoa/_WKWebsitePolicies.mm:
(-[_WKWebsitePolicies setCustomNavigatorPlatform:]):
(-[_WKWebsitePolicies customNavigatorPlatform]):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Source/WebKitLegacy/mac:

Add stubs to fill out the added functionality in FrameLoaderClient.

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::navigatorPlatform):

Tools:

Add a test for setting a custom navigator platform.

* TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate webView:didFinishNavigation:]):

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

8 months ago[GTK] Cannot build with CMake <3.7
aperez@igalia.com [Wed, 19 Dec 2018 19:58:21 +0000 (19:58 +0000)]
[GTK] Cannot build with CMake <3.7
https://bugs.webkit.org/show_bug.cgi?id=192865

Reviewed by Michael Catanzaro.

* Source/cmake/OptionsGTK.cmake: Convert usage of VERSION_GREATER_EQUAL to a
combination of VERSION_GREATER + STREQUAL.

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

8 months agoREGRESSION (r234940): [ MacOS ] Layout Test imported/w3c/web-platform-tests/media...
ryanhaddad@apple.com [Wed, 19 Dec 2018 19:26:24 +0000 (19:26 +0000)]
REGRESSION (r234940): [ MacOS ] Layout Test imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190976

Unreviewed test gardening.

* platform/mac/TestExpectations: Mark test as flaky.

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

8 months agoUnreviewed, rolling out r239347.
ryanhaddad@apple.com [Wed, 19 Dec 2018 19:11:06 +0000 (19:11 +0000)]
Unreviewed, rolling out r239347.

Caused the leaks bot to hit an exception and the new test
crashes on certain configurations.

Reverted changeset:

"Synchronous media query evaluation could destroy current
Frame/FrameView."
https://bugs.webkit.org/show_bug.cgi?id=192781
https://trac.webkit.org/changeset/239347

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

8 months agoUnreviewed, rolling out r239358.
tsavell@apple.com [Wed, 19 Dec 2018 18:57:09 +0000 (18:57 +0000)]
Unreviewed, rolling out r239358.

Revision caused imported/w3c/web-platform-tests/IndexedDB/ to
crash on Debug bots

Reverted changeset:

"Clean up IndexedDB files between tests"
https://bugs.webkit.org/show_bug.cgi?id=192796
https://trac.webkit.org/changeset/239358

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

8 months agoSync some include directories in WebCore
don.olmstead@sony.com [Wed, 19 Dec 2018 18:23:36 +0000 (18:23 +0000)]
Sync some include directories in WebCore
https://bugs.webkit.org/show_bug.cgi?id=192819

Reviewed by Michael Catanzaro.

Added missing include directories around features that have only been enabled on
Apple ports. Removes obsolete directories from list and moves harfbuzz directories
into the freetype cmake file.

* CMakeLists.txt:
* platform/FreeType.cmake:

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

8 months agoFix build on 64bit ARM with arm64 SYSTEM_PROCESSOR
commit-queue@webkit.org [Wed, 19 Dec 2018 15:37:50 +0000 (15:37 +0000)]
Fix build on 64bit ARM with arm64 SYSTEM_PROCESSOR
https://bugs.webkit.org/show_bug.cgi?id=192497

Patch by Lucas Stach <l.stach@pengutronix.de> on 2018-12-19
Reviewed by Philippe Normand.

Android and some embedded Linux build systems use arm64 instead of
aarch64 as the CMAKE_HOST_PROCESSOR. Fix the JIT build for this scenario.

* CMakeLists.txt:

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

8 months ago[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
ticaiolima@gmail.com [Wed, 19 Dec 2018 12:12:37 +0000 (12:12 +0000)]
[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=192723

Reviewed by Saam Barati.

PerformanceTests:

* BigIntBench/big-int-cse.js: Added.
* BigIntBench/big-int-global-cse.js: Added.
* BigIntBench/big-int-licm.js: Added.

Source/JavaScriptCore:

This patch is adjusting clobberize rules into ValueOp nodes to enable
more optimizations when we speculate BigIntUse. In such case, DFG now
is able to apply CSE, LICM and commutativity on nodes like
ValueAdd(BigInt, BigInt), ValueSub(BigInt, BigInt), etc.

Here are the numbers we can observe with some microbenchmarks:

                          baseline                 changes

big-int-cse           108.2733+-0.8445    ^    80.9897+-4.9781   ^ definitely 1.3369x faster
big-int-licm          75.6641+-0.3477     ^    57.8144+-1.6043   ^ definitely 1.3087x faster
big-int-global-cse    145.3557+-1.0552    ^    86.5866+-0.3025   ^ definitely 1.6787x faster

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):

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

8 months ago[MSE] Remove unused method: stopAskingForMoreSamples()
aboya@igalia.com [Wed, 19 Dec 2018 11:37:39 +0000 (11:37 +0000)]
[MSE] Remove unused method: stopAskingForMoreSamples()
https://bugs.webkit.org/show_bug.cgi?id=192754

Reviewed by Xabier Rodriguez-Calvar.

The stopAskingForMoreSamples() method from SourceBufferPrivate is not
being used by anyone. SourceBuffer is not calling it and no
SourceBufferPrivate is implementing it. Let's remove that noise.

* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::setActive):
(WebCore::SourceBufferPrivate::stopAskingForMoreSamples): Deleted.
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::stopAskingForMoreSamples): Deleted.
* platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

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

8 months agoString overflow in JSC::createError results in ASSERT in WTF::makeString
tzagallo@apple.com [Wed, 19 Dec 2018 11:33:12 +0000 (11:33 +0000)]
String overflow in JSC::createError results in ASSERT in WTF::makeString
https://bugs.webkit.org/show_bug.cgi?id=192833
<rdar://problem/45706868>

Reviewed by Mark Lam.

JSTests:

* stress/string-overflow-createError.js: Added.

Source/JavaScriptCore:

JSC::createError was calling WTF::makeString which would result in an
assertion failure when the string was too big. Change it to call
WTF::tryMakeString instead and return an OutOfMemory error if we fail
to create the error string.

* runtime/ExceptionHelpers.cpp:
(JSC::createError):

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

8 months ago[MSE] Remove dead code: sourceBufferPrivateSeekToTime()
aboya@igalia.com [Wed, 19 Dec 2018 11:20:16 +0000 (11:20 +0000)]
[MSE] Remove dead code: sourceBufferPrivateSeekToTime()
https://bugs.webkit.org/show_bug.cgi?id=192827

Reviewed by Xabier Rodriguez-Calvar.

This patch makes two dead code removal changes in
SourceBufferPrivateClient:

First, sourceBufferPrivateFastSeekTimeForMediaTime() is made pure
virtual in SourceBufferPrivateClient. Since SourceBufferPrivateClient
is only inherited by SourceBuffer, it makes no sense to have default
implementations there (they will never be used), moreso it being a
client interface.

Second, sourceBufferPrivateSeekToTime() is removed entirely. It used
to had an empty implementation, which SourceBuffer did not overwrite,
therefore making any calls to it useless.

All calls to sourceBufferPrivateSeekToTime() have been removed:

SourceBufferPrivateAVFObjC::seekToTime(), which was also dead code
itself, used to call this method. This patch deletes it completely.

MockSourceBufferPrivate::seekToTime(), which only called this empty
method, has also been removed along with its only usage in
MockMediaSourcePrivate::seekToTime().

* platform/graphics/SourceBufferPrivateClient.h:
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateFastSeekTimeForMediaTime): Deleted.
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateSeekToTime): Deleted.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::seekToTime): Deleted.
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::seekToTime):
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::seekToTime): Deleted.
* platform/mock/mediasource/MockSourceBufferPrivate.h:

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

8 months ago[EME] MediaKeySystemConfiguration distinctiveIdentifier and persistentState should...
calvaris@igalia.com [Wed, 19 Dec 2018 08:55:54 +0000 (08:55 +0000)]
[EME] MediaKeySystemConfiguration distinctiveIdentifier and persistentState should default to optional
https://bugs.webkit.org/show_bug.cgi?id=192815

Reviewed by Jer Noble.

https://www.w3.org/TR/encrypted-media/#dom-mediakeysystemconfiguration
says that distinctiveIdentifier and persistentState default to
optional. Our implementation does not define a default leaving it
to the first option of the enum, which currently is Required.

* platform/encryptedmedia/CDMKeySystemConfiguration.h:

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

8 months agoMerge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
commit-queue@webkit.org [Wed, 19 Dec 2018 08:00:27 +0000 (08:00 +0000)]
Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
https://bugs.webkit.org/show_bug.cgi?id=192288

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-19
Reviewed by Frédéric Wang.

Prefer return value to out parameter for parseAccessControlAllowList.

* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::parse):
* platform/network/HTTPParsers.h:
(WebCore::parseAccessControlAllowList):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

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

8 months agoREGRESSION(r235165): [GTK][WPE] Garbled rendering on GitLab
zandobersek@gmail.com [Wed, 19 Dec 2018 07:41:19 +0000 (07:41 +0000)]
REGRESSION(r235165): [GTK][WPE] Garbled rendering on GitLab
https://bugs.webkit.org/show_bug.cgi?id=192230

Reviewed by Carlos Garcia Campos.

Single tile can after r235165 be assigned multiple content updates
without a commit occurring between each update, whereas before these
commits were done for each update.

To avoid repeating updates for a single tile purging information about
the previous update, these updates are now accumulated inside a Vector
and then iterated over during the commit phase.

* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
(WebCore::CoordinatedBackingStoreTile::addUpdate):
(WebCore::CoordinatedBackingStoreTile::swapBuffers):
(WebCore::CoordinatedBackingStore::updateTile):
(WebCore::CoordinatedBackingStoreTile::setBackBuffer): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
(WebCore::CoordinatedBackingStoreTile::scale const):

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

8 months agoError message for `-x ** y` contains a typo.
ross.kirsling@sony.com [Wed, 19 Dec 2018 06:37:46 +0000 (06:37 +0000)]
Error message for `-x ** y` contains a typo.
https://bugs.webkit.org/show_bug.cgi?id=192832

Reviewed by Saam Barati.

JSTests:

* ChakraCore/test/UnitTestFramework/UnitTestFramework.js:
(assert.assert.return.throws):
* stress/pow-expects-update-expression-on-lhs.js:
(throw.new.Error):
Update test expectations which match against the exact error message.

Source/JavaScriptCore:

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseBinaryExpression):
Make corrections to error message: "amiguous" -> "ambiguous", "parenthesis" -> "parentheses"

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

8 months ago[iOS] A copied text selection is pasted as a web archive attachment in the entry...
wenson_hsieh@apple.com [Wed, 19 Dec 2018 06:10:28 +0000 (06:10 +0000)]
[iOS] A copied text selection is pasted as a web archive attachment in the entry view in Messages
https://bugs.webkit.org/show_bug.cgi?id=192842
<rdar://problem/46823586>

Reviewed by Tim Horton.

Source/WebCore:

Temporarily revert a behavior change introduced by r238661, where we now add "com.apple.webarchive" as a
registered UTI when dragging or copying a text selection. This broke the Messages app on iOS, which currently
inserts a copied or dragged text selection from WebKit-based views as a web archive file attachment. A fix for
this is internally tracked in <rdar://problem/46830277>.

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):

Tools:

Adjusts an existing API test to verify that "com.apple.webarchive" is not one of the types registered to the
item provider when dragging a rich text selection.

* TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

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

8 months agoUnreviewed, add a missing UNUSED_PARAM()
mcatanzaro@igalia.com [Wed, 19 Dec 2018 05:31:11 +0000 (05:31 +0000)]
Unreviewed, add a missing UNUSED_PARAM()

* Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::getPrivateImpl):

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

8 months agoREGRESSION(r239134) iOS safe browsing warning unable to show details
achristensen@apple.com [Wed, 19 Dec 2018 05:01:04 +0000 (05:01 +0000)]
REGRESSION(r239134) iOS safe browsing warning unable to show details
https://bugs.webkit.org/show_bug.cgi?id=192837

Reviewed by Tim Horton.

* UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
(-[WKSafeBrowsingWarning addContent]):
I had a fragile design that relied on the internal view heirarchy structure of UIScrollView,
which I changed in r239134 by introducing a layout which changed where its scrollbars were in the view heirarchy.
I now have a more robust design that saves a WeakObjCPtr to the view I need to traverse to.
Testing is problematic because this had to do with scrollbars and UIScrollView internals which seem to behave
differently in TestWebKitAPI, but I verified manually that this fixes the issue.

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

8 months ago[Win][Clang] Fix compilation warnings under Source/WebKit directory
Hironori.Fujii@sony.com [Wed, 19 Dec 2018 04:35:34 +0000 (04:35 +0000)]
[Win][Clang] Fix compilation warnings under Source/WebKit directory
https://bugs.webkit.org/show_bug.cgi?id=192695

Reviewed by Alex Christensen.

* NetworkProcess/cache/NetworkCacheData.cpp:
(makeSalt): Enclosed by #if !OS(WINDOWS).
* NetworkProcess/cache/NetworkCacheFileSystem.cpp:
(WebKit::NetworkCache::directoryEntryType): Ditto.
* Platform/win/ModuleWin.cpp:
(WebKit::Module::platformFunctionPointer const): Cast a function pointer with reinterpret_cast<void*>().
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::DrawingMonitor):
Moved the initializer of m_webPage in order to be encluded by #if PLATFORM(GTK).
* UIProcess/DrawingAreaProxyImpl.h: Ditto.
* UIProcess/Launcher/win/ProcessLauncherWin.cpp:
(WebKit::processName): Removed the duplicated 'const' type qualifier.
* UIProcess/win/WebInspectorProxyWin.cpp:
(WebKit::WebInspectorProxy::platformAttach): Removed an unused variable.
(WebKit::WebInspectorProxy::platformDetach): Ditto.
* UIProcess/win/WebPopupMenuProxyWin.cpp: Ditto.
* UIProcess/win/WebView.cpp:
(WebKit::WebView::paint): Ditto.
(WebKit::WebPopupMenu::setUpPlatformData): Ditto.
* UIProcess/win/WebPopupMenuProxyWin.h: Marked override methods with 'override'.
* WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h: Ditto.
* WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Removed an unused variable.

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

8 months agoUpdate CSS Properties and Values API to use new cycle fallback behaviour
justin_michaud@apple.com [Wed, 19 Dec 2018 03:21:15 +0000 (03:21 +0000)]
Update CSS Properties and Values API to use new cycle fallback behaviour
https://bugs.webkit.org/show_bug.cgi?id=192800

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Re-import tests and adjust expected results. Some of the tests go from pass to fail because
this patch adds some extra dependency checking to property registrations to fix a crash, but
now unsupported syntaxes like <length-percentage> do not register properly.

* web-platform-tests/css/css-properties-values-api/register-property-expected.txt:
* web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt:
* web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html:
* web-platform-tests/css/css-properties-values-api/register-property.html:
* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance.html:
* web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-computation.html:
* web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-cssom.html:
* web-platform-tests/css/css-properties-values-api/registered-property-initial-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-initial.html:
* web-platform-tests/css/css-properties-values-api/resources/utils.js: Added.
(generate_name):
(any_initial_value):
(generate_property):
(all_syntaxes):
* web-platform-tests/css/css-properties-values-api/resources/w3c-import.log: Added.
* web-platform-tests/css/css-properties-values-api/self-utils-expected.txt: Added.
* web-platform-tests/css/css-properties-values-api/self-utils.html: Added.
* web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt:
* web-platform-tests/css/css-properties-values-api/typedom.tentative.html:
* web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt:
* web-platform-tests/css/css-properties-values-api/unit-cycles.html:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles.html:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html:
* web-platform-tests/css/css-properties-values-api/w3c-import.log:

Source/WebCore:

Make CSS variables that are registered and involved in a cycle be treated as invalid. This also fixes a crash in the
wpt tests where relative units and calc() in a registered property's initial value would break things instead of failing.

* css/CSSCustomPropertyValue.h:
* css/CSSVariableReferenceValue.cpp:
(WebCore::resolveVariableReference):
* css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyCascadedCustomProperty):
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

LayoutTests:

* css-custom-properties-api/crash.html:
* css-custom-properties-api/inherits-expected.txt:
* css-custom-properties-api/inherits.html:
* css-custom-properties-api/registerProperty-expected.txt:
* css-custom-properties-api/registerProperty.html:

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

8 months agoUpdate ARM64EHash
sbarati@apple.com [Wed, 19 Dec 2018 02:27:00 +0000 (02:27 +0000)]
Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=192823
<rdar://problem/45468257>

Reviewed by Mark Lam.

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::ARM64Assembler):
* assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
* assembler/AssemblerBuffer.h:
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::finalHash const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::ARM64EHash::ARM64EHash): Deleted.
(JSC::ARM64EHash::hash const): Deleted.
(JSC::ARM64EHash::randomSeed const): Deleted.
* assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):

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

8 months ago[macOS] fast/forms/datalist/datalist-textinput-suggestions-order.html sometimes crash...
wenson_hsieh@apple.com [Wed, 19 Dec 2018 02:11:58 +0000 (02:11 +0000)]
[macOS] fast/forms/datalist/datalist-textinput-suggestions-order.html sometimes crashes after r239337
https://bugs.webkit.org/show_bug.cgi?id=192836
<rdar://problem/45321184>

Reviewed by Tim Horton.

r239337 exposed a subtle issue in the implementation of `-[WKDataListSuggestionsView updateWithInformation:]`,
wherein we might end up recomputing information for table view cells at rows that no longer exist. This currently
happens because we first set the datalist's `_suggestions`, then change the table view's frame, and then finally
reload the table view; however, in the case where the number of suggestions decreased and the frame changed
(which prompts AppKit to ask us again for table cell views), we'll attempt to access an out-of-bounds index in
the `_suggestions` vector.

To address this, we change our suggestions and immediately reload the table view before updating `NSTableView`'s
frame, so that we only provide table view cells for rows that actually correspond to items in `_suggestions`.

* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionsView updateWithInformation:]):

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

8 months ago[Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https...
jiewen_tan@apple.com [Wed, 19 Dec 2018 01:25:52 +0000 (01:25 +0000)]
[Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=192061

Reviewed by Dewei Zhu.

Part 4.

Add some additional temporary logging info to determine if the time out value passed to the timer is right.
Once the bug is determined and fixed, we should remove all logging added in this patch.

* UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::initTimeOutTimer):

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

8 months agoWrong value for key property in keydown and keyup events generated holding Control key
dbates@webkit.org [Wed, 19 Dec 2018 00:23:21 +0000 (00:23 +0000)]
Wrong value for key property in keydown and keyup events generated holding Control key
https://bugs.webkit.org/show_bug.cgi?id=192788
<rdar://problem/46795214>

Reviewed by Wenson Hsieh.

Similar to what we do on Mac, compute the DOM key property from the characters ignoring
modifier keys input string when the Control key is held down.

* platform/ios/PlatformEventFactoryIOS.mm:
(WebCore::keyForKeyEvent):
* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::keyForKeyEvent):

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

8 months agoGardening: test options fix.
mark.lam@apple.com [Wed, 19 Dec 2018 00:02:45 +0000 (00:02 +0000)]
Gardening: test options fix.
https://bugs.webkit.org/show_bug.cgi?id=192822

Unreviewed.

* stress/json-stringify-string-builder-overflow.js:

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

8 months agoREGRESSION: [iOS] API test TestWebKitAPI._WKDownload.OriginatingWebView is a flaky...
david_quesada@apple.com [Tue, 18 Dec 2018 23:59:34 +0000 (23:59 +0000)]
REGRESSION: [iOS] API test TestWebKitAPI._WKDownload.OriginatingWebView is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=192810
<rdar://problem/46812536>

Reviewed by Alex Christensen.

* TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
(-[OriginatingWebViewDownloadDelegate _downloadDidStart:]):
    After releasing our reference to the web view, wait until the next turn of the runloop
    before checking that the originatingWebView has been zeroed, since the web view might
    still be referenced in the autorelease pool. This _WKDownload unit test isn't about
    testing general memory management of WKWebViews, only that _WKDownload does not retain
    its web view via the 'originatingWebView' property.

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

8 months agoClean up IndexedDB files between tests
sihui_liu@apple.com [Tue, 18 Dec 2018 23:56:23 +0000 (23:56 +0000)]
Clean up IndexedDB files between tests
https://bugs.webkit.org/show_bug.cgi?id=192796

Reviewed by Geoffrey Garen.

Source/WebCore:

We should clean up the IndexedDB files between tests to make sure each test is independent of others.

This patch also fixes some issues in IDB.

Covered by existing tests.

* Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
We should shut down all open databases instead of databases from open database connections before deleting
files, because database starts accessing files before connection to database is established.

* Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
We should shutdown database after tasks in queue are completed, because tasks have pointer of UniqueIDBDatabase
and UniqueIDBDatabase can be destructed after shutdown.

(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
didDeleteBackingStore can be posted to main thread after immediateCloseForUserDelete, and timer should not be
invoked during the hard close.

(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
Tasks like didOpenBackingStore could be posted from database thread to main thread after
immediateCloseForUserDelete, but we know the backing store will be deleted soon, so no need to handle any
database operation.

(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
performPrefetchCursor needs to be aware of whether UniqueIDBDatabase is being closed, so that it will not access
m_backingStore when m_backingStore may already be deleted.

(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
immediateCloseForUserDelete does not handle transactions that are in the process of commit or abort.
m_objectStoreTransactionCounts and m_objectStoreWriteTransactions may be used by those transactions in
transactionCompleted, so they do not need to be cleared here.

Source/WebKit:

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllIndexedDatabasesSync):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(runTest):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::RemoveAllIndexedDatabasesCallbackContext::RemoveAllIndexedDatabasesCallbackContext):
(WTR::RemoveAllIndexedDatabasesCallback):
(WTR::TestController::ClearIndexedDatabases):
* WebKitTestRunner/TestController.h:

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

8 months agoThick overlines and line-throughs grow in the wrong direction
mmaxfield@apple.com [Tue, 18 Dec 2018 23:38:54 +0000 (23:38 +0000)]
Thick overlines and line-throughs grow in the wrong direction
https://bugs.webkit.org/show_bug.cgi?id=192264

Reviewed by Dean Jackson.

Source/WebCore:

Overlines should grow upward, and line-throughs should stay centered.

Test: fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html

* rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::paintTextDecoration):
* style/InlineTextBoxStyle.cpp:
(WebCore::visualOverflowForDecorations):

LayoutTests:

I can't figure out a way to test the line-through, so this just tests the overline.

* fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction-expected.html: Added.
* fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html: Added.

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

8 months agoFix API test introduced in r239339 on iOS.
achristensen@apple.com [Tue, 18 Dec 2018 23:02:16 +0000 (23:02 +0000)]
Fix API test introduced in r239339 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=192675

* TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(TEST):
The iOS implementation of the safe browsing warning is a little different.
It does some element creation when it is added to the window so it knows how big it is.
To test these elements, we need to simulate adding it to the window.
A similar technique is done in other iOS API tests, such as SafeBrowsing.ShowWarningSPI.

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

8 months agoJSON.stringify() should throw OOM on StringBuilder overflows.
mark.lam@apple.com [Tue, 18 Dec 2018 22:24:33 +0000 (22:24 +0000)]
JSON.stringify() should throw OOM on StringBuilder overflows.
https://bugs.webkit.org/show_bug.cgi?id=192822
<rdar://problem/46670577>

Reviewed by Saam Barati.

JSTests:

* stress/json-stringify-string-builder-overflow.js: Added.

Source/JavaScriptCore:

* runtime/JSONObject.cpp:
(JSC::Stringifier::stringify):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::appendNextProperty):

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

8 months agoRedeclaration of var over let/const/class should be a syntax error.
ross.kirsling@sony.com [Tue, 18 Dec 2018 22:14:20 +0000 (22:14 +0000)]
Redeclaration of var over let/const/class should be a syntax error.
https://bugs.webkit.org/show_bug.cgi?id=192298

Reviewed by Keith Miller.

JSTests:

* test262.yaml:
* test262/expectations.yaml:
Mark 46 tests as passing.

* stress/block-scope-redeclarations.js:
Add some new tests.

* stress/for-in-invalidate-context-weird-assignments.js:
* stress/for-in-tests.js:
Replace tests for outdated behavior with tests for SyntaxError.

* ChakraCore/test/LetConst/defer3.baseline-jsc:
* ChakraCore/test/LetConst/letvar.baseline-jsc:
Update expectations.

Source/JavaScriptCore:

From https://tc39.github.io/ecma262/#sec-block-static-semantics-early-errors:
It is a Syntax Error if any element of the LexicallyDeclaredNames of StatementList also occurs in the
VarDeclaredNames of StatementList.

Accordingly, this patch ensures that { let x; { var x; } } and { { var x; } let x; } are syntax errors.

For the "var after" scenario:
When checking for existing lexically-declared names, we can't simply check the current var scope;
we need to check *all* enclosing scopes up to (and including) the current var scope. In so doing,
we must also avoid violating the Annex B.3.5 condition that allows `try {} catch (e) { var e; }`.

For the "var before" scenario:
We ensure that lexical scopes always keep track of the vars being hoisted over them; this gives us
a simple way to check the current block's var-declared names prior to making a lexical declaration.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseTryStatement):
* parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::setIsSimpleCatchParameterScope): Added.
(JSC::Scope::isSimpleCatchParameterScope): Added.
(JSC::Scope::declareVariable):
(JSC::Scope::addVariableBeingHoisted): Added.
(JSC::Scope::declareLexicalVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable): Added.
(JSC::Parser::declareHoistedVariable): Added.
(JSC::Parser::declareVariable):

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

8 months agoSome iOS app crash in FrameLoader::checkCompleted
rniwa@webkit.org [Tue, 18 Dec 2018 22:03:07 +0000 (22:03 +0000)]
Some iOS app crash in FrameLoader::checkCompleted
https://bugs.webkit.org/show_bug.cgi?id=192804
<rdar://problem/44240573>

Reviewed by Tim Horton.

It's possible for the main thread to call into WebCore / UIWebView selectors while Web thread
is trying to send a delegate message. Disable the release assertion while this is happening
so that iOS app would not crash.

Unfortunately no new test as there is no way to easily test UIWebView in iOS,
and this requires a race between the web thread & the main thread.

* dom/ScriptDisallowedScope.h:
(WebCore::ScriptDisallowedScope::InMainThread::isScriptAllowed):
* platform/ios/wak/WebCoreThread.h:
* platform/ios/wak/WebCoreThread.mm:
(WebThreadDelegateMessageScope::WebThreadDelegateMessageScope):
(WebThreadDelegateMessageScope::~WebThreadDelegateMessageScope):
(SendDelegateMessage):

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

8 months agoclang-tidy: Use const reference for MediaTime parameter to prevent object copy
ddkilzer@apple.com [Tue, 18 Dec 2018 21:54:24 +0000 (21:54 +0000)]
clang-tidy: Use const reference for MediaTime parameter to prevent object copy
<https://webkit.org/b/192814>

Reviewed by Mark Lam.

Source/JavaScriptCore:

* runtime/JSCJSValue.h:
(JSC::jsNumber):

Source/WebCore:

* bindings/js/JSDOMConvertNumbers.h:
(WebCore::JSConverter<IDLUnrestrictedDouble>::convert):

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

8 months ago[WebGPU] BindGroupLayout and Device::createBindGroupLayout
justin_fan@apple.com [Tue, 18 Dec 2018 21:51:56 +0000 (21:51 +0000)]
[WebGPU] BindGroupLayout and Device::createBindGroupLayout
https://bugs.webkit.org/show_bug.cgi?id=192817

Reviewed by Dean Jackson.

Update bind-group-layouts to test new functionality.

Source/WebCore:

Implement the emtpy WebGPUBindGroupLayout interface, and enable creation via WebGPUDevice::createBindGroupLayout:
* Modules/webgpu/WebGPUBindGroupLayout.cpp: Added.
(WebCore::WebGPUBindGroupLayout::create):
(WebCore::WebGPUBindGroupLayout::WebGPUBindGroupLayout):
* Modules/webgpu/WebGPUBindGroupLayout.h: Added.
* Modules/webgpu/WebGPUBindGroupLayout.idl: Added. Empty interface for now.
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createBindGroupLayout const): Added.
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDevice.idl:
* platform/graphics/gpu/GPUBindGroupLayout.cpp: Added.
(WebCore::GPUBindGroupLayout::tryCreate):
(WebCore::GPUBindGroupLayout::GPUBindGroupLayout):
* platform/graphics/gpu/GPUBindGroupLayout.h: Added.
* platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::tryCreateBindGroupLayout const): Added.
* platform/graphics/gpu/GPUDevice.h:

Add files and symbols to project:
* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

Missing includes that were previously provided via UnifiedSources:
* platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
* platform/sql/SQLiteFileSystem.h:

LayoutTests:

* webgpu/bind-group-layouts-expected.txt:
* webgpu/bind-group-layouts.html:

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

8 months agoUnreviewed test gardening after r239306 and r239338.
ryanhaddad@apple.com [Tue, 18 Dec 2018 21:51:06 +0000 (21:51 +0000)]
Unreviewed test gardening after r239306 and r239338.

Move test compositing/contents-format baselines for Mojave into platform/mac, add new baselines for High Sierra and earlier.

* platform/mac-highsierra-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Copied from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt.
* platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt.
* platform/mac-mojave-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Removed.
* platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Removed.
* platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Renamed from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
* platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
* platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt:

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

8 months agoMake ReadableStreamXX constructs use PrivateIdentifier
youenn@apple.com [Tue, 18 Dec 2018 21:41:34 +0000 (21:41 +0000)]
Make ReadableStreamXX constructs use PrivateIdentifier
https://bugs.webkit.org/show_bug.cgi?id=192771

Reviewed by Chris Dumez.

PrivateIdentifier is a better name for making sure a given construct does not show up in the global scope.
Covered by existing binding tests.

* Modules/streams/ReadableByteStreamController.idl:
* Modules/streams/ReadableStreamBYOBReader.idl:
* Modules/streams/ReadableStreamBYOBRequest.idl:
* Modules/streams/ReadableStreamDefaultController.idl:
* Modules/streams/ReadableStreamDefaultReader.idl:
* bindings/scripts/CodeGeneratorJS.pm:
(NeedsConstructorProperty):
* bindings/scripts/preprocess-idls.pl:
(shouldExposeInterface):
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Removed.
* bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Removed.
* bindings/scripts/test/TestCustomConstructor.idl: Removed.

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