Timeline



Mar 2, 2019:

6:50 PM Changeset in webkit [242324] by Alan Bujtas
  • 6 edits in trunk/Source

[ContentChangeObserver] Introduce ContentChangeObserver::MouseMovedScope
https://bugs.webkit.org/show_bug.cgi?id=195252
<rdar://problem/48539446>

Reviewed by Simon Fraser.

Source/WebCore:

Scope the mouse-moved event to make the callsites less error-prone.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::startObservingMouseMoved):
(WebCore::ContentChangeObserver::stopObservingMouseMoved):
(WebCore::ContentChangeObserver::MouseMovedScope::MouseMovedScope):
(WebCore::ContentChangeObserver::MouseMovedScope::~MouseMovedScope):
(WebCore::ContentChangeObserver::startObservingContentChanges): Deleted.
(WebCore::ContentChangeObserver::stopObservingContentChanges): Deleted.

  • page/ios/ContentChangeObserver.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

5:03 PM Changeset in webkit [242323] by Ross Kirsling
  • 2 edits in trunk/Tools

Unreviewed follow-up to r242292. Keep EXPECT_STREQ in tests per Darin's request.

  • TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:

(TestWebKitAPI::TEST):

4:18 PM Changeset in webkit [242322] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unexpectedly frequent flashing of DOM node attributes
https://bugs.webkit.org/show_bug.cgi?id=148049
<rdar://problem/22296830>

Reviewed by Joseph Pecoraro.

Save a timestamp of when the CSS animation began, so that if the attribute's node is replaced,
we can "resume" the CSS animation at the same point with the attribute's new node.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype.attributeDidChange):
(WI.DOMTreeElement.prototype._buildAttributeDOM):
(WI.DOMTreeElement.prototype._createModifiedAnimation):
(WI.DOMTreeElement.prototype._markNodeChanged): Deleted.
(WI.DOMTreeElement.prototype._nodeChangedAnimationEnd): Deleted.
(WI.DOMTreeElement.prototype._fireDidChange): Deleted.

4:15 PM Changeset in webkit [242321] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[ContentChangeObserver] Introduce ContentChangeObserver::adjustObservedState
https://bugs.webkit.org/show_bug.cgi?id=195244
<rdar://problem/48536737>

Reviewed by Simon Fraser.

Source/WebCore:

Move state change handling code to adjustObservedState() and introduce signalContentChangeIfNeeded() to
let the client know about the state change (or lack of state change).

Test: fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingStyleRecalc):
(WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
(WebCore::ContentChangeObserver::didContentVisibilityChange):
(WebCore::ContentChangeObserver::addObservedDOMTimer):
(WebCore::ContentChangeObserver::removeObservedDOMTimer):
(WebCore::ContentChangeObserver::setShouldObserveStyleRecalc):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::signalContentChangeIfNeeded):

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling const):
(WebCore::ContentChangeObserver::addObservedDOMTimer): Deleted.
(WebCore::ContentChangeObserver::setShouldObserveStyleRecalc): Deleted.

LayoutTests:

  • fast/events/touch/ios/visibility-change-happens-at-the-second-timer-expected.txt: Added.
  • fast/events/touch/ios/visibility-change-happens-at-the-second-timer.html: Added.
4:02 PM Changeset in webkit [242320] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk/Source/WebKit

Move EditingRange <-> Range methods to EditingRange instead of WebPage
https://bugs.webkit.org/show_bug.cgi?id=195201

Reviewed by Sam Weinig.

  • Shared/EditingRange.h:
  • Shared/EditingRange.cpp:

Also, modernize the coders.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::insertTextAsync):
(WebKit::WebPage::getMarkedRangeAsync):
(WebKit::WebPage::getSelectedRangeAsync):
(WebKit::WebPage::characterIndexForPointAsync):
(WebKit::WebPage::firstRectForCharacterRangeAsync):
(WebKit::WebPage::setCompositionAsync):
(WebKit::WebPage::rangeFromEditingRange): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::insertDictatedTextAsync):
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):

2:57 PM Changeset in webkit [242319] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Move away from WKContentChange values
https://bugs.webkit.org/show_bug.cgi?id=195240
<rdar://problem/48532358>

Reviewed by Simon Fraser.

This is in preparation for moving towards a state machine-like implementation.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didInstallDOMTimer): Do not install the timer if we are already in "hover" state.
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::startObservingStyleRecalc): No need to start observing the style recalc if we are already in "hover" state.
(WebCore::ContentChangeObserver::stopObservingStyleRecalc):
(WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
(WebCore::ContentChangeObserver::didContentVisibilityChange):
(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::observedContentChange const):
(WebCore::ContentChangeObserver::removeObservedDOMTimer):
(WebCore::ContentChangeObserver::hasDeterminedState const):
(WebCore::ContentChangeObserver::observedContentChange): Deleted.
(WebCore::ContentChangeObserver::resetObservedContentChange): Deleted.
(WebCore::ContentChangeObserver::setObservedContentChange): Deleted.
(WebCore::ContentChangeObserver::addObservedDOMTimer): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::addObservedDOMTimer):
(WebCore::ContentChangeObserver::clearObservedDOMTimers):
(WebCore::ContentChangeObserver::hasVisibleChangeState const):
(WebCore::ContentChangeObserver::hasObservedDOMTimer const):
(WebCore::ContentChangeObserver::setHasNoChangeState):
(WebCore::ContentChangeObserver::setHasIndeterminateState):
(WebCore::ContentChangeObserver::setHasVisibleChangeState):
(WebCore::ContentChangeObserver::countOfObservedDOMTimers const): Deleted.

2:40 PM Changeset in webkit [242318] by Devin Rousso
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger: DOM, URL, and Event breakpoints don't grey out when all breakpoints are disabled
https://bugs.webkit.org/show_bug.cgi?id=195170
<rdar://problem/48478193>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.onattach):
(WI.DOMBreakpointTreeElement.prototype.ondetach):
(WI.DOMBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement):
(WI.URLBreakpointTreeElement.prototype.onattach):
(WI.URLBreakpointTreeElement.prototype.ondetach):
(WI.URLBreakpointTreeElement.prototype._updateStatus):
Remove the "resolved" class when the global "breakpoints enabled" state is changed.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): Added.
(WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): Added.
(WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): Added.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
(WI.DOMDebuggerManager.prototype._updateURLBreakpoint):
(WI.DOMDebuggerManager.prototype._resolveEventBreakpoint):
(WI.DOMDebuggerManager.prototype._resolveURLBreakpoint):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Deleted.
(WI.DOMDebuggerManager.prototype._updateURLBreakpoint.breakpointUpdated): Deleted.

  • UserInterface/Models/DOMBreakpoint.js:

(WI.DOMBreakpoint):
(WI.DOMBreakpoint.deserialize): Added.
(WI.DOMBreakpoint.prototype.set disabled):
(WI.DOMBreakpoint.prototype.set domNodeIdentifier):

  • UserInterface/Models/EventBreakpoint.js:

(WI.EventBreakpoint.deserialize): Added.
(WI.EventBreakpoint.prototype.set disabled):
(WI.EventBreakpoint.fromPayload): Deleted.

  • UserInterface/Models/URLBreakpoint.js:

(WI.URLBreakpoint.deserialize): Added.
(WI.URLBreakpoint.prototype.set disabled):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDisabledStateChanged): Added.
(WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeChanged): Added.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added.
Drive-by: rename all events with the name *DidChange to *Changed.
Drive-by: create static deserialize helper functions.

1:50 PM Changeset in webkit [242317] by Wenson Hsieh
  • 40 edits
    2 copies
    1 move in trunk

[iOS] Programmatic paste access should be granted when copying and pasting within the same origin
https://bugs.webkit.org/show_bug.cgi?id=195053
<rdar://problem/48134710>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Plumb the document pasteboard identifier through the client when making a DOM paste access request. See WebKit
ChangeLog for more details.

Test: editing/pasteboard/ios/dom-paste-same-origin.html

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMPasteAccess.h: Renamed from Source/WebCore/dom/DOMPasteAccessPolicy.h.

Introduce DOMPasteAccessResponse, which is either DeniedForGesture, GrantedForCommand, or GrantedForGesture. In
particular, when pasteboard identifiers match, we only grant access for the current paste command, rather than
throughout the user gesture.

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::didRequestDOMPasteAccess):

  • loader/EmptyClients.cpp:
  • page/EditorClient.h:
  • page/Frame.cpp:

(WebCore::Frame::requestDOMPasteAccess):

Source/WebKit:

Add support for automatically granting programmatic pasteboard access when the pasteboard identifier of the
document requesting programmatic paste matches the identifier in the custom pasteboard data blob in the
UIPasteboard. To do this, we send the pasteboard identifier of the document requesting the DOM paste to the UI
process, and check this against the pasteboard identifiers for each item on the platform pasteboard. If all
items in the platform pasteboard match the given pasteboard identifier (since we don't support writing multiple
pasteboard items via bindings, this should only be a single item), we skip showing the paste callout and
immediately invoke the programmatic paste handler.

  • Scripts/webkit/messages.py:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestDOMPasteAccess):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestDOMPasteAccess):

  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestDOMPasteAccess):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:

Add plumbing to deliver the pasteboard identifier to the client when requesting DOM paste.

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestDOMPasteAccess):

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _webTouchEventsRecognized:]):
(-[WKContentView _willHideMenu:]):
(-[WKContentView pasteForWebView:]):
(-[WKContentView _handleDOMPasteRequestWithResult:]):
(-[WKContentView _willPerformAction:sender:]):
(-[WKContentView _didPerformAction:sender:]):
(-[WKContentView handleKeyWebEvent:withCompletionHandler:]):
(allPasteboardItemOriginsMatchOrigin):
(-[WKContentView _requestDOMPasteAccessWithElementRect:originIdentifier:completionHandler:]):
(-[WKContentView _requestDOMPasteAccessWithElementRect:completionHandler:]): Deleted.

Bail early in the case where all items' pasteboard identifiers (read via custom pasteboard data) match. When
this happens, we only grant access for the current paste command, rather than granting access for the user
gesture token.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestDOMPasteAccess):

  • UIProcess/win/PageClientImpl.h:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::requestDOMPasteAccess):

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestDOMPasteAccess):

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.h:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebEditorClient.h:

LayoutTests:

Adjust several existing DOM paste tests to copy text from a child frame that has a different origin as the main
frame, such that we'll trigger the paste callout menu when performing a programmatic paste. Also add a new
layout test that copies and programmatically pastes within the same document, to verify that no paste callout is
displayed and the paste is allowed.

  • editing/pasteboard/ios/dom-paste-confirmation-expected.txt:
  • editing/pasteboard/ios/dom-paste-confirmation.html:
  • editing/pasteboard/ios/dom-paste-consecutive-confirmations-expected.txt:
  • editing/pasteboard/ios/dom-paste-consecutive-confirmations.html:
  • editing/pasteboard/ios/dom-paste-rejection-expected.txt:
  • editing/pasteboard/ios/dom-paste-rejection.html:
  • editing/pasteboard/ios/dom-paste-requires-user-gesture-expected.txt:
  • editing/pasteboard/ios/dom-paste-requires-user-gesture.html:
  • editing/pasteboard/ios/dom-paste-same-origin-expected.txt: Copied from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation-expected.txt.
  • editing/pasteboard/ios/dom-paste-same-origin.html: Copied from LayoutTests/editing/pasteboard/ios/dom-paste-confirmation.html.
12:54 PM Changeset in webkit [242316] by Darin Adler
  • 11 edits in trunk/Source

Fixed makeString(float) to do shortest-form serialization without first converting to double
https://bugs.webkit.org/show_bug.cgi?id=195142

Reviewed by Daniel Bates.

Source/WebCore:

  • platform/graphics/Color.cpp: Removed unneeded include of DecimalNumber.h.

Source/WebKit:

  • UIProcess/PerActivityStateCPUUsageSampler.cpp: Removed unneeded include of DecimalNumber.h.

Source/WTF:

  • wtf/DecimalNumber.cpp: Removed unneeded includes.
  • wtf/DecimalNumber.h: Removed unused constructors; over time we will be

deprecating DecimalNumber, so we should removed the unused parts. Also
marked the constructor explicit, removed types used only for arguments for
the constructors, and removed the sign, exponent, significand, and precision
member functions.

  • wtf/JSONValues.cpp:

(WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
std::array instead of C arrays.

  • wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.

(WTF::dtoa): Updated to use std::array instead of C arrays.
(WTF::dtoaRoundSF): Removed.
(WTF::dtoaRoundDP): Removed.
(WTF::numberToString): Added an overload for float and updated to use std::array.
(WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
(WTF::numberToFixedPrecisionString): Ditto.
(WTF::numberToFixedWidthString): Ditto.

  • wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the

array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
Added float overloads for numberToString, numberToFixedPrecisionString,
and numberToFixedWidthString. The only one of these that is called at this
time is numberToString, called by the floating point StringTypeAdapter in
StringConcatenateNummbers.h.

  • wtf/text/StringConcatenateNumbers.h: Updated for std::array.
12:50 PM Changeset in webkit [242315] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: breakpoints should be disabled when an audit is running
https://bugs.webkit.org/show_bug.cgi?id=195105
<rdar://problem/48441373>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.closed):
(WI.SourcesNavigationSidebarPanel.prototype._updateTemporarilyDisabledBreakpointsButtons): Added.
(WI.SourcesNavigationSidebarPanel.prototype._updateBreakpointsDisabledBanner):
(WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart):
(WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped):
(WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestScheduled): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestCompleted): Added.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.sources > .content > .warning-banner + .warning-banner): Added.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):

12:32 PM Changeset in webkit [242314] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger: don't enable breakpoints when source location changes
https://bugs.webkit.org/show_bug.cgi?id=195081
<rdar://problem/48422701>

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype._breakpointDisplayLocationDidChange):
(WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange):

11:15 AM Changeset in webkit [242313] by Simon Fraser
  • 5 edits
    3 adds in trunk

REGRESSION (r242132): Incorrect positioning with multiple position:fixed elements
https://bugs.webkit.org/show_bug.cgi?id=195246

Reviewed by Frederic Wang.

Source/WebCore:

r242132 introduced a bug where the management of 'cumulativeDelta' in ScrollingTree::notifyRelatedNodesRecursive
was incorrect. This value should propagate from ancestors to descendants, but not between siblings in the scrolling
tree, which it did, causing sibling position:fixed to behave incorrectly.

Test: scrollingcoordinator/mac/multiple-fixed.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::notifyRelatedNodesRecursive):

  • page/scrolling/ScrollingTree.h:

LayoutTests:

Test that uses eventSender to scroll (and is thus macOS-only).

  • platform/ios-wk2/TestExpectations:
  • scrollingcoordinator/mac/multiple-fixed-expected.html: Added.
  • scrollingcoordinator/mac/multiple-fixed.html: Added.
9:50 AM Changeset in webkit [242312] by Adrian Perez de Castro
  • 4 edits
    2 adds in trunk/Source/WebKit

[WPE] Public API headers are missing autocleanup definitions
https://bugs.webkit.org/show_bug.cgi?id=195211

Reviewed by Philippe Normand.

  • PlatformWPE.cmake: List new API headers as installable.
  • UIProcess/API/wpe/WebKitAutocleanups.h: Added. This is a copy of the header from the GTK

port, adapted to fit the WPE port.

  • UIProcess/API/wpe/webkit.h: Add inclusion of WebKitAutocleanups.h
  • WebProcess/InjectedBundle/API/wpe/WebKitWebExtensionAutocleanups.h: Added. Also adapted

from the equivalent header of the GTK port.

  • WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: Add inclusion of

WebKitWebExtensionAutocleanups.h

9:33 AM Changeset in webkit [242311] by Darin Adler
  • 4 edits in trunk/Source/WebCore

Improve some comments
https://bugs.webkit.org/show_bug.cgi?id=195243

Reviewed by Daniel Bates.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _addAccessibilityObject:toTextMarkerArray:]):
Fix a typo in a comment.

  • dom/RadioButtonGroups.cpp: Fix a typo in a comment.

(WebCore::RadioButtonGroups::checkedButtonForGroup const): Use nullptr instead of 0.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::~HTMLInputElement): Improved a comment, but sadly made
it a bit longer. Use nullptr instead of 0.
(WebCore::HTMLInputElement::didMoveToNewDocument): Added a comment.

8:28 AM Changeset in webkit [242310] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

Remove unused WebPageProxy::m_navigationID
https://bugs.webkit.org/show_bug.cgi?id=195209

Reviewed by Darin Adler.

WebPageProxy::m_navigationID is never assigned to and is only used once by mistake in a
debug LOG(). It must be a refactoring mistake.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCommitLoadForFrame):

  • UIProcess/WebPageProxy.h:

Mar 1, 2019:

10:09 PM Changeset in webkit [242309] by Wenson Hsieh
  • 5 edits in trunk

[Datalist] fast/forms/datalist/datalist-child-validation.html crashes with a debug assertion in isValidFormControlElement()
https://bugs.webkit.org/show_bug.cgi?id=190620
<rdar://problem/19226679>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fixes and re-enables an existing layout test that is asserting on debug builds (and failing on release builds).
To understand why we hit this assertion, we first note several observations:

  • The validity of a form control (isValid()) depends on the value of willValidate().
  • Both of these results are cached in member variables: m_isValid and m_willValidate, respectively.
  • willValidate() changes the cached value of m_willValidate if necessary, but isValid() uses the

cached value without update.

Now, consider the following scenario:

  1. Something changes in the DOM that changes the result of willValidate(). This can happen as a result of

several things:

  1. The form control changes readonly state
  2. The form control changes disabled state
  3. The form control is added to a datalist element
  4. The form control is removed from a datalist element
  1. Call willValidate().
  2. Call isValid().

In scenarios (a) - (c), we ensure that cached form control validity (m_isValid) is updated alongside
m_willValidate by invoking setNeedsWillValidateCheck(), such that the result of isValid() matches the
result of m_isValid in step (3). However, in the last scenario (d), we don't do this, which causes form
control validity to fall out of sync with the result of isValid(). To fix the bug, we update willValidate and
isValid when a form control is removed from an ancestor, only if one of its ancestors is a datalist element.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::insertedIntoAncestor):
(WebCore::HTMLFormControlElement::removedFromAncestor):

Make a couple of minor tweaks:

  • Currently, we always invalidate m_dataListAncestorState by resetting the state to Unknown when the form control is removed from an ancestor or inserted. Instead, we only need to reset it when the form control already has an ancestor that is a datalist (in the case where it's being removed) or when the form control does not yet have an ancestor (in the case where it is being added).
  • If the form control was inside a datalist prior to removal, recompute its cached value of m_willValidate, as well as its cached validity (m_isValid).

LayoutTests:

Re-enables a crashing layout test. See WebCore ChangeLog for more details.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
9:45 PM Changeset in webkit [242308] by Darin Adler
  • 29 edits in trunk

Finish removing String::format
https://bugs.webkit.org/show_bug.cgi?id=194893

Reviewed by Daniel Bates.
Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::nameForRegister): Use makeString instead of String::format,
using the new "pad" function.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::lastModified const): Use makeString and pad.

  • html/FTPDirectoryDocument.cpp:

(WebCore::processFileDateString): Ditto.

  • mathml/MathMLElement.cpp:

(WebCore::convertToPercentageIfNeeded): Use makeString and FormattedNumber.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw): Use makeString and pad.

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::cpuUsageString): Use makeString, FormattedNumber, and pad.
(WebCore::gcTimerString): Use String::number.

  • platform/DateComponents.cpp:

(WebCore::DateComponents::toStringForTime const): Use makeString and pad.
(WebCore::DateComponents::toString const): Ditto.

  • platform/LocalizedStrings.cpp: Removed comment that mentioned String::format,

and that was also inaccurate.

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
Use makeString and pad.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText): Ditto.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo): Ditto.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::formatMediaControlsTime const): Ditto.

Source/WebKit:

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion): Use makeString, attempting to fix
a problem where we passed an NSData * to format with a "%s"."

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(timeToString): Use makeString and pad.

Source/WTF:

  • wtf/Assertions.cpp:

(WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
(WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.

  • wtf/HexNumber.h: Deleted unneeded toString function.
  • wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of

StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
a bit. Use function templates for writeTo functions rather than having two of each.
Removed unused toString functions. Optimized case where we use have a UChar* and
a length of zero to not force the result to be 16-bit. Also gets rid of a small
NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
static member helper functions to compute string lengths. Added the pad function
and the PaddingSpecification struct template, so we can add padding to anything
we can turn into a string. Got rid of the special case overload for single
arguments, since it only worked for things that the String constructor can handle.
Instead we will now use StringTypeAdapter, which works for more types. Possibly
less optimal for some special cases, which we could specialize for later if we like.

  • wtf/text/StringConcatenateNumbers.h: Ditto.
  • wtf/text/StringOperators.h: Ditto.
  • wtf/text/StringView.h: Ditto.
  • wtf/text/WTFString.cpp:

(WTF::createWithFormatAndArguments): Deleted.
(WTF::String::format): Deleted.

  • wtf/text/WTFString.h: Deleted declaration of String::format.
7:44 PM Changeset in webkit [242307] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Do not attempt to set WAL Journal mode on a readonly SQLite database
https://bugs.webkit.org/show_bug.cgi?id=195237

Reviewed by Simon Fraser.

This avoids logging errors when opening the database.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::useWALJournalMode):

  • platform/sql/SQLiteDatabase.h:
7:27 PM Changeset in webkit [242306] by chris.reid@sony.com
  • 6 edits
    1 move
    14 adds in trunk/Source

[PlayStation] Upstream playstation's remote inspector server
https://bugs.webkit.org/show_bug.cgi?id=193806

Reviewed by Joseph Pecoraro.

Upstreaming PlayStation's Remote Inspector implementation.
It is using a JSON RPC protocol over TCP sockets.
This inspector implementation is planned to also support running on a WinCairo Client and Server.

  • PlatformPlayStation.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • inspector/remote/RemoteConnectionToTarget.cpp: Renamed from Source/JavaScriptCore/inspector/remote/glib/RemoteConnectionToTargetGlib.cpp.
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/playstation/RemoteInspectorConnectionClient.h: Added.
  • inspector/remote/playstation/RemoteInspectorConnectionClientPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorMessageParser.h: Added.
  • inspector/remote/playstation/RemoteInspectorMessageParserPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorServer.h: Added.
  • inspector/remote/playstation/RemoteInspectorServerPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorSocket.h: Added.
  • inspector/remote/playstation/RemoteInspectorSocketClient.h: Added.
  • inspector/remote/playstation/RemoteInspectorSocketClientPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorSocketPlayStation.cpp: Added.
  • inspector/remote/playstation/RemoteInspectorSocketServer.h: Added.
  • inspector/remote/playstation/RemoteInspectorSocketServerPlayStation.cpp: Added.
7:12 PM Changeset in webkit [242305] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed Windows build fix after r242302.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

6:41 PM Changeset in webkit [242304] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

NetworkDataTask redirection should not keep alive its NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=194927

Reviewed by Darin Adler.

This should fix rdar://problem/47580502

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

6:29 PM Changeset in webkit [242303] by achristensen@apple.com
  • 15 edits in trunk/Source

Revert r241223, r241235, and r241287
https://bugs.webkit.org/show_bug.cgi?id=194427
<rdar://48045861>

Source/WebKit:

This caused crashes, and feature design has evolved away from needing the daemon in this form.

  • NetworkProcess/EntryPoint/Cocoa/Daemon/DaemonEntryPoint.mm:

(WebKit::DaemonMain):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):
(WebKit::XPCServiceMain):
(WebKit::XPCEventHandler): Deleted.
(WebKit::XPCInitializationHandler): Deleted.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration usesNetworkingDaemon]): Deleted.
(-[_WKProcessPoolConfiguration setUsesNetworkingDaemon:]): Deleted.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::serviceName):
(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getLaunchOptions):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::usesNetworkingDaemon const): Deleted.

  • UIProcess/WebProcessPool.h:

Source/WTF:

  • wtf/spi/darwin/XPCSPI.h:
6:27 PM Changeset in webkit [242302] by achristensen@apple.com
  • 10 edits in trunk

Add setters on WKWebsiteDataStore for sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier
https://bugs.webkit.org/show_bug.cgi?id=195229
<rdar://problem/48520362>

Reviewed by Chris Dumez.

Source/WebKit:

Just like _setBoundInterfaceIdentifier, we need a way to set these properties after instantiation of a WKWebsiteDataStore,
but we need to make sure we don't set it after the parameters have been copied to the NetworkProcess.

Functionality verified by manual testing. See radar.
Added an API test that verifies the setter restrictions work as expected.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _sourceApplicationBundleIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationBundleIdentifier:]):
(-[WKWebsiteDataStore _sourceApplicationSecondaryIdentifier]):
(-[WKWebsiteDataStore _setSourceApplicationSecondaryIdentifier:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentRequest):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::setSourceApplicationSecondaryIdentifier):
(WebKit::WebsiteDataStore::setSourceApplicationBundleIdentifier):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::sourceApplicationBundleIdentifier):
(WebKit::WebsiteDataStore::sourceApplicationSecondaryIdentifier):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

5:33 PM Changeset in webkit [242301] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Create SPI to crash if a JSC VM is created
https://bugs.webkit.org/show_bug.cgi?id=195231
<rdar://problem/47717990>

Reviewed by Mark Lam.

  • API/JSVirtualMachine.mm:

(+[JSVirtualMachine setCrashOnVMCreation:]):

  • API/JSVirtualMachinePrivate.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::setCrashOnVMCreation):

  • runtime/VM.h:
5:18 PM Changeset in webkit [242300] by Joseph Pecoraro
  • 8 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage - Energy Impact Section
https://bugs.webkit.org/show_bug.cgi?id=195151

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

New strings and resources.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content .subtitle > .info):
(@media (prefers-color-scheme: dark)):
(.energy-info-popover-content):
(.timeline-view.cpu > .content > .overview > .divider):
(body[dir=ltr] .timeline-view.cpu > .content > .overview > .divider):
(body[dir=rtl] .timeline-view.cpu > .content > .overview > .divider):
(.timeline-view.cpu :matches(.area-chart, .stacked-area-chart) svg > path):
(.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.low):
(.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.medium):
(.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.high):
(.timeline-view.cpu .gauge-chart:not(.empty) > svg > polygon.needle):
(.timeline-view.cpu .energy):
(.timeline-view.cpu .energy .energy-impact):
(.timeline-view.cpu .energy .energy-impact.low):
(.timeline-view.cpu .energy .energy-impact.medium):
(.timeline-view.cpu .energy .energy-impact.high):
(.timeline-view.cpu .energy .energy-impact-number):
Styling the chart and text for the different energy impact levels.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.get lowEnergyValue):
(WI.CPUTimelineView.prototype.get highEnergyValue):
(WI.CPUTimelineView.prototype.initialLayout):
(WI.CPUTimelineView.prototype.layout):
(WI.CPUTimelineView.prototype._layoutEnergyChart.mapWithBias):
(WI.CPUTimelineView.prototype._layoutEnergyChart.valuesForGauge):
(WI.CPUTimelineView.prototype._layoutEnergyChart):
(WI.CPUTimelineView.prototype._clearEnergyImpactText):
New gauge chart and associated popover.
We do a bit of biasing of the data for each of the sections
in the gauge chart. Each section biases toward the cap of the
section so that:

  • we encourage lower power usage (sub 3%)
  • the gauge needle quickly moves past the low value of a range
  • UserInterface/Views/GaugeChart.css: Added.

(.gauge-chart):
(body[dir=rtl] .gauge-chart):
(.gauge-chart > svg > path,):
(.gauge-chart > svg > polygon.needle):
(.gauge-chart.empty > svg > polygon.needle):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/GaugeChart.js: Added.

(WI.GaugeChart.prototype.get size):
(WI.GaugeChart.prototype.get segments):
(WI.GaugeChart.prototype.get value):
(WI.GaugeChart.prototype.set value):
(WI.GaugeChart.prototype.clear):
(WI.GaugeChart.prototype.initialLayout):
(WI.GaugeChart.prototype.layout):
(WI.GaugeChart.prototype._validateSegments):
(WI.GaugeChart.prototype._createSegmentPathData):
GaugeChart with variable number of sections and a
current value needle. It has a bit of customization
when drawing the arc at the start of each segment.

  • UserInterface/Views/Variables.css:

(:root):
(@media (prefers-color-scheme: dark)):
New CPU colors for the different energy impact levels.

5:05 PM Changeset in webkit [242299] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix FTL build on ARM32_64 by adding stubs for JSRopeString::offsetOfXXX
https://bugs.webkit.org/show_bug.cgi?id=195235

Reviewed by Saam Barati.

This is a workaround until https://bugs.webkit.org/show_bug.cgi?id=195234 is done.

  • runtime/JSString.h:
5:04 PM Changeset in webkit [242298] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.0.3

Tag Safari-607.1.40.0.3.

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

[iOS] Turn mouse event simulation on by default
https://bugs.webkit.org/show_bug.cgi?id=195218
<rdar://problem/48516794>

Patch by Antoine Quint <Antoine Quint> on 2019-03-01
Reviewed by Dean Jackson.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
4:37 PM Changeset in webkit [242296] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Data grid border colors don't match accent colors
https://bugs.webkit.org/show_bug.cgi?id=195232

Reviewed by Matt Baker.

  • UserInterface/Views/DataGrid.css:

(.data-grid:focus tr.selected td:not(:last-child)):
(body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)):
(body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)):

4:30 PM Changeset in webkit [242295] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Disable NetworkStateNotifier::singleton()'s isMainThread() assertion when the WebThread is enabled
https://bugs.webkit.org/show_bug.cgi?id=195230
<rdar://problem/47925359>

Reviewed by Ryosuke Niwa.

Disable NetworkStateNotifier::singleton()'s isMainThread() assertion when the WebThread is enabled
to address crashes on iOS WK1.

  • platform/network/NetworkStateNotifier.cpp:

(WebCore::shouldSuppressThreadSafetyCheck):
(WebCore::NetworkStateNotifier::singleton):

4:23 PM Changeset in webkit [242294] by Simon Fraser
  • 4 edits in trunk

Add a system trace scope for event region building
https://bugs.webkit.org/show_bug.cgi?id=195226

Reviewed by Jon Lee.

This trace scope measures the time spend converting element rects into Region objects,
which can be large on some pages.

The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

  • Tracing/SystemTracePoints.plist:
4:23 PM Changeset in webkit [242293] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Show mouse event regions in the overlay
https://bugs.webkit.org/show_bug.cgi?id=195227

Reviewed by Tim Horton.

Enhance event region overlays to show more kinds of events.

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):
(WebCore::NonFastScrollableRegionOverlay::drawRect):

3:30 PM Changeset in webkit [242292] by Ross Kirsling
  • 8 edits in trunk

EnvironmentUtilities::stripValuesEndingWithString isn't thread-safe
https://bugs.webkit.org/show_bug.cgi?id=194612

Reviewed by Alex Christensen.

Source/WebKit:

This API test really shouldn't be verifying that the actual environment was successfully modified.

At its core, stripValuesEndingWithString is really just split-filter-join. By replacing it with a pair of
simple functions -- one for string processing, one for environment processing -- the API test only needs to
worry about the former.

  • Platform/unix/EnvironmentUtilities.cpp:

(WebKit::EnvironmentUtilities::stripEntriesEndingWith):
(WebKit::EnvironmentUtilities::removeValuesEndingWith):
(WebKit::EnvironmentUtilities::stripValuesEndingWithString): Deleted.

  • Platform/unix/EnvironmentUtilities.h:

Replace old function with a pair of simpler ones.

  • NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/Cocoa/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):
Update function name.

Tools:

  • TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:

Just test the new string-processing function and don't touch the actual environment.
(Test cases are all as before, but based on operator== instead of strcmp.)

3:09 PM Changeset in webkit [242291] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

[ews-app] Update primary keys for handling multiple Buildbot instances
https://bugs.webkit.org/show_bug.cgi?id=195120

Reviewed by Stephanie Lewis.

Use a new primary key uid for build and step tables. Previous primary keys build_id and step_id
were not enough to handle multiple buildbot instances. This new primary key uid would be generated
by a combination of buildbot_instance_id and current primary key. e.g.: buildbot_instance_id + build_id

  • BuildSlaveSupport/ews-app/ews/models/build.py: Added new primary key uid.
  • BuildSlaveSupport/ews-app/ews/models/step.py: Ditto.
  • BuildSlaveSupport/ews-app/ews/models/buildbotinstance.py: Generate uid and instance_id.
  • BuildSlaveSupport/ews-app/ews/views/results.py: Updated to receive hostname in events.
  • BuildSlaveSupport/ews-build/events.py: Send hostname along-with events.
  • BuildSlaveSupport/ews-build/master.cfg: Ditto.
2:48 PM Changeset in webkit [242290] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[ContentChangeObserver] Check for pending style recalcs at the end of each timer run.
https://bugs.webkit.org/show_bug.cgi?id=195220
<rdar://problem/48518979>

Reviewed by Simon Fraser.

Source/WebCore:

didScheduleStyleRecalc callback was introduced to see if a style recalc is scheduled while firing the DOM timer. However it does not handle the case
when in addition to this style recalc scheduling, something later (though during the same timer firing) triggers a sync style recalc.
Let's just check if we've got a pending style recalc when the DOM timer comes back.

Test: fast/events/touch/ios/style-recalc-schedule-and-force-relalc.html

  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc):

  • page/ios/ContentChangeObserver.cpp:

(WebCore::hasPendingStyleRecalc):
(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::didScheduleStyleRecalc): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::startObservingStyleRecalcScheduling): Deleted.
(WebCore::ContentChangeObserver::stopObservingStyleRecalcScheduling): Deleted.
(WebCore::ContentChangeObserver::isObservingStyleRecalcScheduling const): Deleted.

LayoutTests:

  • fast/events/touch/ios/style-recalc-schedule-and-force-relalc-expected.txt: Added.
  • fast/events/touch/ios/style-recalc-schedule-and-force-relalc.html: Added.
2:18 PM Changeset in webkit [242289] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebKit

Unify WebsiteDataStore::defaultDataStoreConfiguration across ports
https://bugs.webkit.org/show_bug.cgi?id=194844

Reviewed by Youenn Fablet.

Move the Cocoa implementation into APIWebsiteDataStore.cpp as the source of truth and
append configuration for Glib's DeviceIdHashSalts storage directory. This also fixes
a crash in Windows when running a Service Worker.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultDataStoreConfiguration): Deleted.

  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::defaultDataStoreConfiguration): Deleted.

  • UIProcess/API/win/APIWebsiteDataStoreWin.cpp:

(API::WebsiteDataStore::defaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::defaultDataStoreConfiguration): Deleted.

2:11 PM Changeset in webkit [242288] by wilander@apple.com
  • 20 edits
    10 adds in trunk

Resource Load Statistics: Further restrict client-side cookie persistence after cross-site navigations with link decoration
https://bugs.webkit.org/show_bug.cgi?id=195196
<rdar://problem/48006419>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site.html

http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource.html
http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource.html

Trackers abuse link query parameters to transport user identifiers cross-site.
This patch detects such navigations and applies further restrictions to
client-site cookies on the destination page.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setAgeCapForClientSideCookies):

Now sets the regular 7-day cap and a reduced 1-day cap.

(WebCore::NetworkStorageSession::clearPageSpecificDataForResourceLoadStatistics):

Renamed NetworkStorageSession::removeStorageAccessForAllFramesOnPage() to
NetworkStorageSession::clearPageSpecificDataForResourceLoadStatistics since
it now clears out two types of page-specific data.

(WebCore::NetworkStorageSession::committedCrossSiteLoadWithLinkDecoration):

This function receives a cross-site navigation and checks if the originating
site is a prevalent resource. If so, it marks the page or stricter cookie
rules.

(WebCore::NetworkStorageSession::resetCrossSiteLoadsWithLinkDecorationForTesting):

Test infrastructure. This sets a state that overrides the regular per-page
clear of data. The reason is that the double clear was racy and caused test
failures.

(WebCore::NetworkStorageSession::clientSideCookieCap const):

New function that returns the current cookie lifetime cap.

(WebCore::NetworkStorageSession::removeStorageAccessForAllFramesOnPage): Deleted.

Renamed to NetworkStorageSession::clearPageSpecificDataForResourceLoadStatistics().

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):

Now calls NetworkStorageSession::clientSideCookieCap() to set the cap.

Source/WebKit:

Trackers abuse link query parameters to transport user identifiers cross-site.
This patch detects such navigations and applies further restrictions to
client-site cookies on the destination page.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): Deleted.

Renamed NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics().

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::committedCrossSiteLoadWithLinkDecoration):

Reporting IPC message when a link decorated cross-site navigation happens.

(WebKit::NetworkProcess::resetCrossSiteLoadsWithLinkDecorationForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsResetToConsistentState):

Added clearing of the new state between test runs.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::resetCrossSiteLoadsWithLinkDecorationForTesting):

Test infrastructure.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::isNonUniqueNavigationWithLinkDecoration):

Convenience function.

(WebKit::WebPageProxy::didCommitLoadForFrame):

This function now reports to the network process when a link decorated
cross-site navigation happens.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting):

Test infrastructure.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):

Name change of function called.

LayoutTests:

  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site-expected.txt: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-decoration-same-site.html: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource-expected.txt: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-fragment-from-prevalent-resource.html: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource-expected.txt: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-and-fragment-from-prevalent-resource.html: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource-expected.txt: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-with-link-query-from-prevalent-resource.html: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource-expected.txt: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-without-link-decoration-from-prevalent-resource.html: Added.
  • http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html:

Now clears cookies after the test.

1:58 PM Changeset in webkit [242287] by timothy_horton@apple.com
  • 5 edits
    1 delete in trunk/Source

Remove unused code in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=189614

Reviewed by Simon Fraser.

Source/WebKit:

  • mac/MigrateHeadersFromWebKitLegacy.make:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Carbon/CarbonUtils.h: Removed.
  • Carbon/CarbonUtils.m: Removed.
  • Carbon/CarbonWindowAdapter.h: Removed.
  • Carbon/CarbonWindowAdapter.mm: Removed.
  • Carbon/CarbonWindowContentView.h: Removed.
  • Carbon/CarbonWindowContentView.m: Removed.
  • Carbon/CarbonWindowFrame.h: Removed.
  • Carbon/CarbonWindowFrame.m: Removed.
  • Carbon/HIViewAdapter.h: Removed.
  • Carbon/HIViewAdapter.m: Removed.
  • Carbon/HIWebView.h: Removed.
  • Carbon/HIWebView.mm: Removed.
  • Configurations/WebKitLegacy.xcconfig:
  • WebKit.mac.exp:
1:46 PM Changeset in webkit [242286] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Use runtime calls for DFG MakeRope if !CPU(ADDRESS64)
https://bugs.webkit.org/show_bug.cgi?id=195221

Reviewed by Mark Lam.

ARM32_64 builds DFG 64bit, but the size of address is 32bit. Make DFG MakeRope a runtime call not only for DFG 32_64,
but also DFG 64 with !CPU(ADDRESS64). This patch unifies compileMakeRope again, and use a runtime call for !CPU(ADDRESS64).

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

1:37 PM Changeset in webkit [242285] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

Modernize WebKit::AttributedString a little bit
https://bugs.webkit.org/show_bug.cgi?id=195200

Reviewed by Wenson Hsieh.

  • Shared/mac/AttributedString.h:

(WebKit::AttributedString::AttributedString):
(WebKit::AttributedString::operator NSAttributedString * const):

  • Shared/mac/AttributedString.mm:

(IPC::ArgumentCoder<WebKit::AttributedString>::encode):
(IPC::ArgumentCoder<WebKit::AttributedString>::decode):
(WebKit::AttributedString::encode const): Deleted.
(WebKit::AttributedString::decode): Deleted.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::attributedSubstringForProposedRange):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
Modern coders, and a constructor and cast operator to/from NSAttributedString.
Also adopt those in a few places just for fun.

1:32 PM Changeset in webkit [242284] by commit-queue@webkit.org
  • 9 edits in trunk

Adjust XMLHttpRequest Content-Type handling
https://bugs.webkit.org/show_bug.cgi?id=184645

Patch by Rob Buis <rbuis@igalia.com> on 2019-03-01
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync test and update test expectation (all PASSes).

  • web-platform-tests/xhr/send-content-type-charset-expected.txt:
  • web-platform-tests/xhr/send-content-type-charset.htm:

Source/WebCore:

Implement steps 4.4.1.2 and 4.4.1.3 of send() [1].

Test: web-platform-tests/xhr/send-content-type-charset.htm

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send

  • platform/network/ParsedContentType.cpp:

(WebCore::ParsedContentType::setCharset):

  • platform/network/ParsedContentType.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::replaceCharsetInMediaTypeIfNeeded):
(WebCore::XMLHttpRequest::send):
(WebCore::replaceCharsetInMediaType): Deleted.

LayoutTests:

Fix 2 subtest expectations.

  • http/tests/xmlhttprequest/request-encoding2.html:
1:31 PM Changeset in webkit [242283] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Update originsMatch to handle the case of file origins which enforce file path separation
https://bugs.webkit.org/show_bug.cgi?id=195216

Reviewed by Brady Eidson.

Covered by the assertion and existing tests like fast/xmlhttprequest/xmlhttprequest-no-file-access.html.
Make sure originsMatch returns true if either compared origins are the same object
or they have the same file path separation behavior.

  • page/SecurityOrigin.cpp:

(WebCore::areOriginsMatching):
(WebCore::originsMatch):

1:00 PM Changeset in webkit [242282] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Continued gardening of storage/indexeddb/ crashes after r242189
https://bugs.webkit.org/show_bug.cgi?id=195210

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:36 PM Changeset in webkit [242281] by youenn@apple.com
  • 8 edits in trunk/Source

Serialize IndexedDB::ObjectStoreOverwriteMode as an enum
https://bugs.webkit.org/show_bug.cgi?id=195213

Reviewed by Alex Christensen.

Source/WebCore:

Add traits to enable enum IPC encoding.
No change of behavior.

  • Modules/indexeddb/IndexedDB.h:

Source/WebKit:

Make use of enum trait to automatically check for correct enum value when receiving a putOrAdd message.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::putOrAdd):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::putOrAdd):

12:18 PM Changeset in webkit [242280] by dinfuehr@igalia.com
  • 2 edits in trunk/JSTests

Unskip test read-dead-bytecode-locals-in-must-have-handle-values2.js on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=195207

Unreviewed. After test runtime was reduced in r242213, test can be
run again on ARM/MIPS.

  • stress/read-dead-bytecode-locals-in-must-handle-values2.js:
11:58 AM Changeset in webkit [242279] by don.olmstead@sony.com
  • 17 edits in trunk

[WinCairo] Enable service worker
https://bugs.webkit.org/show_bug.cgi?id=188318

Reviewed by Youenn Fablet.

.:

  • Source/cmake/OptionsWin.cmake:

Source/WebCore:

  • WebCorePrefix.h:
  • testing/ServiceWorkerInternals.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::serviceWorkerFailedToTerminate):

  • workers/service/context/SWContextManager.h:

Source/WebKit:

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::terminateProcess):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • config.h:

Tools:

  • DumpRenderTree/DumpRenderTreePrefix.h:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/win/TestWebKitAPIPrefix.h:
  • WebKitTestRunner/InjectedBundle/win/TestRunnerInjectedBundlePrefix.h:
  • WebKitTestRunner/WebKitTestRunnerPrefix.h:
11:55 AM Changeset in webkit [242278] by sihui_liu@apple.com
  • 7 edits in trunk/Source/WebCore

Add a quirk for bostongloble.com and latimes.com
https://bugs.webkit.org/show_bug.cgi?id=195155

Reviewed by Geoffrey Garen.

Covered by manual testing.

  • Modules/webdatabase/DOMWindowWebDatabase.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • page/Quirks.cpp:

(WebCore::Quirks::hasWebSQLSupportQuirk const):

  • page/Quirks.h:
11:33 AM Changeset in webkit [242277] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Flaky API Test TestWebKitAPI.ProcessSwap.LoadUnload
https://bugs.webkit.org/show_bug.cgi?id=195110

Reviewed by Ryosuke Niwa.

The test was attempting to disable PageCache via view preferences instead of using the
process pool configuration flag. This would fail to disable PageCache because the
usesPageCache preference would not prevent the creation of SuspendedPageProxy objects.
As a result, the firing on the unload event would get delayed until the SuspendedPageProxy
objects would get destroyed, which would lead to flakiness.

This patch updates WebPageProxy::suspendCurrentPageIfPossible() to not create suspended
pages proxies when the usesPageCache preference is set to false.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):

11:24 AM Changeset in webkit [242276] by rmorisset@apple.com
  • 3 edits
    1 add in trunk

DFG: Loop-invariant code motion (LICM) should not hoist dead code
https://bugs.webkit.org/show_bug.cgi?id=194945
<rdar://problem/48311657>

Reviewed by Saam Barati.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

11:23 AM Changeset in webkit [242275] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Rename members and move implementation to header.
https://bugs.webkit.org/show_bug.cgi?id=195198
<rdar://problem/48499967>

Reviewed by Simon Fraser.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::startObservingStyleRecalc):
(WebCore::ContentChangeObserver::stopObservingStyleRecalc):
(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::stopObservingContentChanges):
(WebCore::ContentChangeObserver::StyleRecalcScope::StyleRecalcScope):
(WebCore::ContentChangeObserver::StyleRecalcScope::~StyleRecalcScope):
(WebCore::ContentChangeObserver::startObservingStyleResolve): Deleted.
(WebCore::ContentChangeObserver::stopObservingStyleResolve): Deleted.
(WebCore::ContentChangeObserver::isObservingContentChanges): Deleted.
(WebCore::ContentChangeObserver::startObservingDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::stopObservingDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::startObservingStyleRecalcScheduling): Deleted.
(WebCore::ContentChangeObserver::stopObservingStyleRecalcScheduling): Deleted.
(WebCore::ContentChangeObserver::isObservingStyleRecalcScheduling): Deleted.
(WebCore::ContentChangeObserver::setShouldObserveNextStyleRecalc): Deleted.
(WebCore::ContentChangeObserver::shouldObserveNextStyleRecalc): Deleted.
(WebCore::ContentChangeObserver::countOfObservedDOMTimers): Deleted.
(WebCore::ContentChangeObserver::clearObservedDOMTimers): Deleted.
(WebCore::ContentChangeObserver::containsObservedDOMTimer): Deleted.

  • page/ios/ContentChangeObserver.h:

(WebCore::ContentChangeObserver::startObservingDOMTimerScheduling):
(WebCore::ContentChangeObserver::stopObservingDOMTimerScheduling):
(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling const):
(WebCore::ContentChangeObserver::containsObservedDOMTimer const):
(WebCore::ContentChangeObserver::startObservingStyleRecalcScheduling):
(WebCore::ContentChangeObserver::stopObservingStyleRecalcScheduling):
(WebCore::ContentChangeObserver::isObservingStyleRecalcScheduling const):
(WebCore::ContentChangeObserver::setShouldObserveStyleRecalc):
(WebCore::ContentChangeObserver::shouldObserveStyleRecalc const):
(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::countOfObservedDOMTimers const):
(WebCore::ContentChangeObserver::clearObservedDOMTimers):

11:21 AM Changeset in webkit [242274] by bshafiei@apple.com
  • 6 edits
    4 adds in branches/safari-607.1.40.0-branch

Cherry-pick r242248. rdar://problem/48503712

[iOS] Dark flash when opening Google AMP pages
https://bugs.webkit.org/show_bug.cgi?id=195193
rdar://problem/48326442

Reviewed by Zalan Bujtas.

Source/WebCore:

After the incremental compositing updates changes, it was possible for a change in the size
of an overflow:hidden element to fail to update the "ancestor clipping layer" geometry on
a composited descendant that is not a descendant in z-order. When Google search results
create the <iframe> that contain AMP contents, we'd fail to update a zero-sized clipping layer,
leaving the #222 background of an intermediate element visible.

Fix by setting a flag in RenderLayer::updateLayerPosition() (which is called in containing block order)
that sets the "needs geometry update" dirty bit on containing-block-descendant layers. Currently
this flag affects all descendants; in future, we might be able to clear it for grand-children.

Tests: compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html

compositing/geometry/ancestor-clip-change.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateLayerPositions): (WebCore::RenderLayer::updateLayerPosition):
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateAfterLayout):
  • rendering/RenderLayerBacking.h:

LayoutTests:

Tests that change the size of a clipping layer with non-z-order composited descendant, with
a couple of layer tree configurations.

  • compositing/geometry/ancestor-clip-change-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html: Added.
  • compositing/geometry/ancestor-clip-change.html: Added.

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

11:21 AM Changeset in webkit [242273] by rniwa@webkit.org
  • 2 edits in trunk/Websites/webkit.org

Codify the naming convention for fooIfExists
https://bugs.webkit.org/show_bug.cgi?id=194930

Reviewed by Darin Adler.

Updating the coding style guideline after the discussion following
https://lists.webkit.org/pipermail/webkit-dev/2013-June/025056.html

  • code-style.md:
11:19 AM Changeset in webkit [242272] by bshafiei@apple.com
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

11:14 AM Changeset in webkit [242271] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] ContentChangeObserver::StyleChangeScope should not set WKContentVisibilityChange directly
https://bugs.webkit.org/show_bug.cgi?id=195197
<rdar://problem/48498332>

Reviewed by Simon Fraser.

Add didContentVisibilityChange to hide WKContentVisibilityChange value. We might also want to add some logic to didContentVisibilityChange at some point.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::didContentVisibilityChange):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):

  • page/ios/ContentChangeObserver.h:
11:10 AM Changeset in webkit [242270] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME] Make sure the hasSessionSemaphore is set even if HAVE(AVSTREAMSESSION) is false
https://bugs.webkit.org/show_bug.cgi?id=195217

Reviewed by Eric Carlson.

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

(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):

11:03 AM Changeset in webkit [242269] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.22.7

WebKitGTK 2.22.7

11:02 AM Changeset in webkit [242268] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.22.5

WPE WebKit 2.22.5

10:59 AM Changeset in webkit [242267] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Release WebKitGTK 2.22.7 and WPE WebKit 2.22.5

.:

  • Source/cmake/OptionsGTK.cmake: Bump version to 2.22.7
  • Source/cmake/OptionsWPE.cmake: Bump version to 2.22.5

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.22.7
  • wpe/NEWS: Add release notes for 2.22.5
10:08 AM Changeset in webkit [242266] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[ThreadedCompositor] Simply the compositing run loop worker thread
https://bugs.webkit.org/show_bug.cgi?id=195208

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-03-01
Reviewed by Don Olmstead.

We can remove the WorkQueuePool, since we never really supported more than one thread, and now that single
process model non longer exists it doesn't even make sense. We can simply use a RunLoop instead of a WorkQueue
so that the implementation is not specific to the generic WorkQueue implementation.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::createRunLoop): Helper function to create the RunLoop in a worker thread before m_updateTimer is initialized.
(WebKit::CompositingRunLoop::CompositingRunLoop): Use createRunLoop().
(WebKit::CompositingRunLoop::~CompositingRunLoop): Stop the worker thread run loop in the next main run loop iteration.
(WebKit::CompositingRunLoop::performTask): Use m_runLoop.
(WebKit::CompositingRunLoop::performTaskSync): Ditto.
(WebKit::WorkQueuePool::singleton): Deleted.
(WebKit::WorkQueuePool::dispatch): Deleted.
(WebKit::WorkQueuePool::runLoop): Deleted.
(WebKit::WorkQueuePool::invalidate): Deleted.
(WebKit::WorkQueuePool::WorkQueuePool): Deleted.
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext): Deleted.
(): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
9:57 AM Changeset in webkit [242265] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

Enable WPT Pointer Events tests
https://bugs.webkit.org/show_bug.cgi?id=195204
<rdar://problem/48502751>

Patch by Antoine Quint <Antoine Quint> on 2019-03-01
Reviewed by Dean Jackson.

The touch-action property has been enabled as part of the work on webkit.org/b/195008 but the WPT tests
LayoutTests/imported/w3c:

had not been enabled yet, so we're now adding the progressions made.

  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt:
  • web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt:

LayoutTests:

had not been enabled yet.

  • platform/mac/TestExpectations:
9:08 AM Changeset in webkit [242264] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: (r242189): Six Layout Tests in storage/indexeddb/ are crashing after r242189
https://bugs.webkit.org/show_bug.cgi?id=195210

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:05 AM Changeset in webkit [242263] by Justin Fan
  • 12 edits in trunk

[Web GPU] 32-bit builds broken by attempt to disable WebGPU on 32-bit
https://bugs.webkit.org/show_bug.cgi?id=195191

Rubber-stamped by Dean Jackson.

Dropping support for 32-bit entirely, so I'm intentionally leaving 32-bit broken.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
3:43 AM Changeset in webkit [242262] by dinfuehr@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix debug builds with GCC
https://bugs.webkit.org/show_bug.cgi?id=195205

Unreviewed. Fix debug builds in GCC by removing
the constexpr-keyword for this function.

  • runtime/CachedTypes.cpp:

(JSC::tagFromSourceCodeType):

1:55 AM WikiStart edited by Fujii Hironori
Renamed GTK+ to GTK. (diff)
1:53 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Added PageOutline (diff)
1:51 AM WebKitGTK edited by Fujii Hironori
GTK+ → GTK (diff)
1:50 AM Changeset in webkit [242261] by dinfuehr@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Fix assembler warnings in ctiMasmProbeTrampoline
https://bugs.webkit.org/show_bug.cgi?id=195164

Reviewed by Mark Lam.

Short branches in IT blocks are deprecated in AArch32. In addition the
the conditional branch was the only instruction in the IT block. Short
branches are able to encode the condition code themselves, the additional
IT instruction is not needed.

The assembler was also warning that writing into APSR without a bitmask
was deprecated. Therefore use APSR_nzcvq instead, this generates the same
instruction encoding.

  • assembler/MacroAssemblerARMv7.cpp:
1:34 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Coordinated Compositing (diff)
1:09 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Removed TextureMapperGL's obsolete future plan. (diff)
1:02 AM CoordinatedGraphicsSystem edited by Fujii Hironori
(diff)
1:01 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Fixed BitmapTexture path (diff)
12:41 AM Changeset in webkit [242260] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix lldb webkitpy tests
https://bugs.webkit.org/show_bug.cgi?id=194375

Since we changed the value of Is8Bit flag in StringImpl, we change lldb webkitpy tests accordingly.

  • lldb/lldb_webkit.py:

(WTFStringImplProvider.is_8bit):

12:39 AM Changeset in webkit [242259] by bshafiei@apple.com
  • 7 edits in branches/safari-607-branch/Source

Versioning.

12:38 AM Changeset in webkit [242258] by bshafiei@apple.com
  • 6 edits
    4 adds in branches/safari-607-branch

Cherry-pick r242248. rdar://problem/48503715

[iOS] Dark flash when opening Google AMP pages
https://bugs.webkit.org/show_bug.cgi?id=195193
rdar://problem/48326442

Reviewed by Zalan Bujtas.

Source/WebCore:

After the incremental compositing updates changes, it was possible for a change in the size
of an overflow:hidden element to fail to update the "ancestor clipping layer" geometry on
a composited descendant that is not a descendant in z-order. When Google search results
create the <iframe> that contain AMP contents, we'd fail to update a zero-sized clipping layer,
leaving the #222 background of an intermediate element visible.

Fix by setting a flag in RenderLayer::updateLayerPosition() (which is called in containing block order)
that sets the "needs geometry update" dirty bit on containing-block-descendant layers. Currently
this flag affects all descendants; in future, we might be able to clear it for grand-children.

Tests: compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html

compositing/geometry/ancestor-clip-change.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::updateLayerPositions): (WebCore::RenderLayer::updateLayerPosition):
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateAfterLayout):
  • rendering/RenderLayerBacking.h:

LayoutTests:

Tests that change the size of a clipping layer with non-z-order composited descendant, with
a couple of layer tree configurations.

  • compositing/geometry/ancestor-clip-change-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html: Added.
  • compositing/geometry/ancestor-clip-change.html: Added.

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

12:30 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Coordinated Compositing (diff)
12:28 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Texture Mapper (diff)
12:12 AM CoordinatedGraphicsSystem edited by Fujii Hironori
Overview (diff)
12:05 AM CoordinatedGraphicsSystem edited by Fujii Hironori
(diff)

Feb 28, 2019:

11:45 PM CoordinatedGraphicsSystem edited by Fujii Hironori
(diff)
11:44 PM CoordinatedGraphicsSystem edited by Fujii Hironori
(diff)
11:31 PM Changeset in webkit [242257] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Remove CachedPtr::m_isEmpty and CachedOptional::m_isEmpty fields
https://bugs.webkit.org/show_bug.cgi?id=194999

Reviewed by Saam Barati.

These fields are unnecessary, since we can just check that m_offset
has not been initialized (I added VariableLengthObject::isEmpty for
that). They also add 7-byte padding to these classes, which is pretty
bad given how frequently CachedPtr is used.

  • runtime/CachedTypes.cpp:

(JSC::CachedObject::operator new[]):
(JSC::VariableLengthObject::allocate):
(JSC::VariableLengthObject::isEmpty const):
(JSC::CachedPtr::encode):
(JSC::CachedPtr::decode const):
(JSC::CachedPtr::get const):
(JSC::CachedOptional::encode):
(JSC::CachedOptional::decode const):
(JSC::CachedOptional::decodeAsPtr const):

8:40 PM Changeset in webkit [242256] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

HTTPSUpgradeList.db database should be opened in readonly mode
https://bugs.webkit.org/show_bug.cgi?id=195194
<rdar://problem/47103889>

Unreviewed build fix for curl.

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::openDatabase): Removed the second arguemnt of SQLiteDatabase::open.

7:41 PM Changeset in webkit [242255] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed Windows build fix after r242251.

  • platform/win/SearchPopupMenuDB.cpp:

(WebCore::SearchPopupMenuDB::openDatabase):

7:35 PM Changeset in webkit [242254] by don.olmstead@sony.com
  • 2 edits in trunk

[WinCairo] Turn ENABLE_RESOURCE_LOAD_STATISTICS on
https://bugs.webkit.org/show_bug.cgi?id=194267

Reviewed by Brent Fulgham.

  • Source/cmake/OptionsWin.cmake:
7:15 PM Changeset in webkit [242253] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Move timer removal code from DOMWindow::clearTimeout to DOMTimer::removeById
https://bugs.webkit.org/show_bug.cgi?id=195143
<rdar://problem/48462351>

Reviewed by Simon Fraser.

Currently DOMWindow::clearTimeout() is the only callsite that we are interested in, but this is more future-proof.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::removeById):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::clearTimeout):

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::removeDOMTimer): Deleted.

  • page/ios/ContentChangeObserver.h:
7:13 PM Changeset in webkit [242252] by ysuzuki@apple.com
  • 40 edits
    2 adds in trunk

[JSC] sizeof(JSString) should be 16
https://bugs.webkit.org/show_bug.cgi?id=194375

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/make-rope.js: Added.

(makeRope):

  • stress/to-lower-case-intrinsic-on-empty-rope.js: We no longer allow 0 length JSString except for jsEmptyString singleton per VM.

(returnRope.helper): Deleted.
(returnRope): Deleted.

Source/JavaScriptCore:

This patch reduces sizeof(JSString) from 24 to 16 to fit it into GC heap cell atom. And it also reduces sizeof(JSRopeString) from 48 to 32.
Both classes cut 16 bytes per instance in GC allocation. This new layout is used in 64bit architectures which has little endianess.

JSString no longer has length and flags directly. JSString has String, and we query information to this String instead of holding duplicate
information in JSString. We embed isRope bit into this String's pointer so that we can convert JSRopeString to JSString in an atomic manner.
We emit store-store fence before we put String pointer. This should exist even before this patch, so this patch also fixes one concurrency issue.

The old JSRopeString separately had JSString* fibers along with String. In this patch, we merge the first JSString* fiber and String pointer
storage into one to reduce the size of JSRopeString. JSRopeString has three pointer width storage. We pick 48bit effective address of JSString*
fibers to compress three fibers + length + flags into three pointer width storage.

In 64bit architecture, JSString and JSRopeString have the following memory layout to make sizeof(JSString) == 16 and sizeof(JSRopeString) == 32.
JSString has only one pointer. We use it for String. length() and is8Bit() queries go to StringImpl. In JSRopeString, we reuse the above pointer
place for the 1st fiber. JSRopeString has three fibers so its size is 48. To keep length and is8Bit flag information in JSRopeString, JSRopeString
encodes these information into the fiber pointers. is8Bit flag is encoded in the 1st fiber pointer. length is embedded directly, and two fibers
are compressed into 12bytes. isRope information is encoded in the first fiber's LSB.

Since length of JSRopeString should be frequently accessed compared to each fiber, we put length in contiguous 32byte field, and compress 2nd
and 3rd fibers into the following 80byte fields. One problem is that now 2nd and 3rd fibers are split. Storing and loading 2nd and 3rd fibers
are not one pointer load operation. To make concurrent collector work correctly, we must initialize 2nd and 3rd fibers at JSRopeString creation
and we must not modify these part later.

0 8 10 16 32 48

JSString [ ID ][ header ][ String pointer 0]
JSRopeString [ ID ][ header ][ flags ][ 1st fiber 1][ length ][2nd lower32][2nd upper16][3rd lower16][3rd upper32]


isRope bit

Since fibers in JSRopeString are not initialized in atomic pointer store manner, we must initialize all the fiber fields at JSRopeString creation.
To achieve this, we modify our JSRopeString::RopeBuilder implementation not to create half-baked JSRopeString.

This patch also makes an empty JSString singleton per VM. This makes evaluation of JSString in boolean context one pointer comparison. This is
critical in this change since this patch enlarges the code necessary to get length from JSString in JIT. Without this guarantee, our code of boolean
context evaluation is bloated. This patch hides all the JSString::create and JSRopeString::create in the private permission. JSString and JSRopeString
creation is only allowed from jsString and related helper functions and they return a singleton empty JSString if the length is zero. We also change
JSRopeString::RopeBuilder not to construct an empty JSRopeString.

This patch is performance neutral in Speedometer2 and JetStream2. And it improves RAMification by 2.7%.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::storeZero16):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::storeZero16):
(JSC::MacroAssemblerX86Common::store16):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::linkCodeInline):
(JSC::InlineAccess::isCacheableStringLength):
(JSC::InlineAccess::generateStringLength):

  • bytecode/InlineAccess.h:

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

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

(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileStringEquality):
(JSC::DFG::SpeculativeJIT::compileStringZeroLength):
(JSC::DFG::SpeculativeJIT::compileLogicalNotStringOrOther):
(JSC::DFG::SpeculativeJIT::emitStringBranch):
(JSC::DFG::SpeculativeJIT::emitStringOrOtherBranch):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::emitPopulateSliceIndex):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
(JSC::DFG::SpeculativeJIT::speculateStringIdentAndLoadStorage):
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
(JSC::DFG::SpeculativeJIT::compileMakeRope): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.cpp:

(JSC::FTL::AbstractHeapRepository::AbstractHeapRepository):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileStringToUntypedStrictEquality):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::mapHashString):
(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileStringSlice):
(JSC::FTL::DFG::LowerDFGToB3::compileToLowerCase):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::switchString):
(JSC::FTL::DFG::LowerDFGToB3::isRopeString):
(JSC::FTL::DFG::LowerDFGToB3::isNotRopeString):
(JSC::FTL::DFG::LowerDFGToB3::speculateStringIdent):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfRopeStringImpl):
(JSC::AssemblyHelpers::branchIfNotRopeStringImpl):

  • jit/JITInlines.h:

(JSC::JIT::emitLoadCharacterString):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • jit/ThunkGenerators.cpp:

(JSC::stringGetByValGenerator):
(JSC::stringCharLoad):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSString.cpp:

(JSC::JSString::createEmptyString):
(JSC::JSRopeString::RopeBuilder<RecordOverflow>::expand):
(JSC::JSString::dumpToStream):
(JSC::JSString::estimatedSize):
(JSC::JSString::visitChildren):
(JSC::JSRopeString::resolveRopeInternal8 const):
(JSC::JSRopeString::resolveRopeInternal8NoSubstring const):
(JSC::JSRopeString::resolveRopeInternal16 const):
(JSC::JSRopeString::resolveRopeInternal16NoSubstring const):
(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::convertToNonRope const):
(JSC::JSRopeString::resolveRopeToExistingAtomicString const):
(JSC::JSRopeString::resolveRopeWithFunction const):
(JSC::JSRopeString::resolveRope const):
(JSC::JSRopeString::resolveRopeSlowCase8 const):
(JSC::JSRopeString::resolveRopeSlowCase const):
(JSC::JSRopeString::outOfMemory const):
(JSC::JSRopeString::visitFibers): Deleted.
(JSC::JSRopeString::clearFibers const): Deleted.

  • runtime/JSString.h:

(JSC::JSString::uninitializedValueInternal const):
(JSC::JSString::valueInternal const):
(JSC::JSString::JSString):
(JSC::JSString::finishCreation):
(JSC::JSString::create):
(JSC::JSString::offsetOfValue):
(JSC::JSString::isRope const):
(JSC::JSString::is8Bit const):
(JSC::JSString::length const):
(JSC::JSString::tryGetValueImpl const):
(JSC::JSString::toAtomicString const):
(JSC::JSString::toExistingAtomicString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):
(JSC::JSString::viewWithUnderlyingString const):
(JSC::JSString::offsetOfLength): Deleted.
(JSC::JSString::offsetOfFlags): Deleted.
(JSC::JSString::setIs8Bit const): Deleted.
(JSC::JSString::setLength): Deleted.
(JSC::JSString::string): Deleted.
(JSC::jsStringBuilder): Deleted.

  • runtime/JSStringInlines.h:

(JSC::JSString::~JSString):
(JSC::JSString::equal const):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpObjectInlines.h:

(JSC::collectMatches):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncSplitFast):

  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::initializeCommonStrings):
(JSC::SmallStrings::createEmptyString): Deleted.

  • runtime/SmallStrings.h:
  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSlice):

  • runtime/StringPrototypeInlines.h: Added.

(JSC::stringSlice):

Source/WTF:

  • wtf/text/StringImpl.h:

(WTF::StringImpl::flagIs8Bit):
(WTF::StringImpl::flagIsAtomic):
(WTF::StringImpl::flagIsSymbol):
(WTF::StringImpl::maskStringKind):

  • wtf/text/WTFString.cpp:

(WTF::nullString):

  • wtf/text/WTFString.h:
6:47 PM Changeset in webkit [242251] by Chris Dumez
  • 8 edits in trunk/Source

HTTPSUpgradeList.db database should be opened in readonly mode
https://bugs.webkit.org/show_bug.cgi?id=195194
<rdar://problem/47103889>

Reviewed by Youenn Fablet.

Source/WebCore:

Add parameter to SQLiteDatabase::open() to specific the open flags.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

  • platform/sql/SQLiteDatabase.h:
  • platform/sql/SQLiteFileSystem.cpp:
  • platform/sql/SQLiteFileSystem.h:

Source/WebKit:

HTTPSUpgradeList.db database should be opened in readonly mode since it is not meant to be
modified by WebKit. Opening it in ReadWrite mode causes sandbox violations.

  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:

(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):

6:22 PM Changeset in webkit [242250] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.2.1

Tag Safari-607.1.40.2.1.

6:10 PM Changeset in webkit [242249] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Followup to:
Universal links from Google search results pages don't open the app
https://bugs.webkit.org/show_bug.cgi?id=195126

Unreviewed.

  • page/SecurityOrigin.cpp:

(WebCore::originsMatch): Remove a bogus assertion (reasoning in bugzilla)

5:54 PM Changeset in webkit [242248] by Simon Fraser
  • 6 edits
    4 adds in trunk

[iOS] Dark flash when opening Google AMP pages
https://bugs.webkit.org/show_bug.cgi?id=195193
rdar://problem/48326442

Reviewed by Zalan Bujtas.

Source/WebCore:

After the incremental compositing updates changes, it was possible for a change in the size
of an overflow:hidden element to fail to update the "ancestor clipping layer" geometry on
a composited descendant that is not a descendant in z-order. When Google search results
create the <iframe> that contain AMP contents, we'd fail to update a zero-sized clipping layer,
leaving the #222 background of an intermediate element visible.

Fix by setting a flag in RenderLayer::updateLayerPosition() (which is called in containing block order)
that sets the "needs geometry update" dirty bit on containing-block-descendant layers. Currently
this flag affects all descendants; in future, we might be able to clear it for grand-children.

Tests: compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html

compositing/geometry/ancestor-clip-change.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPosition):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterLayout):

  • rendering/RenderLayerBacking.h:

LayoutTests:

Tests that change the size of a clipping layer with non-z-order composited descendant, with
a couple of layer tree configurations.

  • compositing/geometry/ancestor-clip-change-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context-expected.html: Added.
  • compositing/geometry/ancestor-clip-change-interleaved-stacking-context.html: Added.
  • compositing/geometry/ancestor-clip-change.html: Added.
5:44 PM Changeset in webkit [242247] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Attempt windows build fix after r242239.

  • runtime/CachedTypes.cpp:

(JSC::tagFromSourceCodeType):

5:30 PM Changeset in webkit [242246] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.1.2

Tag Safari-607.1.40.1.2.

5:29 PM Changeset in webkit [242245] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.0.2

Tag Safari-607.1.40.0.2.

5:11 PM Changeset in webkit [242244] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: don't show the auto-stop UI when not inspecting a page
https://bugs.webkit.org/show_bug.cgi?id=195192

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype.get navigationItems):

4:48 PM Changeset in webkit [242243] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage: Worker thread that dies might stay at a high value forever
https://bugs.webkit.org/show_bug.cgi?id=195148

Reviewed by Matt Baker.

  • UserInterface/Views/CPUTimelineView.js:

(CPUTimelineView.prototype.layout):
Handle workers dieing or at least zeroing out between records.

4:48 PM Changeset in webkit [242242] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage Timeline - Make Threads section expandable / collapsable
https://bugs.webkit.org/show_bug.cgi?id=195085

Reviewed by Matt Baker.

  • UserInterface/Base/Setting.js:

New setting to save the Threads expanded/collapsed state.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content > .details > .subtitle):
(.timeline-view.cpu > .content > .details > details > .subtitle.threads):
(.timeline-view.cpu > .content > .details > .subtitle): Deleted.
(.timeline-view.cpu > .content > .details > .subtitle.threads): Deleted.
Ensure subtitle styles apply now that one of the subtitles is inside
of a <details> / <summary> element.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.initialLayout):
Make the Threads group a <details> / <summary> expandable / collapsed element.

  • UserInterface/Views/Main.css:

(summary):
(summary::-webkit-details-marker):
Default styles for <summary>.

4:48 PM Changeset in webkit [242241] by Joseph Pecoraro
  • 5 edits in trunk

Web Inspector: View.removeSubview not removing the element properly when not parented
https://bugs.webkit.org/show_bug.cgi?id=195146

Reviewed by Matt Baker.

Source/WebInspectorUI:

  • UserInterface/Views/View.js:

(WI.View.prototype.removeSubview):
Since the element may not be a direct child, just use Element.prototype.remove.

LayoutTests:

  • inspector/view/basics-expected.txt:
  • inspector/view/basics.html:
4:04 PM Changeset in webkit [242240] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

In cloop.rb, rename :int and :uint to :intptr and :uintptr.
https://bugs.webkit.org/show_bug.cgi?id=195183

Reviewed by Yusuke Suzuki.

Also changed intMemRef and uintMemRef to intptrMemRef and uintptrMemRef respectively.

  • offlineasm/cloop.rb:
3:58 PM Changeset in webkit [242239] by sbarati@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Make JSScript:cacheBytecodeWithError update the cache when the script changes
https://bugs.webkit.org/show_bug.cgi?id=194912

Reviewed by Mark Lam.

Prior to this patch, the JSScript SPI would never check if its cached
bytecode were still valid. This would lead the cacheBytecodeWithError
succeeding even if the underlying cache were stale. This patch fixes
that by making JSScript check if the cache is still valid. If it's not,
we will cache bytecode when cacheBytecodeWithError is invoked.

  • API/JSScript.mm:

(-[JSScript readCache]):
(-[JSScript writeCache:]):

  • API/tests/testapi.mm:

(testBytecodeCacheWithSameCacheFileAndDifferentScript):
(testObjectiveCAPI):

  • runtime/CachedTypes.cpp:

(JSC::Decoder::Decoder):
(JSC::VariableLengthObject::buffer const):
(JSC::CachedPtr::decode const):
(JSC::tagFromSourceCodeType):
(JSC::GenericCacheEntry::isUpToDate const):
(JSC::CacheEntry::isStillValid const):
(JSC::GenericCacheEntry::decode const):
(JSC::GenericCacheEntry::isStillValid const):
(JSC::encodeCodeBlock):
(JSC::decodeCodeBlockImpl):
(JSC::isCachedBytecodeStillValid):

  • runtime/CachedTypes.h:
  • runtime/CodeCache.cpp:

(JSC::sourceCodeKeyForSerializedBytecode):
(JSC::sourceCodeKeyForSerializedProgram):
(JSC::sourceCodeKeyForSerializedModule):
(JSC::serializeBytecode):

  • runtime/CodeCache.h:

(JSC::CodeCacheMap::fetchFromDiskImpl):

  • runtime/Completion.cpp:

(JSC::generateProgramBytecode):
(JSC::generateBytecode): Deleted.

  • runtime/Completion.h:
3:57 PM Changeset in webkit [242238] by Kocsen Chung
  • 2 edits in tags/Safari-608.1.7.1/Source/WTF

Cherry-pick r242235. rdar://problem/48464665

Change CheckedArithmetic to not use std::enable_if_t.
https://bugs.webkit.org/show_bug.cgi?id=195187
<rdar://problem/48464665>

Reviewed by Keith Miller.

Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.

  • wtf/CheckedArithmetic.h:

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

3:42 PM Changeset in webkit [242237] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Use-after-move in RenderCombineText::combineTextIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=195188

Reviewed by Zalan Bujtas.

Source/WebCore:

r241288 uncovered an existing problem with our text-combine code. r242204 alleviated the
symptom, but this patch fixes the source of the problem (and reverts r242204).

The code in RenderCombineText::combineTextIfNeeded() has a bit that’s like:

FontDescription bestFitDescription;
while (...) {

FontCascade compressedFont(WTFMove(bestFitDescription), ...);
...

}

Clearly this is wrong.

Test: fast/text/text-combine-crash-2.html

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontDescription::platformResolveGenericFamily):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineTextIfNeeded):

LayoutTests:

  • fast/text/text-combine-crash-2-expected.html: Added.
  • fast/text/text-combine-crash-2.html: Added.
3:37 PM Changeset in webkit [242236] by david_quesada@apple.com
  • 5 edits
    1 add in trunk

Expose APINavigationAction.shouldPerformDownload() on WKNavigationAction
https://bugs.webkit.org/show_bug.cgi?id=195121
rdar://problem/48450302

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction _shouldPerformDownload]):

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:

Tools:

Add API tests for -WKNavigationAction._shouldPerformDownload in various
configurations where the 'download' attribute is absent, blank, or populated
with a filename, and where the anchor element is same-origin or cross-origin
(meaning the 'download' attribute shouldn't be honored).

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/NavigationAction.mm: Added.

(-[NavigationActionTestDelegate init]):
(-[NavigationActionTestDelegate navigationAction]):
(-[NavigationActionTestDelegate waitForNavigationActionCallback]):
(-[NavigationActionTestDelegate waitForDidFinishNavigation]):
(-[NavigationActionTestDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[NavigationActionTestDelegate webView:didFinishNavigation:]):
(TEST):

3:33 PM Changeset in webkit [242235] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Change CheckedArithmetic to not use std::enable_if_t.
https://bugs.webkit.org/show_bug.cgi?id=195187
<rdar://problem/48464665>

Reviewed by Keith Miller.

Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.

  • wtf/CheckedArithmetic.h:
3:18 PM Changeset in webkit [242234] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[ContentChangeObserver] Introduce observer subclasses to scope content change observing.
https://bugs.webkit.org/show_bug.cgi?id=195172
<rdar://problem/48479259>

Reviewed by Simon Fraser.

Let's scope start/stopObserving call pairs.

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::StyleChangeObserver::StyleChangeObserver):
(WebCore::ContentChangeObserver::StyleChangeObserver::~StyleChangeObserver):
(WebCore::ContentChangeObserver::StyleRecalcObserver::StyleRecalcObserver):
(WebCore::ContentChangeObserver::StyleRecalcObserver::~StyleRecalcObserver):
(WebCore::ContentChangeObserver::DOMTimerObserver::DOMTimerObserver):
(WebCore::ContentChangeObserver::DOMTimerObserver::~DOMTimerObserver):
(WebCore::ContentChangeObserver::StyleChange::StyleChange): Deleted.
(WebCore::ContentChangeObserver::StyleChange::~StyleChange): Deleted.

  • page/ios/ContentChangeObserver.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

3:04 PM Changeset in webkit [242233] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Disable Web Animations in Safari Technology Preview
https://bugs.webkit.org/show_bug.cgi?id=194748
<rdar://problem/48139481>

Patch by Antoine Quint <Antoine Quint> on 2019-02-28
Reviewed by Dean Jackson.

The test runners already opt into that feature explicitly, so all that is needed is to turn
the default setting value to false.

  • Shared/WebPreferences.yaml:
2:59 PM Changeset in webkit [242232] by commit-queue@webkit.org
  • 8 edits in trunk

Enable the Pointer Events runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=195156

Patch by Antoine Quint <Antoine Quint> on 2019-02-28
Reviewed by Dean Jackson.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

2:54 PM Changeset in webkit [242231] by Devin Rousso
  • 3 edits in trunk/LayoutTests

REGRESSION (r240644): Layout Test inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=194437
<rdar://problem/48008005>

Reviewed by Joseph Pecoraro.

  • inspector/page/overrideSetting-ICECandidateFilteringEnabled.html:
  • inspector/page/overrideSetting-ICECandidateFilteringEnabled-expected.txt:

Make sure to close the peer connection and data channel after each phase of the test.
Also add failure logging.

2:45 PM Changeset in webkit [242230] by sihui_liu@apple.com
  • 7 edits in trunk/Source/WebKit

Revert r232263: it caused processes to crash because process was suspended with locked file
https://bugs.webkit.org/show_bug.cgi?id=195122
<rdar://problem/48444599>

Reviewed by Geoffrey Garen.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp:

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):

  • Shared/WebSQLiteDatabaseTracker.h:
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::m_nonVisibleProcessCleanupTimer): Deleted.

  • WebProcess/WebProcess.h:
2:34 PM Changeset in webkit [242229] by Alan Coon
  • 7 edits in tags/Safari-608.1.7.1/Source

Versioning.

2:32 PM Changeset in webkit [242228] by Matt Baker
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger: disabled breakpoint color is too dark
https://bugs.webkit.org/show_bug.cgi?id=195103
<rdar://problem/48440678>

Reviewed by Devin Rousso.

Increase the disabled breakpoint contrast, as well as the contrast between
disabled and auto-continue breakpoints. Disabled breakpoints stand out by
being somewhat brighter and less saturated. Using the same strategy for
auto-continue breakpoints is too subtle to provide sufficient contrast.

We can adopt the technique used by Xcode, and overlay a white triangle
marker on the breakpoint arrow to indicate an auto-continue breakpoint.

  • UserInterface/Views/BreakpointTreeElement.css:

(.item.breakpoint .status > .status-image):
(.item.breakpoint.selected .status > .status-image.resolved):
Add white outline to make selected breakpoint button stand out.
(.item.breakpoint .status > .status-image.auto-continue::after):
(.item.breakpoint .status > .status-image.disabled):
(.item.breakpoint .status > .status-image.auto-continue): Deleted.

  • UserInterface/Views/DOMTreeContentView.css:

(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled,): Deleted.

  • UserInterface/Views/TextEditor.css:

(.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .breakpoint-auto-continue:not(.execution-line.primary) .CodeMirror-linenumber::after):
(.text-editor > .CodeMirror .breakpoint-disabled .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before): Deleted.

  • UserInterface/Views/Variables.css:

(:root):
Add breakpoint color variables to use across all breakpoint controls.
Use system colors if available, otherwise fall back to hard-coded values
based on sampling the default (blue) accent color on Mojave.

2:29 PM Changeset in webkit [242227] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[ContentChangeObserver] Make observed state reset explicit.
https://bugs.webkit.org/show_bug.cgi?id=195185
<rdar://problem/48488342>

Reviewed by Simon Fraser.

Use setObservedContentChange only for setting the observed change while observing.

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::resetObservedContentChange):
(WebCore::ContentChangeObserver::removeObservedDOMTimer):

  • page/ios/ContentChangeObserver.h:
2:13 PM Changeset in webkit [242226] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.7.1

New tag.

2:01 PM Changeset in webkit [242225] by Devin Rousso
  • 17 edits in trunk/LayoutTests

Web Inspector: Canvas: change tests to not print out dataURLs
https://bugs.webkit.org/show_bug.cgi?id=195136
<rdar://problem/48248697>

Reviewed by Matt Baker.

  • inspector/canvas/resources/recording-utilities.js:

(TestPage.registerInitializer.async logRecording):
(TestPage.registerInitializer.window.startRecording):

  • inspector/canvas/recording-2d-expected.txt:
  • inspector/canvas/recording-bitmaprenderer-expected.txt:
  • inspector/canvas/recording-webgl-expected.txt:
  • inspector/canvas/recording-webgl-snapshots.html:
  • inspector/canvas/recording-webgl-snapshots-expected.txt:
  • inspector/canvas/requestContent-2d.html:
  • inspector/canvas/requestContent-2d-expected.txt:
  • inspector/canvas/requestContent-bitmaprenderer.html:
  • inspector/canvas/requestContent-bitmaprenderer-expected.txt:
  • inspector/canvas/requestContent-webgl.html:
  • inspector/canvas/requestContent-webgl-expected.txt:
  • inspector/canvas/requestContent-webgl2.html:
  • inspector/canvas/requestContent-webgl2-expected.txt:
  • inspector/canvas/setShaderProgramHighlighted.html:
  • inspector/canvas/setShaderProgramHighlighted-expected.txt:
1:53 PM Changeset in webkit [242224] by Alan Coon
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

1:41 PM Changeset in webkit [242223] by Alan Coon
  • 2 edits in branches/safari-607.1.40.0-branch/Source/WebCore

Cherry-pick r242204. rdar://problem/48483749

Locale names can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=195171
<rdar://problem/48262376>

Reviewed by Dean Jackson.

Nullptr can't be used in keys to HashMaps, so take an early out in this case.

This is a partial revert of r241288.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::FontDescription::platformResolveGenericFamily):

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

1:39 PM Changeset in webkit [242222] by pvollan@apple.com
  • 9 edits in trunk/Source/WebKit

[iOS] Move calls to [UIKeyboard isInHardwareKeyboardMode] to the UI process.
https://bugs.webkit.org/show_bug.cgi?id=193683
<rdar://problem/47634345>

Reviewed by Brent Fulgham.

When a keyboard is attached/deattached or the application becomes foreground, send a message from
the UI process to the WebContent process, notifying whether a keyboard is attached or not. Also,
cache the value of [UIKeyboard isInHardwareKeyboardMode] in the UI process, since this call seems
to be expensive.

  • UIProcess/API/Cocoa/WKWebView.mm:

(hardwareKeyboardAvailabilityChangedCallback):

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

(WebKit::WebProcessProxy::setKeyboardIsAttached):
(WebKit::WebProcessProxy::keyboardIsAttached const):

  • UIProcess/ios/WKContentViewInteraction.mm:

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

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationWillEnterForeground):
(WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::hardwareKeyboardAvailabilityChanged):

1:27 PM Changeset in webkit [242221] by Alan Coon
  • 7 edits in branches/safari-607.1.40.1-branch/Source

Versioning.

1:24 PM Changeset in webkit [242220] by Alan Coon
  • 2 edits in branches/safari-607.1.40.1-branch/Source/WebCore

Cherry-pick r242204. rdar://problem/48483747

Locale names can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=195171
<rdar://problem/48262376>

Reviewed by Dean Jackson.

Nullptr can't be used in keys to HashMaps, so take an early out in this case.

This is a partial revert of r241288.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::FontDescription::platformResolveGenericFamily):

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

1:24 PM Changeset in webkit [242219] by Alan Coon
  • 2 edits in branches/safari-607.1.40.1-branch/Source/WebCore

Apply patch. rdar://problem/48464969

1:19 PM Changeset in webkit [242218] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: Control-Space should force completion
https://bugs.webkit.org/show_bug.cgi?id=194796
<rdar://problem/48180822>

Reviewed by Matt Baker.

Pressing Control-Space when editing CSS property should show completion popover,
even if the value is empty.

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.prototype.startsWith):
Performance optimization: exit early when prefix is empty.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype._handleKeyDown):
(WI.SpreadsheetTextField.prototype._updateCompletions):

1:06 PM Changeset in webkit [242217] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: enabling auto-capture if the frame count is empty triggers an assertion
https://bugs.webkit.org/show_bug.cgi?id=195060

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
(WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureCheckedDidChange):

12:52 PM Changeset in webkit [242216] by Wenson Hsieh
  • 2 edits in trunk/Tools

Several PasteImage API tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=195160

Reviewed by Tim Horton.

Some of these tests, such as PasteTIFFImage, don't wait for the inserted image element to finish loading before
querying the image element's size; a few other tests, such as PastePNGFile, are racy since they may begin
listening for a "load" event after image load is already complete.

To address this, make these tests first register a "load" event handler, then run script to insert an image
element into the document, and finally wait until the load event is observed before checking image size.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
12:48 PM Changeset in webkit [242215] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

cloop.rb shift mask should depend on the word size being shifted.
https://bugs.webkit.org/show_bug.cgi?id=195181
<rdar://problem/48484164>

Reviewed by Yusuke Suzuki.

Previously, we're always masking the shift amount with 0x1f. This is only correct
for 32-bit words. For 64-bit words, the mask should be 0x3f. For pointer sized
shifts, the mask depends on sizeof(uintptr_t).

  • offlineasm/cloop.rb:
12:44 PM Changeset in webkit [242214] by bshafiei@apple.com
  • 2 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r242204. rdar://problem/48483754

Locale names can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=195171
<rdar://problem/48262376>

Reviewed by Dean Jackson.

Nullptr can't be used in keys to HashMaps, so take an early out in this case.

This is a partial revert of r241288.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp: (WebCore::FontDescription::platformResolveGenericFamily):

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

12:17 PM Changeset in webkit [242213] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce the count in the stress/read-dead-bytecode-locals-in-must-handle-values2.js
https://bugs.webkit.org/show_bug.cgi?id=195144

1e8 takes too much time in the Debug build. I tried 1e5 with the old Debug build and it successfully reproduced the issue.
Change the number from 1e8 to 1e5.

  • stress/read-dead-bytecode-locals-in-must-handle-values2.js:

(foo):

11:58 AM Changeset in webkit [242212] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

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

it broke hover menus on losaltosonline.com (Requested by zalan
on #webkit).

Reverted changeset:

"[ContentChangeObserver] Move timer removal code from
DOMWindow::clearTimeout to DOMTimer::removeById"
https://bugs.webkit.org/show_bug.cgi?id=195143
https://trac.webkit.org/changeset/242210

Patch by Commit Queue <commit-queue@webkit.org> on 2019-02-28

11:25 AM Changeset in webkit [242211] by Alan Coon
  • 2 edits in branches/safari-607-branch/Source/WebCore

Apply patch. rdar://problem/48464974

11:19 AM Changeset in webkit [242210] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Move timer removal code from DOMWindow::clearTimeout to DOMTimer::removeById
https://bugs.webkit.org/show_bug.cgi?id=195143
<rdar://problem/48462351>

Reviewed by Simon Fraser.

Currently DOMWindow::clearTimeout() is the only callsite that we are interested in, but this is more future-proof.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::removeById):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::clearTimeout):

  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::startObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::stopObservingDOMTimerExecute):
(WebCore::ContentChangeObserver::didRemoveDOMTimer):
(WebCore::ContentChangeObserver::removeDOMTimer): Deleted.

  • page/ios/ContentChangeObserver.h:
11:09 AM Changeset in webkit [242209] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

Fix Resource Timing buffer edge cases for WPT
https://bugs.webkit.org/show_bug.cgi?id=193213

Patch by Charles Vazac <cvazac@akamai.com> on 2019-02-28
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/buffer-full-add-after-full-event.html:
  • web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-add-then-clear-expected.txt:
  • web-platform-tests/resource-timing/buffer-full-then-increased-expected.txt:

Source/WebCore:

Test coverage by LayoutTests/imported/w3c/web-platform-tests/resource-timing/buffer*.html

  • page/Performance.cpp:

(WebCore::Performance::resourceTimingBufferFullTimerFired): Only dispatch the
resourcetimingbufferfull event if the buffer is still full (as it may have been cleared or
expanded). Also, avoid infinite loops if we aren't able to decrease the number of entries in
the secondary buffer.

10:51 AM Changeset in webkit [242208] by Chris Dumez
  • 2 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.ProcessSwap.PageZoomLevelAfterSwap
https://bugs.webkit.org/show_bug.cgi?id=195107

Reviewed by Alex Christensen.

Give some time for the zoom level to get restored.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:44 AM Changeset in webkit [242207] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

[Curl] HTTP Body is missing with redirection.
https://bugs.webkit.org/show_bug.cgi?id=191651

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-02-28
Reviewed by Don Olmstead.

Source/WebCore:

Implement updateFromDelegatePreservingOldProperties for curl port.

Tests: http/tests/navigation/post-301-response.html

http/tests/navigation/post-302-response.html
http/tests/navigation/post-303-response.html
http/tests/navigation/post-307-response.html
http/tests/navigation/post-308-response.html

  • platform/Curl.cmake:
  • platform/network/curl/ResourceRequest.h:

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.

  • platform/network/curl/ResourceRequestCurl.cpp: Added.

(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

LayoutTests:

  • platform/wincairo/TestExpectations:
10:41 AM Changeset in webkit [242206] by Alan Coon
  • 14 edits in branches/safari-607.1.40.2-branch

Cherry-pick r242200. rdar://problem/48464986

[watchOS] Disable Parental Controls content filtering
<rdar://problem/48464986>

Rubber-stamped by Beth Dakin.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-607-branch@242200 268f45cc-cd09-0410-ab3c-d52691b4dbfc

10:28 AM Changeset in webkit [242205] by commit-queue@webkit.org
  • 43 edits in trunk

[CoordinatedGraphics] Remove COORDINATED_GRAPHICS_THREADED option
https://bugs.webkit.org/show_bug.cgi?id=195159

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-02-28
Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Use COORDINATED_GRAPHICS instead.

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/PlatformLayer.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::ImageBufferData):
(WebCore::ImageBufferData::~ImageBufferData):

  • platform/graphics/cairo/ImageBufferDataCairo.h:
  • platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:
  • platform/graphics/nicosia/NicosiaPaintingEngineThreaded.h:
  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:

(Nicosia::GC3DLayer::swapBuffersIfNeeded):

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

  • platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:

(WebCore::TextureMapperGC3DPlatformLayer::TextureMapperGC3DPlatformLayer):
(WebCore::TextureMapperGC3DPlatformLayer::~TextureMapperGC3DPlatformLayer):

  • platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxyProvider.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::updatePlatformLayer):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintsIntoWindow const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls const):

Source/WebKit:

Use COORDINATED_GRAPHICS instead.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/SimpleViewportController.cpp:
  • Shared/CoordinatedGraphics/SimpleViewportController.h:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged):
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendViewportAttributesChanged):
(WebKit::WebPage::viewportPropertiesDidChange):

  • WebProcess/gtk/WebProcessMainGtk.cpp:
10:22 AM Changeset in webkit [242204] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Locale names can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=195171
<rdar://problem/48262376>

Reviewed by Dean Jackson.

Nullptr can't be used in keys to HashMaps, so take an early out in this case.

This is a partial revert of r241288.

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontDescription::platformResolveGenericFamily):

10:15 AM Changeset in webkit [242203] by sihui_liu@apple.com
  • 9 edits in trunk

Stop using legacy IDB path by default when creating WebProcessPool from websiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=194958

Reviewed by Geoffrey Garen.

Source/WebKit:

ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration should not use fixed IDB path.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::createLegacy):
(API::indexedDBDatabaseDirectory):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _indexedDBDatabaseDirectory]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm:

(TEST):

9:45 AM Changeset in webkit [242202] by dbates@webkit.org
  • 11 edits in trunk/LayoutTests

Fix timing out tests following r241747
(https://bugs.webkit.org/show_bug.cgi?id=193599)

Fix up the path to ui-helper.js so that we actually load it.

  • fast/forms/ios/focus-button.html:
  • fast/forms/ios/focus-checkbox.html:
  • fast/forms/ios/focus-checked-checkbox.html:
  • fast/forms/ios/focus-checked-radio.html:
  • fast/forms/ios/focus-radio.html:
  • fast/forms/ios/focus-reset-button.html:
  • fast/forms/ios/focus-search-field.html:
  • fast/forms/ios/focus-submit-button.html:
  • fast/forms/ios/focus-text-field.html:
  • fast/forms/ios/focus-textarea.html:
9:34 AM Changeset in webkit [242201] by dinfuehr@igalia.com
  • 2 edits in trunk/JSTests

Test times out on ARM/MIPS
https://bugs.webkit.org/show_bug.cgi?id=195168

Unreviewed. Skip test on ARM/MIPS.

  • stress/read-dead-bytecode-locals-in-must-handle-values2.js:
9:31 AM Changeset in webkit [242200] by aestes@apple.com
  • 14 edits in branches/safari-607-branch

[watchOS] Disable Parental Controls content filtering
<rdar://problem/48464986>

Rubber-stamped by Beth Dakin.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:17 AM Changeset in webkit [242199] by Carlos Garcia Campos
  • 8 edits
    1 move
    1 add
    5 deletes in trunk/Source/WebKit

[CoordinatedGraphics] Unify all LayerTreeHost classes
https://bugs.webkit.org/show_bug.cgi?id=195094

Reviewed by Žan Doberšek.

There's no reason to have 3 classes, since currently LayerTreeHost is only used by coordinated graphics based
ports.

  • PlatformWin.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeNow):

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: Removed.
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: Removed.
  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp: Renamed from Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp.

(WebKit::LayerTreeHost::LayerTreeHost):
(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::setLayerFlushSchedulingEnabled):
(WebKit::LayerTreeHost::scheduleLayerFlush):
(WebKit::LayerTreeHost::cancelPendingLayerFlush):
(WebKit::LayerTreeHost::layerFlushTimerFired):
(WebKit::LayerTreeHost::setRootCompositingLayer):
(WebKit::LayerTreeHost::setViewOverlayRootLayer):
(WebKit::LayerTreeHost::invalidate):
(WebKit::LayerTreeHost::scrollNonCompositedContents):
(WebKit::LayerTreeHost::forceRepaint):
(WebKit::LayerTreeHost::forceRepaintAsync):
(WebKit::LayerTreeHost::sizeDidChange):
(WebKit::LayerTreeHost::pauseRendering):
(WebKit::LayerTreeHost::resumeRendering):
(WebKit::LayerTreeHost::graphicsLayerFactory):
(WebKit::LayerTreeHost::contentsSizeChanged):
(WebKit::LayerTreeHost::didChangeViewportAttributes):
(WebKit::LayerTreeHost::didChangeViewport):
(WebKit::LayerTreeHost::setIsDiscardable):
(WebKit::LayerTreeHost::setNativeSurfaceHandleForCompositing):
(WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHost::createDisplayRefreshMonitor):
(WebKit::LayerTreeHost::didFlushRootLayer):
(WebKit::LayerTreeHost::commitSceneState):
(WebKit::LayerTreeHost::frameComplete):
(WebKit::LayerTreeHost::nativeSurfaceHandleForCompositing):
(WebKit::LayerTreeHost::didDestroyGLContext):
(WebKit::LayerTreeHost::willRenderFrame):
(WebKit::LayerTreeHost::didRenderFrame):
(WebKit::LayerTreeHost::requestDisplayRefreshMonitorUpdate):
(WebKit::LayerTreeHost::handleDisplayRefreshMonitorUpdate):
(WebKit::LayerTreeHost::renderNextFrame):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h: Renamed from Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h.
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::setNeedsDisplay):
(WebKit::DrawingAreaImpl::setNeedsDisplayInRect):

  • WebProcess/WebPage/LayerTreeHost.cpp: Removed.
  • WebProcess/WebPage/LayerTreeHost.h: Removed.
  • WebPage/win/LayerTreeHost.h: Added.
4:28 AM Changeset in webkit [242198] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-app] Update method to save build to handle builder_display_name
https://bugs.webkit.org/show_bug.cgi?id=195047

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/ews-app/ews/models/build.py: Updated to handle builder_name and builder_display_name.
  • BuildSlaveSupport/ews-app/ews/views/results.py: Ditto.
1:02 AM Changeset in webkit [242197] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Revert -webkit-border-end changes that are unreliable
https://bugs.webkit.org/show_bug.cgi?id=195149

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-02-28
Reviewed by Matt Baker.

  • UserInterface/Views/CPUUsageIndicatorView.css:

(.cpu-usage-indicator-view > .details):
(body[dir=ltr] .cpu-usage-indicator-view > .details):
(body[dir=rtl] .cpu-usage-indicator-view > .details):

  • UserInterface/Views/CPUUsageStackedView.css:

(.cpu-usage-stacked-view > .details):
(body[dir=ltr] .cpu-usage-stacked-view > .details):
(body[dir=rtl] .cpu-usage-stacked-view > .details):

  • UserInterface/Views/CPUUsageView.css:

(.cpu-usage-view > .details):
(body[dir=ltr] .cpu-usage-view > .details):
(body[dir=rtl] .cpu-usage-view > .details):

  • UserInterface/Views/MemoryCategoryView.css:

(.memory-category-view > .details):
(body[dir=ltr] .memory-category-view > .details):
(body[dir=rtl] .memory-category-view > .details):

12:27 AM Changeset in webkit [242196] by Justin Fan
  • 12 edits in trunk

[Web GPU] Enable Web GPU only on 64-bit
https://bugs.webkit.org/show_bug.cgi?id=195139

Because Metal is only supported on 64 bit apps.

Unreviewed build fix.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
12:07 AM Changeset in webkit [242195] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup some Chart code
https://bugs.webkit.org/show_bug.cgi?id=195147

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-02-28
Reviewed by Matt Baker.

  • UserInterface/Views/RangeChart.js:

(WI.RangeChart.prototype.layout):
(WI.RangeChart):

  • UserInterface/Views/StackedColumnChart.js:

(WI.StackedColumnChart.prototype.layout):
(WI.StackedColumnChart):

Feb 27, 2019:

11:28 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
10:54 PM Changeset in webkit [242194] by Joseph Pecoraro
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a new Scanner TimelineMarker to show up when mousing over TimelineView graphs
https://bugs.webkit.org/show_bug.cgi?id=195079

Reviewed by Devin Rousso.

  • UserInterface/Base/Utilities.js:

(Note.prototype.enclosingNodeOrSelfWithClassInArray):
Helper for a set of classes.

  • UserInterface/Models/TimelineMarker.js:

Add a new marker type, "Scanner".

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.initialLayout):
(WI.CPUTimelineView.prototype._graphPositionForMouseEvent):
(WI.CPUTimelineView.prototype._handleGraphMouseMove):

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView):
(WI.MemoryTimelineView.prototype._graphPositionForMouseEvent):
(WI.MemoryTimelineView.prototype._handleGraphMouseMove):
Update a scanner time when mousing over various graphs that span the entire time range.
These use the containing graph element because there was a single pixel between
adjacent graphs which would cause the scanner to flicker because the mouse event target
was not an svg element.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype.hidden):
(WI.TimelineOverview.prototype.updateScannerTime):
(WI.TimelineOverview.prototype.clearScanner):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerTimeDidChange):
(WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerDidClear):
Update the overview's ruler with scanner changes.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .markers > .marker.scanner):

  • UserInterface/Views/TimelineRuler.js:

(WI.TimelineRuler):
(WI.TimelineRuler.prototype.clearMarkers):
(WI.TimelineRuler.prototype.updateScannerTime):
(WI.TimelineRuler.prototype.clearScanner):
(WI.TimelineRuler.prototype._updateMarkers):
Have a special scanner marker that updates.

  • UserInterface/Views/TimelineView.js:

New events that a TimelineView can dispatch to update the overview.

  • UserInterface/Views/Variables.css:

(:root):
(@media (prefers-color-scheme: dark)):
Scanner marker colors.

10:44 PM Changeset in webkit [242193] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

The parser is failing to record the token location of new in new.target.
https://bugs.webkit.org/show_bug.cgi?id=195127
<rdar://problem/39645578>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/parser-should-record-token-location-of-new-dot-target.js: Added.

Source/JavaScriptCore:

Also adjust the token location for the following to be as shown:

new.target

super

import.meta

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):

10:25 PM Changeset in webkit [242192] by ysuzuki@apple.com
  • 15 edits
    2 adds in trunk

[JSC] mustHandleValues for dead bytecode locals should be ignored in DFG phases
https://bugs.webkit.org/show_bug.cgi?id=195144
<rdar://problem/47595961>

Reviewed by Mark Lam.

JSTests:

  • stress/read-dead-bytecode-locals-in-must-handle-values1.js: Added.

(bar):
(foo):

  • stress/read-dead-bytecode-locals-in-must-handle-values2.js: Added.

(bar):
(foo):

Source/JavaScriptCore:

DFGMaximalFlushInsertionPhase inserts Flush for all the locals at the end of basic blocks. This enlarges the live ranges of
locals in DFG, and it sometimes makes DFG value live while it is dead in bytecode. The issue happens when we use mustHandleValues
to widen AbstractValue in CFAPhase. At that time, DFG tells "this value is live in DFG", but it may be dead in the bytecode level.
At that time, we attempt to merge AbstractValue with dead mustHandleValue, which is cleared as jsUndefined() in
DFG::Plan::cleanMustHandleValuesIfNecessary before start compilation, and crash because jsUndefined() may be irrelevant to the FlushFormat
in VariableAccessData.

This patch makes the type of mustHandleValues Operands<Optional<JSValue>>. We clear dead JSValues in DFG::Plan::cleanMustHandleValuesIfNecessary.
And we skip handling dead mustHandleValue in DFG phases.

  • bytecode/Operands.h:

(JSC::Operands::isLocal const):
(JSC::Operands::isVariable const): Deleted.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::injectOSR):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:
  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::reconstruct):

  • dfg/DFGJITCode.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::mustHandleValues const):

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::disableHoistingAcrossOSREntries):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • jit/JITOperations.cpp:
9:27 PM Changeset in webkit [242191] by Simon Fraser
  • 3 edits in trunk/LayoutTests

fast/scrolling/ios/hit-testing-iframe-002.html always fails
https://bugs.webkit.org/show_bug.cgi?id=195108

Reviewed by Frédéric Wang.

Errant ; in this.style.background='green;'

  • fast/scrolling/ios/hit-testing-iframe-002.html:
  • platform/ios-wk2/TestExpectations:
8:39 PM Changeset in webkit [242190] by Alan Bujtas
  • 5 edits
    1 move
    1 delete in trunk/Source/WebCore

[ContentChangeObserver] Move WKSetObservedContentChange logic to ContentChangeObserver class.
https://bugs.webkit.org/show_bug.cgi?id=195128
<rdar://problem/48456752>

Reviewed by Simon Fraser.

Move the final bits over to ContentChangeObserver and delete WKContentObservationInternal.h.

  • WebCore.xcodeproj/project.pbxproj:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::setObservedContentChange):

  • platform/ios/wak/WKContentObservation.cpp:

(WKSetObservedContentChange):

  • platform/ios/wak/WKContentObservation.h:
  • platform/ios/wak/WKContentObservationInternal.h: Removed.
8:35 PM Changeset in webkit [242189] by Simon Fraser
  • 27 edits in trunk/Source

Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::nameForRegister):

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::lastModified const):

  • html/FTPDirectoryDocument.cpp:

(WebCore::processFileDateString):

  • mathml/MathMLElement.cpp:

(WebCore::convertToPercentageIfNeeded):
(WebCore::MathMLElement::collectStyleForPresentationAttribute):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw):

  • page/linux/ResourceUsageOverlayLinux.cpp:

(WebCore::cpuUsageString):
(WebCore::gcTimerString):

  • platform/DateComponents.cpp:

(WebCore::DateComponents::toStringForTime const):
(WebCore::DateComponents::toString const):

  • platform/LocalizedStrings.cpp:

(WebCore::localizedString):

  • platform/audio/HRTFElevation.cpp:

(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::logLayerInfo):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::formatMediaControlsTime const):

Source/WebKit:

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(timeToString):

Source/WTF:

  • wtf/Assertions.cpp:

(WTF::createWithFormatAndArguments): Deleted.

  • wtf/HexNumber.h:

(WTF::StringTypeAdapter<HexNumberBuffer>::toString const):

  • wtf/text/StringConcatenate.h:

(WTF::makeString):
(WTF::pad): Deleted.
(WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
(WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
(WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
(WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.

  • wtf/text/StringConcatenateNumbers.h:

(WTF::FormattedNumber::fixedPrecision):
(WTF::FormattedNumber::fixedWidth):
(WTF::StringTypeAdapter<FormattedNumber>::toString const):

  • wtf/text/StringOperators.h:

(WTF::StringAppend::StringAppend):

  • wtf/text/StringView.h:

(WTF::StringView::invalidate):

  • wtf/text/WTFString.cpp:

(WTF::createWithFormatAndArguments):
(WTF::String::format):

  • wtf/text/WTFString.h:
7:42 PM Changeset in webkit [242188] by youenn@apple.com
  • 2 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.ServiceWorkers.ServiceWorkerAndCacheStorageSpecificDirectories
https://bugs.webkit.org/show_bug.cgi?id=194959

Reviewed by Chris Dumez.

Spin loop until getting the condition to remove flakiness.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
6:37 PM Changeset in webkit [242187] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix -Wformat warning

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):

6:22 PM Changeset in webkit [242186] by aboya@igalia.com
  • 2 edits
    4 adds
    4 deletes in trunk/LayoutTests

Unreviewed GTK test gardening
https://bugs.webkit.org/show_bug.cgi?id=195138

  • platform/gtk/TestExpectations:
  • platform/gtk/compositing/visibility/root-visibility-toggle-expected.txt: Added.
  • platform/gtk/editing/deleting/smart-delete-001-expected.txt: Removed.
  • platform/gtk/editing/deleting/smart-delete-002-expected.txt: Removed.
  • platform/gtk/editing/deleting/smart-delete-003-expected.txt: Removed.
  • platform/gtk/editing/deleting/smart-delete-004-expected.txt: Removed.
  • platform/gtk/fast/css/apple-system-colors-expected.txt: Added.
  • platform/gtk/fast/text/ja-sans-serif-expected.png: Added.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
5:47 PM Changeset in webkit [242185] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Buildbot should include builder_display_name in the build events
https://bugs.webkit.org/show_bug.cgi?id=195045

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/ews-build/events.py:

(Events.buildStarted): Included builder_display_name in event data. Also renamed
buildername to builder_name to be consistent in naming style.
(Events.buildFinished): Ditto.

4:58 PM Changeset in webkit [242184] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[ContentChangeObserver] Move _WKObservingContentChanges from global to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195091
<rdar://problem/48427271>

Reviewed by Tim Horton.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::stopObservingContentChanges):
(WebCore::ContentChangeObserver::isObservingContentChanges):

  • platform/ios/wak/WKContentObservation.cpp:

(WKObservingContentChanges): Deleted.
(WKStartObservingContentChanges): Deleted.
(WKStopObservingContentChanges): Deleted.

  • platform/ios/wak/WKContentObservation.h:
  • platform/ios/wak/WKContentObservationInternal.h:
4:57 PM Changeset in webkit [242183] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION: Crash beneath ResourceLoadObserver::logSubresourceLoading
https://bugs.webkit.org/show_bug.cgi?id=195072

Reviewed by Ryosuke Niwa.

ResourceLoadObserver and WebProcess should exist as long as the web page (process) is running. However,
the NetworkProcess connection can close for a variety of reasons. If the ResourceLoadObserver observes
a load or user gesture in the WebProcess, we should attempt to reconnect to the NetworkProcess (if it
was disconnected), just like we do for other message send cases.

This patch switches from using the m_networkProcessConnection member (which might be null) to use the
'ensureNetworkProcessConnection' accessor which ensures we have a valid connection for message sends.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

4:54 PM Changeset in webkit [242182] by Chris Dumez
  • 15 edits in trunk

Flaky API Test: TestWebKitAPI.ProcessSwap.SessionStorage
https://bugs.webkit.org/show_bug.cgi?id=194480

Reviewed by Brady Eidson.

Source/WebKit:

The StorageManager would only start listening for IPC on a given connection when
StorageManager::processWillOpenConnection() is called. This gets called from
WebsiteDataStore::webProcessWillOpenConnection() which gets called from
WebProcessLifetimeTracker::webPageEnteringWebProcess().

webPageEnteringWebProcess() was called in WebPageProxy::finishAttachingToWebProcess()
after process-swapping. This means that IPC comming from the *provisional* process
would not get processed and we would only start processing IPC on the provisional
process's connection when it would get committed.

To address the issue, this patch teaches WebProcessLifetimeTracker that a page can
now have several processes. We also make sure that webPageEnteringWebProcess() gets
called for the provisional process as soon as we create the provisional page, instead
of waiting for it to get committed.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::connectionWillOpen):

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

(WebKit::WebPageProxy::finishAttachingToWebProcess):
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::webProcessWillShutDown):
(WebKit::WebPageProxy::processDidTerminate):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::webProcessLifetimeTracker):

  • UIProcess/WebProcessLifetimeObserver.cpp:

(WebKit::WebProcessLifetimeObserver::addWebPage):
(WebKit::WebProcessLifetimeObserver::removeWebPage):

  • UIProcess/WebProcessLifetimeObserver.h:
  • UIProcess/WebProcessLifetimeTracker.cpp:

(WebKit::WebProcessLifetimeTracker::addObserver):
(WebKit::WebProcessLifetimeTracker::webPageEnteringWebProcess):
(WebKit::WebProcessLifetimeTracker::webPageLeavingWebProcess):
(WebKit::WebProcessLifetimeTracker::pageWasInvalidated):
(WebKit::WebProcessLifetimeTracker::processIsRunning):

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

(WebKit::WebProcessProxy::connectionWillOpen):

  • UIProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::SessionStorageNamespace::allowedConnections const):
(WebKit::StorageManager::SessionStorageNamespace::addAllowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::removeAllowedConnection):
(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::SessionStorageNamespace::allowedConnection const): Deleted.
(WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection): Deleted.
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection): Deleted.

  • UIProcess/WebStorage/StorageManager.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::webPageWillOpenConnection):
(WebKit::WebsiteDataStore::webPageDidCloseConnection):

Tools:

Update existing API test to make it more likely to reproduce the issue.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:50 PM Changeset in webkit [242181] by beidson@apple.com
  • 6 edits in trunk

Universal links from Google search results pages don't open the app.
<rdar://problem/46887179> and https://bugs.webkit.org/show_bug.cgi?id=195126

Reviewed by Geoffrey Garen.

Source/WebCore:

Covered by new API tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::shouldOpenExternalURLsPolicyToPropagate const): Propagate the external URL policy from

an iframe if it is from the same security origin as the main frame.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ShouldOpenExternalURLsInNewWindowActions.mm:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):

4:47 PM Changeset in webkit [242180] by Chris Dumez
  • 2 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.ProcessSwap.NumberOfCachedProcesses
https://bugs.webkit.org/show_bug.cgi?id=195102

Reviewed by Geoffrey Garen.

If the number of processes is not yet what we expect, wait a bit and check again to give
processes some time to exit.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:43 PM Changeset in webkit [242179] by Chris Dumez
  • 2 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.ProcessSwap.NavigateToDataURLThenBack
https://bugs.webkit.org/show_bug.cgi?id=194545

Reviewed by Brady Eidson.

Make sure the test navigates forward and then back only once. Previously, navigating
back would trigger a navigation again in a timer.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:19 PM Changeset in webkit [242178] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.1.1

Tag Safari-607.1.40.1.1.

4:13 PM Changeset in webkit [242177] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.40.0.1

Tag Safari-607.1.40.0.1.

4:08 PM Changeset in webkit [242176] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[ContentChangeObserver] Move DOMTimer schedule handling from global to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195090
<rdar://problem/48426771>

Reviewed by Tim Horton.

Also remove some unused functions from WKContentObservationInternal.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingDOMTimerScheduling):
(WebCore::ContentChangeObserver::stopObservingDOMTimerScheduling):
(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling):

  • platform/ios/wak/WKContentObservation.cpp:

(WKStartObservingDOMTimerScheduling): Deleted.
(WKStopObservingDOMTimerScheduling): Deleted.
(WKIsObservingDOMTimerScheduling): Deleted.

  • platform/ios/wak/WKContentObservation.h:
  • platform/ios/wak/WKContentObservationInternal.h:
4:02 PM Changeset in webkit [242175] by Alan Coon
  • 12 edits in branches/safari-607.1.40.1-branch

Apply patch. rdar://problem/48429602

3:54 PM Changeset in webkit [242174] by Devin Rousso
  • 18 edits in trunk/Source/WebInspectorUI

Web Inspector: Use Element.closest for internal code
https://bugs.webkit.org/show_bug.cgi?id=173747

Reviewed by Joseph Pecoraro.

Replace usage of added utility functions on the Node prototype with the built-in
Element.prototype.closest as it's more flexible and is capable of doing the same thing.

  • UserInterface/Base/Utilities.js:

(Node.prototype.enclosingNodeOrSelfWithClass): Deleted.
(Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Deleted.
(Node.prototype.enclosingNodeOrSelfWithNodeName): Deleted.

  • UserInterface/Base/Main.js:

(WI.handlePossibleLinkClick):
(WI._focusedContentBrowser):

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype._graphPositionForMouseEvent):

  • UserInterface/Views/CompletionSuggestionsView.js:

(WI.CompletionSuggestionsView.prototype.set selectedIndex):
(WI.CompletionSuggestionsView.prototype.update):
(WI.CompletionSuggestionsView.prototype._itemClicked):

  • UserInterface/Views/ConsoleGroup.js:

(WI.ConsoleGroup.prototype._titleClicked):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype._mouseWasClicked):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._startEditingTarget):
(WI.DOMTreeElement.prototype._populateTagContextMenu):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.populateContextMenu):

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype._startEditing):
(WI.DataGrid.prototype._editingCancelled):
(WI.DataGrid.prototype.dataGridNodeFromNode):
(WI.DataGrid.prototype.dataGridNodeFromPoint):
(WI.DataGrid.prototype._headerCellClicked):
(WI.DataGrid.prototype._mouseoverColumnCollapser):
(WI.DataGrid.prototype._mouseoutColumnCollapser):
(WI.DataGrid.prototype._clickInColumnCollapser):
(WI.DataGrid.prototype._contextMenuInHeader):
(WI.DataGrid.prototype._contextMenuInDataTable):

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.isEventWithinDisclosureTriangle):

  • UserInterface/Views/LegacyTabBar.js:

(WI.LegacyTabBar.prototype._handleMouseDown):
(WI.LegacyTabBar.prototype._handleClick):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._handleContextMenuEvent):
(WI.LogContentView.prototype._mousedown):
(WI.LogContentView.prototype._targetInMessageCanBeSelected):
(WI.LogContentView.prototype._mousemove):
(WI.LogContentView.prototype._mouseup):
(WI.LogContentView.prototype._ondragstart):

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._mouseMoved):

  • UserInterface/Views/Popover.js:

(WI.Popover.prototype.handleEvent):

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleClick):

  • UserInterface/Views/Table.js:

(WI.Table.prototype._handleMouseDown):
(WI.Table.prototype._handleContextMenu):

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.treeElementFromNode):

3:54 PM Changeset in webkit [242173] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[iOS] Web pages shouldn't be able to present a keyboard after the web view resigns first responder
https://bugs.webkit.org/show_bug.cgi?id=195118
<rdar://problem/43411940>

Reviewed by Tim Horton.

Source/WebKit:

It's currently possible for websites to redirect focus into an editable element on the page by programmatically
requesting focus within the "blur" event handler. This is because our current heuristics:

(1) Allow programmatic focus to show the keyboard when an element is already focused; this is meant to handle

the case where the page moves focus between different elements on the page.

(2) And also allow programmatic focus to show the keyboard when changing activity state; this is meant to handle

the case where a focused element should show the keyboard when first responder is restored on a web view
(e.g. in the case where a modal view controller is dismissed, and the web view regains first responder once
again).

In both of these scenarios, we actually only want the keyboard to appear if the web view itself is either
becoming the first responder, or is already the first responder. Importantly, when blurring the focused element
by calling -[WKWebViewe resignFirstResponder] (as is the case when dismissing the keyboard by tapping 'Done' or
focusing other platform UI), we don't want to allow the page to show the keyboard due to element focus.

To fix this issue, we enforce that we're either becoming the first responder or already are the first responder
before showing the keyboard due to activity state change or focused element change.

Test: fast/events/ios/do-not-show-keyboard-when-focusing-after-blur.html

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

(-[WKContentView setupInteraction]):
(-[WKContentView textInputTraits]):

Quick drive-by tweak: rename _isBlurringFocusedNode to _isBlurringFocusedElement, to match the rest of the
terminology used in WebKit.

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

Make our heuristics for determining whether to show the keyboard a tiny bit easier to follow, by moving the
logic into a lambda function and using early returns. See above for more details.

(-[WKContentView _elementDidBlur]):
(-[WKContentView focusedFormControllerDidUpdateSuggestions:]):

LayoutTests:

Add a test to verify that after resigning first responder (e.g. tapping 'Done' on the keyboard, or focusing a
native input field elsewhere in the app), the page cannot force the keyboard to appear by focusing an input
field.

  • fast/events/ios/do-not-show-keyboard-when-focusing-after-blur-expected.txt: Added.
  • fast/events/ios/do-not-show-keyboard-when-focusing-after-blur.html: Added.
3:52 PM Changeset in webkit [242172] by Alan Coon
  • 4 edits in branches/safari-607.1.40.1-branch

Cherry-pick r242089. rdar://problem/48445620

WebPageProxy should nullify m_userMediaPermissionRequestManager after resetting the media state
https://bugs.webkit.org/show_bug.cgi?id=195028
<rdar://problem/48243733>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by API test.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetState):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

3:45 PM Changeset in webkit [242171] by Kocsen Chung
  • 3 edits in tags/Safari-607.1.39.0.1/Source/WebKit

Cherry-pick r242098. rdar://problem/48400927

[iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
https://bugs.webkit.org/show_bug.cgi?id=195037
<rdar://problem/48154508>

Reviewed by Antti Koivisto.

Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
as this has been an issue when I was able to reproduce the issue locally.

Also added release logging to help diagnose the issue in the future.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::freezeLayerTree): (WebKit::WebPage::unfreezeLayerTree): (WebKit::WebPage::didCompletePageTransition):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::freezeAllLayerTrees): (WebKit::WebProcess::unfreezeAllLayerTrees):

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

3:43 PM Changeset in webkit [242170] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.39.0.1/Source

Versioning.

3:31 PM Changeset in webkit [242169] by Alan Coon
  • 1 copy in tags/Safari-607.1.39.0.1

New tag.

3:30 PM Changeset in webkit [242168] by Alan Coon
  • 1 delete in tags/Safari-607.1.39.0

Delete tag.

3:29 PM Changeset in webkit [242167] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Move style recalc handling from global to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195087

Reviewed by Simon Fraser.

Add m_observingNextStyleRecalc/m_observingStyleRecalcScheduling to ContentChangeObserver and move the related code over from WK functions.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingStyleRecalcScheduling):
(WebCore::ContentChangeObserver::stopObservingStyleRecalcScheduling):
(WebCore::ContentChangeObserver::isObservingStyleRecalcScheduling):
(WebCore::ContentChangeObserver::setShouldObserveNextStyleRecalc):
(WebCore::ContentChangeObserver::shouldObserveNextStyleRecalc):
(WebCore::ContentChangeObserver::setObservedContentChange):

  • platform/ios/wak/WKContentObservation.cpp:

(WKSetObservedContentChange):
(WKStartObservingStyleRecalcScheduling): Deleted.
(WKStopObservingStyleRecalcScheduling): Deleted.
(WKIsObservingStyleRecalcScheduling): Deleted.
(WKSetShouldObserveNextStyleRecalc): Deleted.
(WKShouldObserveNextStyleRecalc): Deleted.

  • platform/ios/wak/WKContentObservation.h:
3:20 PM Changeset in webkit [242166] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Move DOM timer handling from global to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195070
<rdar://problem/48417650>

Reviewed by Tim Horton.

Add DOM timer list to ContentChangeObserver and move the related code over from WK functions.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingDOMTimerScheduling):
(WebCore::ContentChangeObserver::countOfObservedDOMTimers):
(WebCore::ContentChangeObserver::clearObservedDOMTimers):
(WebCore::ContentChangeObserver::setObservedContentChange):
(WebCore::ContentChangeObserver::containsObservedDOMTimer):
(WebCore::ContentChangeObserver::addObservedDOMTimer):
(WebCore::ContentChangeObserver::removeObservedDOMTimer):

  • platform/ios/wak/WKContentObservation.cpp:

(WKStartObservingDOMTimerScheduling):
(WKSetObservedContentChange):
(WebThreadGetObservedDOMTimers): Deleted.
(WebThreadCountOfObservedDOMTimers): Deleted.
(WebThreadClearObservedDOMTimers): Deleted.
(WebThreadContainsObservedDOMTimer): Deleted.
(WebThreadAddObservedDOMTimer): Deleted.
(WebThreadRemoveObservedDOMTimer): Deleted.

  • platform/ios/wak/WKContentObservation.h:
3:11 PM Changeset in webkit [242165] by Alan Coon
  • 7 edits in tags/Safari-607.1.39.0/Source

Versioning.

3:09 PM Changeset in webkit [242164] by Justin Fan
  • 8 edits in trunk/Source/WebCore

Fix build errors after Web GPU buffer updates changed some IDL fields from unsigned long to unsigned long long.

Unreviewed build fix.

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::setSubData):

  • Modules/webgpu/WebGPUBuffer.h:
  • Modules/webgpu/WebGPUBufferBinding.h:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • platform/graphics/gpu/GPUBufferBinding.h:
  • platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
  • platform/graphics/gpu/GPUVertexInputDescriptor.h:
2:59 PM Changeset in webkit [242163] by Adrian Perez de Castro
  • 14 edits in releases/WebKitGTK/webkit-2.24

Merged r242055 - [WPE] Bump WPEBackend-fdo requirement to API version 1.0
https://bugs.webkit.org/show_bug.cgi?id=195001

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindWPEBackend-fdo.cmake: Use WPEBackend-fdo-1.0.
  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebKit:

API version 1.0 always includes the functionality previously guarded with
WPE_BACKEND_CHECK_VERSION(): remove the guards and always use the new functions
unconditionally.

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::View::View): Remove usage of WPE_BACKEND_CHECK_VERSION().
(WKWPE::m_backend): Ditto.

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::WPEQtViewBackend): Use libWPEBackend-fdo-1.0 as
library name, remove call to wpe_fdo_initialize_for_egl_display().
(WPEQtViewBackend::create): Call wpe_fdo_initialize_for_egl_display()
here, to bail out early in case initialization fails.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Remove usage of
WPE_BACKEND_CHECK_VERSION().

Tools:

API version 1.0 always includes the functionality previously guarded with
WPE_BACKEND_CHECK_VERSION(): remove the guards and always use the new functions
unconditionally.

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebViewBackend): Remove usage of WPE_BACKEND_CHECK_VERSION().

  • TestWebKitAPI/glib/WebKitGLib/wpe/WebViewTestWPE.cpp:

(WebViewTest::showInWindow): Ditto.
(WebViewTest::hideView): Ditto.

  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend): Ditto.

  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::ViewBackend): Use libWPEBackend-fdo-1.0 as library name.

  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::WindowViewBackend): Remove usage of
WPE_BACKEND_CHECK_VERSION().

  • wpe/jhbuild.modules: Build a version WPEBackend-fdo with the updated API version.
2:57 PM Changeset in webkit [242162] by Alan Coon
  • 1 copy in tags/Safari-607.1.39.0

New tag.

2:24 PM Changeset in webkit [242161] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r242118): Debugger: event breakpoints have no icon
https://bugs.webkit.org/show_bug.cgi?id=195119

Reviewed by Matt Baker.

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):

1:51 PM Changeset in webkit [242160] by Alan Coon
  • 7 edits in branches/safari-607.1.40.2-branch/Source

Versioning.

1:49 PM Changeset in webkit [242159] by Alan Coon
  • 7 edits in branches/safari-607.1.40.1-branch/Source

Versioning.

1:46 PM Changeset in webkit [242158] by Alan Coon
  • 7 edits in branches/safari-607.1.40.0-branch/Source

Versioning.

1:42 PM Changeset in webkit [242157] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source

Versioning.

1:37 PM Changeset in webkit [242156] by Ryan Haddad
  • 8 edits in trunk/Tools

High Sierra Debug JSC test queue should use faster hardware
https://bugs.webkit.org/show_bug.cgi?id=194603

Rubber-stamped by Alexey Proskuryakov.

Adjust queues to free up faster hardware for use on the High Sierra Debug JSC queue.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • QueueStatusServer/config/queues.py:
  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(test_ews_name):

1:34 PM Changeset in webkit [242155] by wilander@apple.com
  • 41 edits in trunk

Adopt WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics and WebKit::NetworkProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=195071
<rdar://problem/48417690>

Reviewed by Alex Christensen and Brent Fulgham.

Source/WebCore:

No new tests. This patch maintains functionality covered by plenty of layout
tests under http/tests/resourceLoadStatistics/ and http/tests/storageAccess.

This patch adopts WebCore::RegistrableDomain in WebCore::ResourceLoadStatistics
and makes the necessary infrastructure changes to support that.

The previous HashCountedSets in WebCore::ResourceLoadStatistics are now just
HashSets since we never used the counts for anything. This change simplified
encoding and decoding for IPC and will eventually simplify encoding and
decoding in loader/ResourceLoadStatistics.cpp when we obsolete statistics
model version 14 and below.

The patch also makes WebCore::RegistrableDomain's String constructor private.
A new create function WebCore::RegistrableDomain::uncheckedCreateFromString()
is introduced to better signal to users that creating a registrable domain
object with a string may create an object that doesn't match a registrable
domain in a valid HTTP-family URL. This change (private String constructor)
motivated a change in WebCore::AdClickAttribution where the Source and
Destination structs now take a URL as parameter instead of a String.

Finally, this patch harmonizes parameter and variable naming, going from
"origin" to "domain" and "mainFrame" to "topFrame."

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAdClickAttribution const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaSessionTitle const):

  • loader/AdClickAttribution.h:

(WebCore::AdClickAttribution::Source::Source):
(WebCore::AdClickAttribution::Source::deletedValue):
(WebCore::AdClickAttribution::Destination::Destination):
(WebCore::AdClickAttribution::Destination::deletedValue):
(WebCore::AdClickAttribution::decode):

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::statisticsForURL):
(WebCore::ResourceLoadObserver::statisticsForOrigin): Deleted.

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::encodeHashSet):
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::decodeHashCountedSet):
(WebCore::decodeHashSet):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::appendHashSet):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):
(WebCore::encodeHashCountedSet): Deleted.
(WebCore::encodeOriginHashSet): Deleted.
(WebCore::decodeOriginHashSet): Deleted.
(WebCore::appendHashCountedSet): Deleted.

  • loader/ResourceLoadStatistics.h:
  • platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::uncheckedCreateFromString):
(WebCore::RegistrableDomain::RegistrableDomain):

  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForURL):
(WebCore::Internals::resourceLoadStatisticsForOrigin): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

This patch adopts WebCore::RegistrableDomain in WebKit::NetworkProcessProxy
and makes the necessary infrastructure changes to support that.

The previous HashCountedSets in WebCore::ResourceLoadStatistics are now just
HashSets since we never used the counts for anything. This change simplified
the IPC::ArgumentCoder<ResourceLoadStatistics> encode and decode functions.

The patch also makes WebCore::RegistrableDomain's String constructor private.
A new create function WebCore::RegistrableDomain::uncheckedCreateFromString()
is introduced to better signal to users that creating a registrable domain
object with a string may create an object that doesn't match a registrable
domain in a valid HTTP-family URL.

Finally, this patch harmonizes parameter and variable naming, going from
"origin" to "domain" and "mainFrame" to "topFrame."

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):
(WebKit::ResourceLoadStatisticsMemoryStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::grantStorageAccessInternal):
(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):
(WebKit::ResourceLoadStatisticsMemoryStore::logSubresourceLoading):
(WebKit::ResourceLoadStatisticsMemoryStore::logSubresourceRedirect):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubresourceUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsSubFrameUnder const):
(WebKit::ResourceLoadStatisticsMemoryStore::isRegisteredAsRedirectingTo const):
(WebKit::ResourceLoadStatisticsMemoryStore::setSubframeUnderTopFrameDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUnderTopFrameDomain):
(WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsMemoryStore::setTopFrameUniqueRedirectTo):
(WebKit::ResourceLoadStatisticsMemoryStore::setTopFrameUniqueRedirectFrom):
(WebKit::ResourceLoadStatisticsMemoryStore::createEncoderFromData const):
(WebKit::ResourceLoadStatisticsMemoryStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const):
(WebKit::ResourceLoadStatisticsMemoryStore::setSubframeUnderTopFrameOrigin): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::setSubresourceUnderTopFrameOrigin): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessGranted):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameDomain):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin): Deleted.
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp:

(WebKit::sortedPrevalentResourceTelemetry):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setSubframeUnderTopFrameDomain):
(WebKit::NetworkProcess::setSubresourceUnderTopFrameDomain):
(WebKit::filterForRegistrableDomains):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
(WebKit::NetworkProcess::setSubframeUnderTopFrameOrigin): Deleted.
(WebKit::NetworkProcess::setSubresourceUnderTopFrameOrigin): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomainsInAllPersistentDataStores):

  • NetworkProcess/NetworkSession.h:
  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:

(WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin):
(WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin):

  • UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm:

(WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcessProxy::isPrevalentResource):
(WebKit::NetworkProcessProxy::isVeryPrevalentResource):
(WebKit::NetworkProcessProxy::setPrevalentResource):
(WebKit::NetworkProcessProxy::setPrevalentResourceForDebugMode):
(WebKit::NetworkProcessProxy::setVeryPrevalentResource):
(WebKit::NetworkProcessProxy::setLastSeen):
(WebKit::NetworkProcessProxy::clearPrevalentResource):
(WebKit::NetworkProcessProxy::logUserInteraction):
(WebKit::NetworkProcessProxy::hasHadUserInteraction):
(WebKit::NetworkProcessProxy::clearUserInteraction):
(WebKit::NetworkProcessProxy::setSubframeUnderTopFrameDomain):
(WebKit::NetworkProcessProxy::isRegisteredAsRedirectingTo):
(WebKit::NetworkProcessProxy::isRegisteredAsSubFrameUnder):
(WebKit::NetworkProcessProxy::setSubresourceUnderTopFrameDomain):
(WebKit::NetworkProcessProxy::isRegisteredAsSubresourceUnder):
(WebKit::NetworkProcessProxy::setSubresourceUniqueRedirectTo):
(WebKit::NetworkProcessProxy::setSubresourceUniqueRedirectFrom):
(WebKit::NetworkProcessProxy::setTopFrameUniqueRedirectTo):
(WebKit::NetworkProcessProxy::setTopFrameUniqueRedirectFrom):
(WebKit::NetworkProcessProxy::isGrandfathered):
(WebKit::NetworkProcessProxy::setGrandfathered):
(WebKit::NetworkProcessProxy::hasStorageAccessForFrame):
(WebKit::NetworkProcessProxy::hasStorageAccess):
(WebKit::NetworkProcessProxy::requestStorageAccess):
(WebKit::NetworkProcessProxy::requestStorageAccessConfirm):
(WebKit::NetworkProcessProxy::grantStorageAccess):
(WebKit::NetworkProcessProxy::setSubframeUnderTopFrameOrigin): Deleted.
(WebKit::NetworkProcessProxy::setSubresourceUnderTopFrameOrigin): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestStorageAccessConfirm):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::isPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode):
(WebKit::WebsiteDataStore::isVeryPrevalentResource):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubFrameUnder):
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebsiteDataStore::isRegisteredAsRedirectingTo):
(WebKit::WebsiteDataStore::clearPrevalentResource):
(WebKit::WebsiteDataStore::setLastSeen):
(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::grantStorageAccess):
(WebKit::WebsiteDataStore::logUserInteraction):
(WebKit::WebsiteDataStore::hasHadUserInteraction):
(WebKit::WebsiteDataStore::clearUserInteraction):
(WebKit::WebsiteDataStore::setGrandfathered):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameOrigin): Deleted.
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameOrigin): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::hasStorageAccess):
(WebKit::WebPage::requestStorageAccess):

Tools:

  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp:

(TestWebKitAPI::createURL):

Convenience function.

(TestWebKitAPI::TEST):

WebCore::AdClickAttribution now takes a URL when creating Source and
Destination.

  • TestWebKitAPI/Tests/WebCore/RegistrableDomain.cpp:

(TestWebKitAPI::TEST):

WebCore::AdClickAttribution now takes a URL when creating Source and
Destination.

LayoutTests:

  • http/tests/navigation/resources/redirect-updates-history-item-done-statistics.html:

Changed from window.internals.resourceLoadStatisticsForOrigin() to
window.internals.resourceLoadStatisticsForURL() and now submit a URL.

1:29 PM Changeset in webkit [242154] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source

Versioning.

1:28 PM Changeset in webkit [242153] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Fix Xcode project UUIDs for TextCheckerCompletion.cpp and TextCheckerCompletion.h
https://bugs.webkit.org/show_bug.cgi?id=195109
<rdar://problem/48442272>

Reviewed by Alexey Proskuryakov.

In r144436, TextCheckerCompletion.cpp and TextCheckerCompletion.h were
added to WebKit2.xcodeproj with invalid UUIDs (they included Q's and
Z's in hexadecimal strings). While these UUIDs haven't caused any
problems in practice over the last six years, they are indeed invalid,
and were discovered via an Xcode-project processing tool that did not
anticipate their format. Fix this by removing the files from the
project and re-adding them.

  • WebKit.xcodeproj/project.pbxproj:
1:26 PM Changeset in webkit [242152] by Alan Coon
  • 1 copy in branches/safari-607.1.40.2-branch

New branch.

1:24 PM Changeset in webkit [242151] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: unreadable text in bezier curve editor numeric input fields
https://bugs.webkit.org/show_bug.cgi?id=195018
<rdar://problem/48378541>

Reviewed by Matt Baker.

Simplify some styles using -webkit-* properties instead of [dir=ltr]/[dir=rtl] selectors.

  • UserInterface/Views/BezierEditor.css:

(.bezier-editor):
(.bezier-editor > .bezier-preview):
(.bezier-editor > .bezier-preview-timing):
(.bezier-editor > .bezier-container .linear-curve):
(.bezier-editor > .bezier-container .bezier-curve):
(.bezier-editor > .bezier-container .control-line):
(.bezier-editor > .bezier-container .control-handle):
(.bezier-editor > .number-input-container):
(.bezier-editor > .number-input-container > input):
(body[dir=ltr] .bezier-editor > .bezier-preview-timing): Deleted.
(body[dir=rtl] .bezier-editor > .bezier-preview-timing): Deleted.
(body[dir=ltr] .bezier-editor > .number-input-container > input): Deleted.
(body[dir=rtl] .bezier-editor > .number-input-container > input): Deleted.
(@media (prefers-color-scheme: dark)): Deleted.
Remove all custom styling on any <input>s, as they look fine with their default styling.

  • UserInterface/Views/SpringEditor.css:

(.spring-editor > .spring-preview):
(.spring-editor > .spring-preview > div):
(.spring-editor > .spring-timing > div):

1:23 PM Changeset in webkit [242150] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source

Versioning.

1:14 PM Changeset in webkit [242149] by Alan Coon
  • 1 copy in branches/safari-607.1.40.1-branch

New branch.

1:10 PM Changeset in webkit [242148] by Justin Fan
  • 33 edits
    1 copy
    4 adds in trunk

[Web GPU] Buffer updates part 2: setSubData, GPU/CPU synchronization
https://bugs.webkit.org/show_bug.cgi?id=195077
<rdar://problem/47805229>

Reviewed by Dean Jackson.

Source/WebCore:

Implement GPUBuffer.setSubData and prevent the resolving of mapping promises if the buffer is scheduled to be
used on the GPU, and add handlers to resolve such promises after command buffer execution completes. In addition,
update buffer sizes to u64 (unsigned long in C++) as per the updated Web GPU API.

Tests: webgpu/buffer-command-buffer-races.html

webgpu/map-read-buffers.html

  • Modules/webgpu/WebGPUBindGroup.h:

(WebCore::WebGPUBindGroup::bindGroup const):

  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp:

(WebCore::WebGPUBindGroupDescriptor::asGPUBindGroupDescriptor const): Rename binding -> bufferBinding to reduce confusion.

  • Modules/webgpu/WebGPUBuffer.cpp: Small tweaks.

(WebCore::WebGPUBuffer::setSubData):
(WebCore::WebGPUBuffer::unmap): Correctly fail if buffer is destroyed.
(WebCore::WebGPUBuffer::destroy):
(WebCore::WebGPUBuffer::rejectOrRegisterPromiseCallback):

  • Modules/webgpu/WebGPUBuffer.h:

(WebCore::WebGPUBuffer::buffer const): Returned buffer is no longer const so that it can be used in completed handler callbacks.

  • Modules/webgpu/WebGPUBuffer.idl: Enable setSubData.
  • Modules/webgpu/WebGPUCommandBuffer.cpp:

(WebCore::WebGPUCommandBuffer::beginRenderPass):

  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:

(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const):

  • Modules/webgpu/WebGPUProgrammablePassEncoder.h:
  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::setVertexBuffers):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUBuffer.h:

(WebCore::GPUBuffer::isTransferDst const): Added various state and flag getters.
(WebCore::GPUBuffer::isVertex const):
(WebCore::GPUBuffer::isUniform const):
(WebCore::GPUBuffer::isStorage const):
(WebCore::GPUBuffer::isReadOnly const):
(WebCore::GPUBuffer::isMappable const):
(WebCore::GPUBuffer::isMapWrite const):
(WebCore::GPUBuffer::isMapRead const):
(WebCore::GPUBuffer::isMapWriteable const):
(WebCore::GPUBuffer::isMapReadable const):

  • platform/graphics/gpu/GPUBufferBinding.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:

(WebCore::GPUCommandBuffer::usedBuffers const):
(WebCore::GPUCommandBuffer::useBuffer):

  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBuffer): Pass Ref of itself for Buffer to request the Queue later, if needed.
(WebCore::GPUDevice::tryCreateBuffer const): Deleted.

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUProgrammablePassEncoder.cpp: Retain the encoder's commandBuffer to reference its used resource buffers.

(WebCore::GPUProgrammablePassEncoder::GPUProgrammablePassEncoder):

  • platform/graphics/gpu/GPUProgrammablePassEncoder.h:

(WebCore::GPUProgrammablePassEncoder::commandBuffer const):

  • platform/graphics/gpu/GPURenderPassEncoder.h:
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::validateBufferCreate): Move validation out of tryCreate.
(WebCore::GPUBuffer::tryCreate): Create both shared and private buffers, depending on usage.
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::~GPUBuffer): Call destroy instead of just unmap.
(WebCore::GPUBuffer::state const):
(WebCore::GPUBuffer::setSubData): Uses a cached collection of staging MTLBuffers to encode data copies to the implementation MTLBuffer.
(WebCore::GPUBuffer::commandBufferCommitted): Register on the GPUBuffer that the provided MTLCommandBuffer uses it, and is about to be committed.
(WebCore::GPUBuffer::commandBufferCompleted): MTLCommandBuffer's onCompletedHandler calls this.
(WebCore::GPUBuffer::reuseSubDataBuffer): SetSubData's blit command buffers call this to return a staging buffer to the pool.
(WebCore::GPUBuffer::registerMappingCallback):
(WebCore::GPUBuffer::runMappingCallback):
(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::destroy):
(WebCore::GPUBuffer::tryCreateSharedBuffer): Deleted.

  • platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:

(WebCore::GPUProgrammablePassEncoder::setResourceAsBufferOnEncoder):
(WebCore::GPUProgrammablePassEncoder::setBindGroup):

  • platform/graphics/gpu/cocoa/GPUQueueMetal.mm:

(WebCore::GPUQueue::submit): Ensure submitted buffers are in the correct state, and add completed handlers for synchronization.

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::tryCreate):
(WebCore::GPURenderPassEncoder::GPURenderPassEncoder): Retain the commandBuffer for later reference.
(WebCore::GPURenderPassEncoder::setVertexBuffers): Mark vertex buffers as used before submission.
(WebCore::GPURenderPassEncoder::create): Deleted.

Buffer size updates in the IDL:

  • Modules/webgpu/GPUBufferDescriptor.idl:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUBufferBinding.idl:
  • Modules/webgpu/WebGPUCommandBuffer.idl:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • Modules/webgpu/WebGPUVertexAttributeDescriptor.idl:
  • Modules/webgpu/WebGPUVertexInputDescriptor.idl:

LayoutTests:

Add tests for mapReadAysnc and setSubData calls. Nofity testRunner when done on some drawing tests
that may take more time.

  • webgpu/buffer-command-buffer-races-expected.html: Added.
  • webgpu/buffer-command-buffer-races.html: Added.
  • webgpu/buffer-resource-triangles.html: Use setSubData.
  • webgpu/depth-enabled-triangle-strip.html: Ditto.
  • webgpu/map-read-buffers-expected.txt: Added.
  • webgpu/map-read-buffers.html: Added.
  • webgpu/vertex-buffer-triangle-strip.html: Use setSubData.
1:05 PM Changeset in webkit [242147] by Alan Coon
  • 7 edits in branches/safari-607-branch/Source

Versioning.

12:59 PM Changeset in webkit [242146] by Alan Coon
  • 1 copy in branches/safari-607.1.40.0-branch

New branch.

12:14 PM Changeset in webkit [242145] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Remove LeetCode FetchRequest quirk
https://bugs.webkit.org/show_bug.cgi?id=195100

Reviewed by Alex Christensen.

Covered by manual testing.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::needsSignalQuirk):

12:13 PM Changeset in webkit [242144] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: popover colors don't change when transitioning to/from dark mode
https://bugs.webkit.org/show_bug.cgi?id=195113
<rdar://problem/48444188>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Popover.js:

(WI.Popover.prototype.dismiss):
(WI.Popover.prototype._addListenersIfNeeded):

12:11 PM Changeset in webkit [242143] by bshafiei@apple.com
  • 12 edits in branches/safari-607-branch

Apply patch. rdar://problem/48429676

11:53 AM Changeset in webkit [242142] by youenn@apple.com
  • 14 edits in trunk/Source/WebKit

Remove UserMediaProcessManager processState map
https://bugs.webkit.org/show_bug.cgi?id=195056

Reviewed by Eric Carlson.

Before the patch, the WebProcessProxy->ProcessState map was storing the list of manager proxies and process state.
To improve on this model, this patch does the following:

  • Move the process state to WebProcessProxy.
  • Remove the map and replace it by a set of all manager proxies.

This simplifies the handling.
On WebProcess side, instead of storing the sandbox extensions in each WebPage, we handle them in WebProcess directly.
This mirrors what is being done in UIProcess and reduces the risk of inconsistencies between the two, the risk being that capture would fail.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::forEach):
(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
(WebKit::UserMediaPermissionRequestManagerProxy::~UserMediaPermissionRequestManagerProxy):
(WebKit::UserMediaPermissionRequestManagerProxy::captureStateChanged):

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

(WebKit::UserMediaProcessManager::muteCaptureMediaStreamsExceptIn):
(WebKit::UserMediaProcessManager::willCreateMediaStream):
(WebKit::UserMediaProcessManager::endedCaptureSession):
(WebKit::UserMediaProcessManager::setCaptureEnabled):
(WebKit::UserMediaProcessManager::captureDevicesChanged):
(WebKit::ProcessState::ProcessState): Deleted.
(WebKit::ProcessState::hasVideoExtension const): Deleted.
(WebKit::ProcessState::grantVideoExtension): Deleted.
(WebKit::ProcessState::revokeVideoExtension): Deleted.
(WebKit::ProcessState::hasAudioExtension const): Deleted.
(WebKit::ProcessState::grantAudioExtension): Deleted.
(WebKit::ProcessState::revokeAudioExtension): Deleted.
(WebKit::stateMap): Deleted.
(WebKit::processState): Deleted.
(WebKit::ProcessState::addRequestManager): Deleted.
(WebKit::ProcessState::removeRequestManager): Deleted.
(WebKit::UserMediaProcessManager::addUserMediaPermissionRequestManagerProxy): Deleted.
(WebKit::UserMediaProcessManager::removeUserMediaPermissionRequestManagerProxy): Deleted.
(WebKit::UserMediaProcessManager::startedCaptureSession): Deleted.

  • UIProcess/UserMediaProcessManager.h:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::mediaCaptureSandboxExtensions const):
(WebKit::WebProcessProxy::hasVideoCaptureExtension const):
(WebKit::WebProcessProxy::grantVideoCaptureExtension):
(WebKit::WebProcessProxy::revokeVideoCaptureExtension):
(WebKit::WebProcessProxy::hasAudioCaptureExtension const):
(WebKit::WebProcessProxy::grantAudioCaptureExtension):
(WebKit::WebProcessProxy::revokeAudioCaptureExtension):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::~UserMediaPermissionRequestManager): Deleted.
(WebKit::UserMediaPermissionRequestManager::clear): Deleted.
(WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions): Deleted.
(WebKit::UserMediaPermissionRequestManager::revokeUserMediaDeviceSandboxExtensions): Deleted.

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

(WebKit::WebPage::close):
(WebKit::WebPage::grantUserMediaDeviceSandboxExtensions): Deleted.
(WebKit::WebPage::revokeUserMediaDeviceSandboxExtensions): Deleted.

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

(WebKit::WebProcess::grantUserMediaDeviceSandboxExtensions):
(WebKit::WebProcess::revokeUserMediaDeviceSandboxExtensions):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
11:47 AM Changeset in webkit [242141] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Disable permissive call logging in sandbox
https://bugs.webkit.org/show_bug.cgi?id=194061
<rdar://problem/47686253>

Reviewed by Brent Fulgham.

Strict call filtering should be reenabled.

  • WebProcess/com.apple.WebProcess.sb.in:
11:44 AM Changeset in webkit [242140] by Alan Coon
  • 3 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r242138. rdar://problem/48444136

Unable to log into chase.com on iPad when DeviceMotionEvent API is disabled
https://bugs.webkit.org/show_bug.cgi?id=195101
<rdar://problem/48423023>

Reviewed by Geoffrey Garen.

Add site-specific quirk for chase.com on iOS where we fire a dummy DeviceMotionEvent if the page
tries to register a "devicemotion" event listener and fails because the API is disabled. This is
needed to unblock the site and proceed with the login flow.

Unfortunately, document()->settings().needsSiteSpecificQuirks() is false on iOS so I could not
guard the quirk behind this flag.

  • page/DOMWindow.cpp: (WebCore::DOMWindow::addEventListener): (WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener):
  • page/DOMWindow.h:

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

11:15 AM Changeset in webkit [242139] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[HTTPSUpgrade] Use open source database until the feature is ready
https://bugs.webkit.org/show_bug.cgi?id=195069
<rdar://problem/47838224>

Reviewed by Geoffrey Garen.

  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
11:03 AM Changeset in webkit [242138] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unable to log into chase.com on iPad when DeviceMotionEvent API is disabled
https://bugs.webkit.org/show_bug.cgi?id=195101
<rdar://problem/48423023>

Reviewed by Geoffrey Garen.

Add site-specific quirk for chase.com on iOS where we fire a dummy DeviceMotionEvent if the page
tries to register a "devicemotion" event listener and fails because the API is disabled. This is
needed to unblock the site and proceed with the login flow.

Unfortunately, document()->settings().needsSiteSpecificQuirks() is false on iOS so I could not
guard the quirk behind this flag.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::failedToRegisterDeviceMotionEventListener):

  • page/DOMWindow.h:
11:02 AM Changeset in webkit [242137] by commit-queue@webkit.org
  • 30 edits
    11 adds in trunk

Support Pointer Events on macOS
https://bugs.webkit.org/show_bug.cgi?id=195008
<rdar://problem/47454419>

Patch by Antoine Quint <Antoine Quint> on 2019-02-27
Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

We now dispatch relevant pointer events as we prepare to dispatch mouse events. In most cases, this means we dispatch
a pointer event of the same type, with "mouse" being substituted by "pointer", and with the same properties with the
exception that if preventDefault() is called for a "pointerdown" event, the matching "mousedown" will not be dispatched,
and the same behavior also extends to "pointerup".

Tests: pointerevents/mouse/over-enter-out-leave.html

pointerevents/mouse/pointer-capture.html
pointerevents/mouse/pointer-event-basic-properties.html
pointerevents/mouse/pointer-events-before-mouse-events.html
pointerevents/mouse/pointerdown-prevent-default.html

  • Configurations/FeatureDefines.xcconfig:
  • dom/Document.cpp: All of the touch-action related members and functions should be iOS-specific since the touch-action

property does not have any effect on macOS.
(WebCore::Document::invalidateRenderingDependentRegions):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::updateTouchActionElements):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent): Dispatch a pointer event matching the mouse event that is about to be dispatched.
If preventDefault() is called in the event handler for either "pointerdown" or "pointerup", do not proceed with dispatching
the mouse event.

  • dom/PointerEvent.cpp:

(WebCore::pointerEventType):
(WebCore::PointerEvent::create):

  • dom/PointerEvent.h:
  • page/EventHandler.cpp: Check both the pointer and mouse events to see if we need to dispatch "enter" and "leave" events.

(WebCore::hierarchyHasCapturingEventListeners):
(WebCore::EventHandler::updateMouseEventTargetNode):

  • page/PointerCaptureController.cpp: Fix a build error which only happened on macOS.

(WebCore::PointerCaptureController::PointerCaptureController): Create the CapturingData for the unique mouse pointer.
(WebCore::PointerCaptureController::hasPointerCapture): The code did not match the spec cited in the comment, only the
pending target override needs to be considered to determine whether a given element has pointer capture enabled.
(WebCore::PointerCaptureController::dispatchEvent): Dispatch the provided pointer event, accounting for pointer capture if
it is set.

  • page/PointerLockController.cpp: Fix a build error which only happened on macOS.
  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement): Code related to touch-action is only relevant to iOS.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Add a WebKitLegacy API to enable and disable the Pointer Events runtime feature.

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences pointerEventsEnabled]):
(-[WebPreferences setPointerEventsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures): Enable the PointerEvents runtime feature in DumpRenderTree such that tests targeting WK1 may test the Pointer Events feature.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • platform/mac-wk1/TestExpectations: Mark select tests as failures due to webkit.org/b/195008.
  • platform/mac/TestExpectations: Enable the new mouse-based tests.
  • pointerevents/mouse/over-enter-out-leave-expected.txt: Added.
  • pointerevents/mouse/over-enter-out-leave.html: Added.
  • pointerevents/mouse/pointer-capture-expected.txt: Added.
  • pointerevents/mouse/pointer-capture.html: Added.
  • pointerevents/mouse/pointer-event-basic-properties-expected.txt: Added.
  • pointerevents/mouse/pointer-event-basic-properties.html: Added.
  • pointerevents/mouse/pointer-events-before-mouse-events-expected.txt: Added.
  • pointerevents/mouse/pointer-events-before-mouse-events.html: Added.
  • pointerevents/mouse/pointerdown-prevent-default-expected.txt: Added.
  • pointerevents/mouse/pointerdown-prevent-default.html: Added.
  • pointerevents/utils.js:

(prototype.clear):

10:55 AM Changeset in webkit [242136] by sihui_liu@apple.com
  • 11 edits in trunk/Source

Network Process is put to suspended when holding locked IndexedDB files
https://bugs.webkit.org/show_bug.cgi?id=195024
<rdar://problem/45194169>

Reviewed by Geoffrey Garen.

Source/WebCore:

We found network process was suspended when IDBDatabase was being closed in the background database thread,
holding locks to its database file. To avoid starvation or deadlock, we need to keep network process alive by
taking background assertion in UI process until the closes are done and locks are released.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::create):
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::closeDatabase):
(WebCore::IDBServer::IDBServer::didCloseDatabase):

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::create):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::notifyServerAboutClose):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::idbServer):
(WebKit::NetworkProcess::notifyHoldingLockedFiles):

  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setIsIDBDatabaseHoldingLockedFiles):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
10:49 AM Changeset in webkit [242135] by bshafiei@apple.com
  • 10 edits in branches/safari-607-branch/Source

Cherry-pick r242099. rdar://problem/48429675

[iOS] Regression(PSON) Scroll position is no longer restored when navigating back to reddit.com
https://bugs.webkit.org/show_bug.cgi?id=195054
<rdar://problem/48330549>

Reviewed by Geoff Garen.

Source/WebCore:

Add MaintainMemoryCache flag to indicate that the memory cache should not get purged.

  • page/MemoryRelease.cpp: (WebCore::releaseNoncriticalMemory): (WebCore::releaseCriticalMemory): (WebCore::releaseMemory):
  • page/MemoryRelease.h:

Source/WebKit:

We attempt to restore the scroll position twice, on first layout and then on load completion.
Before PSON, the scroll position would fail to get restored on first layout but would succeed
on load completion because the view is tall enough by then. With PSON however, we would
fail to restore the scroll position on load completion because the view would not be tall
enough yet by this point. The reason is that the dynamic resources would not be in the memory cache
and would then get reloaded abd finish loading *after* the load event.

To address the issue, we now make sure to not purge the memory cache on process suspension on
iOS if there is currently a SuspendedPageProxy in the UIProcess for this process.

  • UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::~SuspendedPageProxy):
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::incrementSuspendedPageCount): (WebKit::WebProcessProxy::decrementSuspendedPageCount):
  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::setHasSuspendedPageProxy):
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

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

10:49 AM Changeset in webkit [242134] by bshafiei@apple.com
  • 4 edits in branches/safari-607-branch

Cherry-pick r242089. rdar://problem/48429668

WebPageProxy should nullify m_userMediaPermissionRequestManager after resetting the media state
https://bugs.webkit.org/show_bug.cgi?id=195028
<rdar://problem/48243733>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by API test.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::resetState):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

10:49 AM Changeset in webkit [242133] by bshafiei@apple.com
  • 3 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r242098. rdar://problem/48429674

[iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
https://bugs.webkit.org/show_bug.cgi?id=195037
<rdar://problem/48154508>

Reviewed by Antti Koivisto.

Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
as this has been an issue when I was able to reproduce the issue locally.

Also added release logging to help diagnose the issue in the future.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::freezeLayerTree): (WebKit::WebPage::unfreezeLayerTree): (WebKit::WebPage::didCompletePageTransition):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::freezeAllLayerTrees): (WebKit::WebProcess::unfreezeAllLayerTrees):

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

10:47 AM Changeset in webkit [242132] by Simon Fraser
  • 53 edits in trunk

Have a single notion of scroll position in the scrolling tree and derive layoutViewport from it
https://bugs.webkit.org/show_bug.cgi?id=194973

Reviewed by Antti Koivisto.

This patch cleans up how the scrolling tree responds to scrolls.

First, ScrollingTreeScrollingNode::m_currentScrollPosition is "truth" for scrolling thread/
UI process scroll position.

On macOS where handleWheelEvent on the scrolling thread changes scroll position, the
bottleneck is ScrollingTreeScrollingNode::scrollTo() which sets the new scroll position,
update the visual viewport (for frame scrolls) updates the scrolledContentsLayer position,
updates related layers on this node (counter-scrolling layers etc), and then tells the
scrolling tree, which recurses through descendant nodes so they can adjust their layer
positions.

On iOS, the bottleneck is ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling(),
which does the above other than setting scrolledContentsLayer (since we're reacting to
layer state changes, not producing them).

updateLayersAfterAncestorChange() is renamed to relatedNodeScrollPositionDidChange(), and
ScrollingTree does the tree walk so classes don't have to implement
updateLayersAfterAncestorChange() just to talk children. The ScrollingTree tree walk knows
how to get the correct layoutViewport and to stop at frame boundaries (layer updates never
need to cross frame boundaries).

We preserve 'cumulativeDelta'; it's necessary for things like fixed inside overflow:scroll,
since the fixed state was computed with the "layout" scroll position, so we have to account
for the scroll delta since the last committed position. It's possible we could improve this
in future.

Source/WebCore:

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::mainFrameViewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::notifyRelatedNodesAfterScrollPositionChange):
(WebCore::ScrollingTree::notifyRelatedNodesRecursive):
(WebCore::ScrollingTree::mainFrameLayoutViewport):
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): Deleted.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeFrameHostingNode.cpp:

(WebCore::ScrollingTreeFrameHostingNode::updateLayersAfterAncestorChange): Deleted.

  • page/scrolling/ScrollingTreeFrameHostingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::updateViewportForCurrentScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNode::localToContentsPoint const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::relatedNodeScrollPositionDidChange):
(WebCore::ScrollingTreeNode::enclosingScrollingNodeIncludingSelf):

  • page/scrolling/ScrollingTreeNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::minimumScrollPosition const):
(WebCore::ScrollingTreeScrollingNode::scrollLimitReached const):
(WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const):
(WebCore::ScrollingTreeScrollingNode::scrollBy):
(WebCore::ScrollingTreeScrollingNode::scrollTo):
(WebCore::ScrollingTreeScrollingNode::currentScrollPositionChanged):
(WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
(WebCore::ScrollingTreeScrollingNode::localToContentsPoint const):
(WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange): Deleted.
(WebCore::ScrollingTreeScrollingNode::setScrollPosition): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNodeDelegate.h:

(WebCore::ScrollingTreeScrollingNodeDelegate::currentScrollPosition const):
(WebCore::ScrollingTreeScrollingNodeDelegate::scrollPosition const): Deleted.

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::relatedNodeScrollPositionDidChange):
(WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Deleted.

  • page/scrolling/cocoa/ScrollingTreeStickyNode.h:
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::relatedNodeScrollPositionDidChange):
(WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Deleted.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionRelatedLayers):
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange): Deleted.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:

(): Deleted.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::repositionScrollingLayers):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::~ScrollingTreeOverflowScrollingNodeMac): Deleted.
(WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterAncestorChange): Deleted.
(WebCore::ScrollingTreeOverflowScrollingNodeMac::scrollPosition const): Deleted.
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition): Deleted.
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition): Deleted.
(WebCore::ScrollingTreeOverflowScrollingNodeMac::updateLayersAfterDelegatedScroll): Deleted.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::isAlreadyPinnedInDirectionOfGesture):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::stretchAmount):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::pinnedInDirection):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollOffset const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollOnAxis):

Source/WebKit:

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::scrollingTreeNodeDidScroll):

  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::currentLayoutViewport const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionScrollingLayers):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::repositionRelatedLayers):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::scrollPosition const): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::setScrollPosition): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::setScrollLayerPosition): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateChildNodesAfterScroll): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterDelegatedScroll): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterViewportChange): Deleted.
(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::updateLayersAfterAncestorChange): Deleted.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::repositionScrollingLayers):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterAncestorChange): Deleted.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollPosition const): Deleted.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::setScrollLayerPosition): Deleted.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterDelegatedScroll): Deleted.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::ScrollingTreeScrollingNodeDelegateIOS):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollViewDidScroll):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateLayersAfterAncestorChange): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollPosition const): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::setScrollLayerPosition): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll): Deleted.
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollViewDidScroll const): Deleted.

  • UIProcess/RemoteLayerTree/mac/ScrollerPairMac.mm:

(WebKit::ScrollerPairMac::updateValues):
(WebKit::ScrollerPairMac::valuesForOrientation):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::repositionRelatedLayers):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::setScrollLayerPosition): Deleted.

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

10:05 AM Changeset in webkit [242131] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Silence log after r242122
https://bugs.webkit.org/show_bug.cgi?id=195074

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::databasePath const):
m_localStorageDirectory can now be null for ephemeral sessions.
This is not a failure to create a directory and needs no log.
This fixes the WKWebView.InitializingWebViewWithEphemeralStorageDoesNotLog API test.

9:33 AM Changeset in webkit [242130] by Simon Fraser
  • 9 edits in trunk/LayoutTests

scrolling/ios/hit-testing-iframe* tests need to hide the tap highlight
https://bugs.webkit.org/show_bug.cgi?id=195099

Reviewed by Frederic Wang.

These tests were failing because the ref test captured the tap highlight, so hide
it with -webkit-tap-highlight-color: transparent;

  • fast/scrolling/ios/hit-testing-iframe-001.html:
  • fast/scrolling/ios/hit-testing-iframe-002.html:
  • fast/scrolling/ios/hit-testing-iframe-003.html:
  • fast/scrolling/ios/hit-testing-iframe-004.html:
  • fast/scrolling/ios/hit-testing-iframe-005.html:
  • fast/scrolling/ios/hit-testing-iframe-006.html:
  • fast/scrolling/ios/mixing-user-and-programmatic-scroll-006.html:
  • platform/ios-wk2/TestExpectations: hit-testing-iframe-006.html passes now.
9:31 AM Changeset in webkit [242129] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[MSE] SourceBuffer sample time increment vs. last frame duration check is broken
https://bugs.webkit.org/show_bug.cgi?id=194747
<rdar://problem/48148469>

Patch by Ulrich Pflueger <up@nanocosmos.de> on 2019-02-27
Reviewed by Jer Noble.

Source/WebCore:

Prevent unintended frame drops by including last frame duration in discontinuity check.

Test: media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

LayoutTests:

  • media/media-source/media-source-append-variable-frame-lengths-with-matching-durations-expected.txt: Added.
  • media/media-source/media-source-append-variable-frame-lengths-with-matching-durations.html: Added.
8:59 AM Changeset in webkit [242128] by timothy@apple.com
  • 4 edits in trunk/Source

REGRESSION: WebKit content crash in Base System (because NSAppearance is NULL).
https://bugs.webkit.org/show_bug.cgi?id=195086
rdar://problem/48419124

Reviewed by Tim Horton.

Source/WebCore:

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.

Source/WebKit:

  • UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:

(-[WKScrollerImpDelegate effectiveAppearanceForScrollerImp:]): Always return a valid NSAppearance.

Feb 26, 2019:

11:50 PM Changeset in webkit [242127] by mark.lam@apple.com
  • 12 edits
    9 deletes in trunk

Remove remaining poisoning code.
https://bugs.webkit.org/show_bug.cgi?id=194138

Reviewed by Saam Barati.

Source/WTF:

This patch removes the instantiation of Poisoned variants of the various containers
but retains the ability of those containers to work with pointer traits. This
allows us to use them with smart pointers in the future (just like we used to with
Poisoned values). At minimum, this ability will be useful when we want to insert
an observer into the container storage type for debugging purposes, or to collect
statistics for profiling.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Bag.h:
  • wtf/CMakeLists.txt:
  • wtf/Platform.h:
  • wtf/Poisoned.cpp: Removed.
  • wtf/Poisoned.h: Removed.
  • wtf/PoisonedUniquePtr.h: Removed.
  • wtf/Ref.h:
  • wtf/RefCountedArray.h:
  • wtf/RefPtr.h:
  • wtf/WTFAssertions.cpp:

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/Poisoned.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedRef.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedRefPtr.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Removed.
  • TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Removed.
11:33 PM Changeset in webkit [242126] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

The table head of test freshness page should not scroll with the page.
https://bugs.webkit.org/show_bug.cgi?id=195092

Reviewed by Ryosuke Niwa.

Fix the location of the freshness table head to make it easier to corelate cell with test.

  • public/v3/pages/test-freshness-page.js: Changed some style rules to make the table head fixed.

(TestFreshnessPage.prototype._renderTable):
(TestFreshnessPage.cssTemplate):

11:21 PM Changeset in webkit [242125] by bshafiei@apple.com
  • 7 edits in branches/safari-607-branch/Source

Versioning.

9:46 PM Changeset in webkit [242124] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

[PSON] Add mechanism to clear suspended pages while bypassing the WebProcess cache
https://bugs.webkit.org/show_bug.cgi?id=195089

Reviewed by Geoffrey Garen.

Add a convenient mechanism to clear suspended pages while bypassing the WebProcess
cache since we need to do this on memory pressure and when clearing website data.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::addProcessIfPossible):
(WebKit::WebProcessCache::addProcess):
(WebKit::WebProcessCache::takeProcess):
(WebKit::WebProcessCache::CachedProcess::~CachedProcess):

  • UIProcess/WebProcessCache.h:

(WebKit::WebProcessCache::setIsDisabled): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::handleMemoryPressureWarning):
(WebKit::WebProcessPool::hasSuspendedPageFor const):
(WebKit::WebProcessPool::clearSuspendedPages):

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

(WebKit::WebProcessProxy::maybeShutDown):
(WebKit::WebProcessProxy::canTerminateAuxiliaryProcess):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::suspendedPageCount const):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::removeData):

9:43 PM Changeset in webkit [242123] by mark.lam@apple.com
  • 55 edits
    2 deletes in trunk/Source/JavaScriptCore

Remove poisons in JSCPoison and uses of them.
https://bugs.webkit.org/show_bug.cgi?id=195082

Reviewed by Yusuke Suzuki.

Also removed unused poisoning code in WriteBarrier, AssemblyHelpers,
DFG::SpeculativeJIT, FTLLowerDFGToB3, and FTL::Output.

  • API/JSAPIWrapperObject.h:

(JSC::JSAPIWrapperObject::wrappedObject):

  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:
  • API/glib/JSAPIWrapperGlobalObject.h:
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileGetExecutable):
(JSC::DFG::SpeculativeJIT::compileCreateThis):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::weakPoisonedPointer): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetExecutable):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::weakPointer):
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoison): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoisonOnLoadedType): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::dynamicPoisonOnType): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::weakPoisonedPointer): Deleted.

  • ftl/FTLOutput.h:

(JSC::FTL::Output::weakPoisonedPointer): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitDynamicPoison): Deleted.
(JSC::AssemblyHelpers::emitDynamicPoisonOnLoadedType): Deleted.
(JSC::AssemblyHelpers::emitDynamicPoisonOnType): Deleted.

  • jit/AssemblyHelpers.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_this):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • parser/UnlinkedSourceCode.h:
  • runtime/ArrayPrototype.h:
  • runtime/CustomGetterSetter.h:

(JSC::CustomGetterSetter::getter const):
(JSC::CustomGetterSetter::setter const):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):

  • runtime/InternalFunction.h:

(JSC::InternalFunction::nativeFunctionFor):

  • runtime/JSArrayBuffer.h:
  • runtime/JSBoundFunction.h:
  • runtime/JSCPoison.cpp: Removed.
  • runtime/JSCPoison.h: Removed.
  • runtime/JSFunction.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSString.h:
  • runtime/NativeExecutable.cpp:

(JSC::NativeExecutable::hashFor const):

  • runtime/NativeExecutable.h:
  • runtime/Options.h:
  • runtime/ScopedArguments.h:
  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::setSingleTransition):

  • runtime/StructureTransitionTable.h:

(JSC::StructureTransitionTable::map const):
(JSC::StructureTransitionTable::weakImpl const):
(JSC::StructureTransitionTable::setMap):

  • runtime/WriteBarrier.h:
  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmInstance.h:
  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

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

(JSC::JSWebAssemblyInstance::JSWebAssemblyInstance):
(JSC::JSWebAssemblyInstance::visitChildren):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::JSWebAssemblyTable):
(JSC::JSWebAssemblyTable::grow):
(JSC::JSWebAssemblyTable::clearFunction):

  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::materializeImportJSCell):
(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • wasm/js/WebAssemblyWrapperFunction.h:
8:40 PM Changeset in webkit [242122] by achristensen@apple.com
  • 11 edits in trunk

Move ephemeral local storage from WebProcess to UIProcess
https://bugs.webkit.org/show_bug.cgi?id=195074
<rdar://problem/47937975>

Reviewed by Geoff Garen.

Source/WebKit:

Before PSON, a page could navigate to another domain that navigates back and still have its local storage.
Since PSON makes it unreliable to retain the state in the WebProcess, move it to the process with the rest of the local storage.
If it's ephemeral, we obviously can't use the SQLite on-disk storage implementation, so use the same WebCore::StorageMap we used to in the WebProcess.

  • UIProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::StorageManager::StorageManager):
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::getValues):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::removeItem):
(WebKit::StorageManager::clear):

  • UIProcess/WebStorage/StorageManager.h:
  • UIProcess/WebStorage/StorageManager.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):

  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createEphemeralLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::copy):
(): Deleted.
(WebKit::StorageNamespaceImpl::ephemeralLocalStorageArea): Deleted.

  • WebProcess/WebStorage/StorageNamespaceImpl.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
8:19 PM Changeset in webkit [242121] by commit-queue@webkit.org
  • 2 edits in trunk

Incorrect formatting around command in Readme.md
https://bugs.webkit.org/show_bug.cgi?id=195061

Patch by Gabe Giosia <giosia@google.com> on 2019-02-26
Reviewed by Fujii Hironori.

  • ReadMe.md: removed stray period
7:48 PM Changeset in webkit [242120] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

REGRESSION: stress/regress-178386.js is timing out on JSC debug bot
https://bugs.webkit.org/show_bug.cgi?id=194677
<rdar://problem/48112492>

Reviewed by Mark Lam.

Before r241233, String.fromCharCode (except for an empty string) always returns 16bit string.
This makes the rope generated by padEnd 16bit. When we resolve the rope inside JSON.stringify,
it immediately fails due the large size.

After r241233, String.fromCharCode starts returning 8bit string if possible. So the rope becomes
8bit, and we successfully resolve the rope in this case. Resolving such a large rope takes long
time and that is why stress/regress-178386.js starts timing out. Note that, the test fails with
OOM error anyway because JSON.stringify's builder overflows with such a large string input.

This patch changes the test to produce 16bit string from String.fromCharCode.

  • stress/regress-178386.js:
5:33 PM Changeset in webkit [242119] by Alan Coon
  • 1 copy in tags/Safari-607.1.39

Tag Safari-607.1.39.

5:28 PM Changeset in webkit [242118] by Matt Baker
  • 25 edits
    1 add
    4 deletes in trunk/Source/WebInspectorUI

Web Inspector: Use system accent color throughout UI
https://bugs.webkit.org/show_bug.cgi?id=193507
<rdar://problem/47327971>

Reviewed by Timothy Hatcher.

  • UserInterface/Images/Breakpoint.png: Removed.
  • UserInterface/Images/Breakpoint.svg: Added.
  • UserInterface/Images/Breakpoint@2x.png: Removed.
  • UserInterface/Images/BreakpointInactive.png: Removed.
  • UserInterface/Images/BreakpointInactive@2x.png: Removed.

Replace breakpoint pixel art with an SVG image that can be styled in CSS.

  • UserInterface/Images/CSSVariable.svg:
  • UserInterface/Images/CubicBezier.svg:
  • UserInterface/Images/UserInputPrompt.svg:

Remove fill color since it is now styled in CSS.

  • UserInterface/Views/BezierEditor.css:

(.bezier-editor > .bezier-preview > div):
(@media (prefers-color-scheme: dark)):
(.bezier-editor > .bezier-container .control-handle):
(.bezier-editor > .bezier-container .control-line):
Use system accent color for control handles.

  • UserInterface/Views/BreakpointTreeElement.css:

(.item.breakpoint .status > .status-image):
(.item.breakpoint .status > .status-image.resolved):
Use system accent color for breakpoint fill, with a dark outline
to match Xcode and make the button stand out against the selection.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype._updateStatus):

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button > .glyph):

  • UserInterface/Views/ConsolePrompt.js:

(WI.ConsolePrompt):

  • UserInterface/Views/DOMBreakpointTreeElement.js:
  • UserInterface/Views/DOMTreeContentView.css:

(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled,):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled): Deleted.
(.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint): Deleted.
(.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint.disabled): Deleted.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom li.selected .selection-area):
(.tree-outline.dom li.elements-drag-over .selection-area):
(.tree-outline.dom:focus li:matches(.selected, .hovered) .selection-area):
(.tree-outline.dom li.hovered:not(.selected) .selection-area):
(.tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
Use the system accent color for the "pseudo-class enabled" marker.
(@media (prefers-color-scheme: dark)):
(.tree-outline.dom:focus li.selected .selection-area): Deleted.
Use --selected-background-color for selection and hover styles, which is
set to the system highlight color if available.

  • UserInterface/Views/InlineSwatch.css:

(.inline-swatch:matches(.bezier, .spring, .variable)):
(.inline-swatch:matches(.bezier, .spring)): Deleted.
(.inline-swatch.variable): Deleted.

  • UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch):

  • UserInterface/Views/NetworkDetailView.css:

(.network .network-detail .navigation-bar .item.radio.button.text-only:before):
(.network .network-detail .navigation-bar .item.radio.button.text-only.selected):
(@media (prefers-color-scheme: dark)):
(.network-detail .item.close > .glyph):

  • UserInterface/Views/QuickConsole.css:

(.quick-console > .console-prompt > .glyph):
(.quick-console > .console-prompt::before): Deleted.

  • UserInterface/Views/RadioButtonNavigationItem.css:

(.navigation-bar .item.radio.button.text-only):
(.navigation-bar .item.radio.button.text-only::before):
(.navigation-bar .item.radio.button.text-only:matches(.selected, :hover)):
(.navigation-bar .item.radio.button.text-only:matches(.selected, :hover)::before):
(.navigation-bar .item.radio.button.text-only:not(.selected):hover::before):
(.navigation-bar .item.radio.button.text-only.selected:active::before):
(.navigation-bar .item.radio.button.text-only:hover): Deleted.
(.navigation-bar .item.radio.button.text-only.selected): Deleted.
(.navigation-bar .item.radio.button.text-only:active): Deleted.
(.navigation-bar .item.radio.button.text-only.selected:active): Deleted.
Use system accent color for selection and hover styles. Since it isn't
yet possible to derive new colors from the accent color in CSS, fake it
with a ::before pseudo-element that can have have filter or opacity
effects applied to it without altering the button text color.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview-graph.rendering-frame > .frame-marker):
Use system accent color for selected frame marker.

  • UserInterface/Views/ScopeBar.css:

(.scope-bar > li):
(.scope-bar > li::before):
(.scope-bar.default-item-selected > li.multiple.selected::before):
(.scope-bar > li:matches(.selected, :hover)):
(.scope-bar > li:matches(.selected, :hover)::before):
(.scope-bar > li:not(.selected):hover::before):
(.scope-bar > li.selected:active::before):
(.scope-bar > li:hover): Deleted.
(.scope-bar > li.selected): Deleted.
(.scope-bar > li:active): Deleted.
(.scope-bar > li.selected:active): Deleted.

  • UserInterface/Views/SettingsTabContentView.css:

(.content-view.settings .navigation-bar .item.radio.button.text-only:before):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/TextEditor.css:

(.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .breakpoint-resolved .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .has-breakpoint.multiple-breakpoints .CodeMirror-linenumber::before):
(@keyframes text-editor-highlight-fadeout):
(@keyframes text-editor-hovered-expression-highlight-fadeout):
Replace breakpoint pixel art with a solid color (the system accent
color) clipped to the shape of a breakpoint.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame.selected):

  • UserInterface/Views/URLBreakpointTreeElement.js:
  • UserInterface/Views/Variables.css:

(:root):
(body.window-inactive):
(@media (prefers-color-scheme: dark)):
(body.mac-platform:not(.sierra, .high-sierra)):
Add custom property overrides for system colors where supported.

5:13 PM Changeset in webkit [242117] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Remove conditional compile guard for InsertIntoTextNodeCommand::doReapply
https://bugs.webkit.org/show_bug.cgi?id=195067
<rdar://problem/44812080>

Reviewed by Tim Horton.

Source/WebCore:

This iOS-specific override was introduced to fix <rdar://problem/7114425>, in which the last typed character
would be revealed when redoing text input on iOS inside a password field. The associated change fixed this bug
by overriding doReapply on iOS to only insert text (instead of additionally handling password echo); however, it
really makes sense to skip password echo when redoing on all platforms, so we can just remove the platform-
specific guards around this logic.

Doing this allows us to add the hasEditableStyle() check on iOS when redoing text insertion, which results in
a very subtle behavior change covered by the new layout test below.

Test: editing/undo/redo-text-insertion-in-non-editable-node.html

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doReapply):

  • editing/InsertIntoTextNodeCommand.h:

LayoutTests:

Add a new layout test to verify that redoing text insertion in a non-editable element (which was previously
editable) does not mutate the text nodes affected by editing. This test case currently fails on iOS, since we
take a separate codepath when redoing that does not contain this additional check.

  • editing/undo/redo-text-insertion-in-non-editable-node-expected.txt: Added.
  • editing/undo/redo-text-insertion-in-non-editable-node.html: Added.
4:59 PM Changeset in webkit [242116] by keith_miller@apple.com
  • 4 edits in trunk/Source

Code quality cleanup in NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=194824

Source/WebCore:

Reviewed by Mark Lam.

name_names.pl should not just assume the layout of LazyNeverDestroyed.

  • dom/make_names.pl:

(printNamesCppFile):

Source/WTF:

Reviewed by Yusuke Suzuki.

First, move data members to the end of the class per WebKit
style. Also, add forbid heap allocation since we expect the
NeverDestroyed classes to be static.

  • wtf/NeverDestroyed.h:
4:36 PM Changeset in webkit [242115] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Do not try to observe the timer when Page is nullptr
https://bugs.webkit.org/show_bug.cgi?id=195076

Reviewed by Tim Horton.

Covered by fast/dom/Window/timer-null-script-execution-context.html.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):

4:25 PM Changeset in webkit [242114] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

wasmToJS() should purify incoming NaNs.
https://bugs.webkit.org/show_bug.cgi?id=194807
<rdar://problem/48189132>

Reviewed by Saam Barati.

JSTests:

  • wasm/regress/wasmToJS-should-purify-NaNs.js: Added.

Source/JavaScriptCore:

  • runtime/JSCJSValue.h:

(JSC::jsNumber):

  • runtime/TypedArrayAdaptors.h:

(JSC::IntegralTypedArrayAdaptor::toJSValue):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

4:04 PM Changeset in webkit [242113] by jer.noble@apple.com
  • 20 edits
    1 add in trunk

[Cocoa] Media elements will restart network buffering just before suspending
https://bugs.webkit.org/show_bug.cgi?id=193691

Reviewed by Eric Carlson.

Source/WebCore:

API Test: WebKit.ProcessSuspendMediaBuffering

Allow the Page to suspend all media buffering in its child Documents.

  • dom/Document.cpp:

(WebCore::Document::suspendAllMediaBuffering):
(WebCore::Document::resumeAllMediaBuffering):

  • dom/Document.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::dataBufferingPermitted const):
(WebCore::MediaElementSession::suspendBuffering):
(WebCore::MediaElementSession::resumeBuffering):
(WebCore::MediaElementSession::bufferingSuspended const):

  • html/MediaElementSession.h:
  • page/Page.cpp:

(WebCore::Page::suspendAllMediaBuffering):
(WebCore::Page::resumeAllMediaBuffering):

  • page/Page.h:

(WebCore::Page::mediaPlaybackIsSuspended const):
(WebCore::Page::mediaBufferingIsSuspended const):
(WebCore::Page::mediaPlaybackIsSuspended): Deleted.

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::suspendBuffering):
(WebCore::PlatformMediaSession::resumeBuffering):

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::suspendAllMediaBufferingForDocument):
(WebCore::PlatformMediaSessionManager::resumeAllMediaBufferingForDocument):

  • platform/audio/PlatformMediaSessionManager.h:

Source/WebKit:

When the WebProcess receives a notification that the process is about to become
suspended, it tells the MemoryPressureHandler to release all critical memory. This
has the side effect of causing AVFoundation-backed media elements to dump their
in-memory caches and start downloading media data again. Instead, media elements
should all stop buffering media data during suspension. Add new testing SPI to
simulate suspension and resume messages.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processWillSuspendImminentlyForTesting]):
(-[WKWebView _processDidResumeForTesting]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/ios/WKInkPickerView.mm:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::suspendAllMediaBuffering):
(WebKit::WebPage::resumeAllMediaBuffering):

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

(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::processDidResume):
(WebKit::WebProcess::suspendAllMediaBuffering):
(WebKit::WebProcess::resumeAllMediaBuffering):

  • WebProcess/WebProcess.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspendMediaBuffering.mm: Added.

(TEST):

3:53 PM Changeset in webkit [242112] by youenn@apple.com
  • 10 edits in trunk

Move service worker response validation from the service worker client to the service worker itself
https://bugs.webkit.org/show_bug.cgi?id=194716

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebased tests as we now report to the console log any service worker response validation erorr.

  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-image.https-expected.txt:

Source/WebCore:

Added response validation at service worker side.

No change of behavior except for now logging validation error messages in the console.
Covered by rebased tests.

  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::validateResponse):
(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

Source/WebKit:

Removed response validation as it is now done in service worker side.

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::didReceiveRedirectResponse):
(WebKit::ServiceWorkerClientFetch::didReceiveResponse):

LayoutTests:

Rebased tests as we now report to the console log any service worker response validation erorr.

  • http/tests/inspector/network/resource-response-service-worker-expected.txt:
  • http/tests/workers/service/basic-fetch.https-expected.txt:
  • http/tests/workers/service/service-worker-crossorigin-fetch-expected.txt:
3:45 PM Changeset in webkit [242111] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.7

Tag Safari-608.1.7.

3:38 PM Changeset in webkit [242110] by sihui_liu@apple.com
  • 6 edits in trunk/Source/WebCore

[Mac WK2] storage/indexeddb/IDBObject-leak.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=195036

Reviewed by Geoffrey Garen.

When connection to IDBServer is lost, IDBDatabase in web process should not only stop active transactions, but
also transactions in committing process.

Also, TransactionOpration should clear its perform function when the operation is being completed, otherwise
there is a reference cycle of TransactionOpration.

Covered by existing tests storage/indexeddb/IDBObject-leak.html.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost): notify committing transasctions that connection is lost.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::connectionClosedFromServer): notify IDBConnectionProxy that transaction ends.

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::forgetTransaction): clear finished transactions.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::doComplete): clear perform function unconditionally when the
operation is in completion process.

2:40 PM Changeset in webkit [242109] by dinfuehr@igalia.com
  • 9 edits in trunk

Fix warnings on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=195049

Reviewed by Mark Lam.

.:

Disable warnings for changes to the ABI with GCC 7.1.

  • Source/cmake/WebKitCompilerFlags.cmake:

Source/JavaScriptCore:

Fix all warnings on ARM and MIPS.

  • assembler/MacroAssemblerPrinter.cpp:

(JSC::Printer::printMemory):

  • assembler/testmasm.cpp:

(JSC::testProbeModifiesStackValues):

  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::computeFor):

  • runtime/CachedTypes.cpp:

(JSC::VariableLengthObject::buffer const):

  • runtime/JSBigInt.h:
  • tools/JSDollarVM.cpp:

(JSC::codeBlockFromArg):

2:31 PM Changeset in webkit [242108] by Alan Bujtas
  • 13 edits in trunk/Source

[ContentChangeObserver] clearContentChangeObservers should be internal to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195066
<rdar://problem/48411682>

Reviewed by Tim Horton.

Source/WebCore:

Now all the empty clearContentChangeObservers() implementations can be removed.

  • dom/Document.cpp:

(WebCore::Document::platformSuspendOrStopActiveDOMObjects):

  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • page/Frame.cpp:

(WebCore::Frame::willDetachPage):

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::clearTimersAndReportContentChange):
(WebCore::ContentChangeObserver::didSuspendActiveDOMObjects): Might need to merge them.
(WebCore::ContentChangeObserver::willDetachPage):

Source/WebKit:

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::clearContentChangeObservers): Deleted.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::clearContentChangeObservers): Deleted.

2:14 PM Changeset in webkit [242107] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Sandbox should allow mach lookups related to media capturing
https://bugs.webkit.org/show_bug.cgi?id=194951

Reviewed by Eric Carlson.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:08 PM Changeset in webkit [242106] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update NetworkSession to use Session Cleanup when available
https://bugs.webkit.org/show_bug.cgi?id=195019
<rdar://problem/45149868>

Reviewed by Alex Christensen.

If the build environment supports Session Cleanup, initialize it.

No test changes since this doesn't do anything on the test systems at present.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

1:50 PM Changeset in webkit [242105] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Search: no results when opening to Search tab
https://bugs.webkit.org/show_bug.cgi?id=195058
<rdar://problem/48407699>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch):
If targets aren't available, wait until they are and then perform the search.

  • UserInterface/Base/Main.js:

(WI.targetsAvailable): Added.
Expose getter for indicating whether targets are available.

1:40 PM Changeset in webkit [242104] by Joseph Pecoraro
  • 8 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage Timeline - Main Thread Indicator
https://bugs.webkit.org/show_bug.cgi?id=194972

Reviewed by Devin Rousso.

  • UserInterface/Main.html:
  • UserInterface/Base/Utilities.js:

(value):
The existing enclosingNode doesn't work for SVG because its names
are lowercase. Add a simplified version for the svg case.

  • UserInterface/Views/RangeChart.js: Added.

(WI.RangeChart):
(WI.RangeChart.prototype.get size):
(WI.RangeChart.prototype.set size):
(WI.RangeChart.prototype.addRange):
(WI.RangeChart.prototype.clear):
(WI.RangeChart.prototype.layout):
A new chart that draws rects for given ranges.

  • UserInterface/Models/Timeline.js:

(WI.Timeline.prototype.recordsOverlappingTimeRange):
Helper to specifically get records touching a range. Useful
for when we have a single pixel spanning (startTime -> endTime)
and we want to find records in that pixel.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart rect):
(.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-script):
(.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-style):
(.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-layout):
(.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-paint):

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.get indicatorViewHeight):
(WI.CPUTimelineView.prototype.clear):
(WI.CPUTimelineView.prototype.get scrollableElements):
(WI.CPUTimelineView.prototype.initialLayout):
(WI.CPUTimelineView.prototype.layout):
(WI.CPUTimelineView.prototype._graphPositionForMouseEvent):
(WI.CPUTimelineView.prototype._handleIndicatorClick):
(WI.CPUTimelineView.prototype._attemptSelectIndicatatorTimelineRecord):
(WI.CPUTimelineView.prototype._selectTimelineRecord):
Place the Main Thread Indicator view beneath the big graph.
Clicking inside it selects records in the Timeline Overview.

  • UserInterface/Views/CPUUsageIndicatorView.css: Added.

(.cpu-usage-indicator-view):
(.cpu-usage-indicator-view > .details):
(body[dir=ltr] .cpu-usage-indicator-view > .details):
(body[dir=rtl] .cpu-usage-indicator-view > .details):
(body[dir=rtl] .cpu-usage-indicator-view > .graph):
(.cpu-usage-indicator-view > .graph):
(.cpu-usage-indicator-view > .graph,):

  • UserInterface/Views/CPUUsageIndicatorView.js: Added.

(WI.CPUUsageIndicatorView):
(WI.CPUUsageIndicatorView.prototype.get chart):
(WI.CPUUsageIndicatorView.prototype.clear):
(WI.CPUUsageIndicatorView.prototype.updateChart):
Converts the CPU samples data into a RangeChart. It works to coalesce
many samples of the same type into a single range to reduce total ranges.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._recordSelected):
(WI.TimelineRecordingContentView.prototype._recordWasSelected):
(WI.TimelineRecordingContentView.prototype._selectRecordInTimelineOverview):
(WI.TimelineRecordingContentView.prototype._selectRecordInTimelineView):

  • UserInterface/Views/TimelineView.js:

Add a path for a TimelineView to dispatch a record selected event and cause
have the TimelineRecordingContentView react to it by updating the timeline
overview and relevent timeline view.

1:40 PM Changeset in webkit [242103] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Misc cleanup in StructureIDTable after r242096.
https://bugs.webkit.org/show_bug.cgi?id=195063

Reviewed by Saam Barati.

  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::allocateID):

  • RELEASE_ASSERT that the StructureID allocation will succeed.
  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::decode):
(JSC::StructureIDTable::encode):

  • Add back a comment that Yusuke requested but was lost when the patch was rolled out and relanded.
  • Applied bitwise_casts that Saam requested.
1:01 PM Changeset in webkit [242102] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[ContentChangeObserver] Move style recalc schedule observation logic to ContentChangeObserver
https://bugs.webkit.org/show_bug.cgi?id=195062
<rdar://problem/48409258>

Reviewed by Tim Horton.

Also rename registerDOMTimerForContentObservationIfNeeded to be consistent with the did* naming style.

  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::didInstallDOMTimer):
(WebCore::ContentChangeObserver::didScheduleStyleRecalc):
(WebCore::ContentChangeObserver::registerDOMTimerForContentObservationIfNeeded): Deleted.

12:54 PM Changeset in webkit [242101] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: 32-bit build fix after r242096.
https://bugs.webkit.org/show_bug.cgi?id=194989

Not reviewed.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

12:49 PM Changeset in webkit [242100] by mark.lam@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

Unpoison MacroAssemblerCodePtr, ClassInfo pointers, and a few other things.
https://bugs.webkit.org/show_bug.cgi?id=195039

Reviewed by Saam Barati.

  1. Unpoison MacroAssemblerCodePtrs, ReturnAddressPtr.
  2. Replace PoisonedClassInfoPtr with ClassInfo*.
  3. Replace PoisonedMasmPtr with const void*.
  4. Remove all references to CodeBlockPoison, JITCodePoison, and GlobalDataPoison.
  • API/JSCallbackObject.h:
  • API/JSObjectRef.cpp:

(classInfoPrivate):

  • assembler/MacroAssemblerCodeRef.h:

(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::executableAddress const):
(JSC::FunctionPtr::retaggedExecutableAddress const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::ReturnAddressPtr::value const):
(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):
(JSC::MacroAssemblerCodePtr:: const):
(JSC::MacroAssemblerCodePtr::operator! const):
(JSC::MacroAssemblerCodePtr::operator== const):
(JSC::MacroAssemblerCodePtr::hash const):
(JSC::MacroAssemblerCodePtr::emptyValue):
(JSC::MacroAssemblerCodePtr::deletedValue):
(JSC::FunctionPtr<tag>::FunctionPtr):
(JSC::MacroAssemblerCodePtr::poisonedPtr const): Deleted.

  • b3/B3LowerMacros.cpp:
  • b3/testb3.cpp:

(JSC::B3::testInterpreter):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileNewStringObject):
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump):
(JSC::DFG::SpeculativeJIT::emitSwitchChar):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateDestructibleObject):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • runtime/JSCPoison.h:
  • runtime/JSDestructibleObject.h:

(JSC::JSDestructibleObject::classInfo const):

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::classInfo const):

  • runtime/Structure.h:
  • runtime/VM.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

12:34 PM Changeset in webkit [242099] by Chris Dumez
  • 10 edits in trunk/Source

[iOS] Regression(PSON) Scroll position is no longer restored when navigating back to reddit.com
https://bugs.webkit.org/show_bug.cgi?id=195054
<rdar://problem/48330549>

Reviewed by Geoff Garen.

Source/WebCore:

Add MaintainMemoryCache flag to indicate that the memory cache should not get purged.

  • page/MemoryRelease.cpp:

(WebCore::releaseNoncriticalMemory):
(WebCore::releaseCriticalMemory):
(WebCore::releaseMemory):

  • page/MemoryRelease.h:

Source/WebKit:

We attempt to restore the scroll position twice, on first layout and then on load completion.
Before PSON, the scroll position would fail to get restored on first layout but would succeed
on load completion because the view is tall enough by then. With PSON however, we would
fail to restore the scroll position on load completion because the view would not be tall
enough yet by this point. The reason is that the dynamic resources would not be in the memory cache
and would then get reloaded abd finish loading *after* the load event.

To address the issue, we now make sure to not purge the memory cache on process suspension on
iOS if there is currently a SuspendedPageProxy in the UIProcess for this process.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::incrementSuspendedPageCount):
(WebKit::WebProcessProxy::decrementSuspendedPageCount):

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

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setHasSuspendedPageProxy):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
12:24 PM Changeset in webkit [242098] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebKit

[iOS] REGRESSION(r238490?): Safari sometimes shows blank page until a cross site navigation or re-opening the tab
https://bugs.webkit.org/show_bug.cgi?id=195037
<rdar://problem/48154508>

Reviewed by Antti Koivisto.

Restore the pre-r238490 behavior of WebPage::didCompletePageTransition clearing LayerTreeFreezeReason::ProcessSuspended
as this has been an issue when I was able to reproduce the issue locally.

Also added release logging to help diagnose the issue in the future.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::freezeLayerTree):
(WebKit::WebPage::unfreezeLayerTree):
(WebKit::WebPage::didCompletePageTransition):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::freezeAllLayerTrees):
(WebKit::WebProcess::unfreezeAllLayerTrees):

11:47 AM Changeset in webkit [242097] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Create WebPageProxy::m_userMediaPermissionRequestManager only when needed
https://bugs.webkit.org/show_bug.cgi?id=195051

Reviewed by Eric Carlson.

Before the patch, WebPageProxy::m_userMediaPermissionRequestManager was created
in some methods to reset its state when main document is changing, view is becoming visible...
This code is unnecessary if the page did not create it already using JS APIs such as getUserMedia/enumerateDevices/ondevicechange.
This patch skips processing in the other cases if WebPageProxy::m_userMediaPermissionRequestManager is null.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close): No need to nullify it since it will be done in resetState shortly after.
(WebKit::WebPageProxy::didChangeMainDocument):
(WebKit::WebPageProxy::viewIsBecomingVisible):
(WebKit::WebPageProxy::clearUserMediaState):
(WebKit::WebPageProxy::updatePlayingMediaDidChange): m_userMediaPermissionRequestManager should not be null here
since there is or was some capturing done for the page.

11:41 AM Changeset in webkit [242096] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[Re-landing] Add some randomness into the StructureID.
https://bugs.webkit.org/show_bug.cgi?id=194989
<rdar://problem/47975563>

Reviewed by Yusuke Suzuki.

  1. On 64-bit, the StructureID will now be encoded as:

----------------------------------------------------------------
| 1 Nuke Bit | 24 StructureIDTable index bits | 7 entropy bits |
----------------------------------------------------------------

The entropy bits are chosen at random and assigned when a StructureID is
allocated.

  1. Instead of Structure pointers, the StructureIDTable will now contain encodedStructureBits, which is encoded as such:

----------------------------------------------------------------
| 7 entropy bits | 57 structure pointer bits |
----------------------------------------------------------------

The entropy bits here are the same 7 bits used in the encoding of the
StructureID for this structure entry in the StructureIDTable.

  1. Retrieval of the structure pointer given a StructureID is now computed as follows:

index = structureID >> 7; with arithmetic shift.
encodedStructureBits = structureIDTable[index];
structure = encodedStructureBits (structureID << 57);

We use an arithmetic shift for the right shift because that will preserve
the nuke bit in the high bit of the index if the StructureID was not
decontaminated before use as expected.

  1. Remove unused function loadArgumentWithSpecificClass() in SpecializedThunkJIT.
  1. Define StructureIDTable::m_size to be the number of allocated StructureIDs instead of always being the same as m_capacity.
  1. Change StructureIDTable::s_unusedID's value to 0.

Its previous value of unusedPointer i.e. 0xd1e7beef, does not make sense for
StructureID on 64-bit. Also, there was never any code that initializes unused
IDs to the s_unusedID. The only meaningful value for s_unusedID is 0, which
is the ID we'll get when the freelist is empty, prompting a resize of the
structureIDTable.

This patch appears to be perf neutral on JetStream 2 run via the cli on a
11" MacBook Air, 13" MacBook Pro, iPhone 6S, and iPhone XR.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::loadStructure):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::appendJSCellOrAuxiliary):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

  • jit/AssemblyHelpers.h:
  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass): Deleted.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::makeFreeListFromRange):
(JSC::StructureIDTable::resize):
(JSC::StructureIDTable::allocateID):
(JSC::StructureIDTable::deallocateID):

  • runtime/StructureIDTable.h:

(JSC::StructureIDTable::decode):
(JSC::StructureIDTable::encode):
(JSC::StructureIDTable::get):
(JSC::StructureIDTable::isValid):

11:23 AM Changeset in webkit [242095] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

made the QuickLook.LegacyQuickLookContent API test flakey
(Requested by estes on #webkit).

Reverted changeset:

"[iOS] Break a reference cycle between PreviewLoader and
ResourceLoader"
https://bugs.webkit.org/show_bug.cgi?id=194964
https://trac.webkit.org/changeset/241970

10:37 AM Changeset in webkit [242094] by Alan Bujtas
  • 6 edits in trunk/Source

[ContentChangeObserver] Simplify content observation API by removing explicit DOMTimer observation.
https://bugs.webkit.org/show_bug.cgi?id=195023
<rdar://problem/48381885>

Reviewed by Tim Horton.

Source/WebCore:

In the future we might decide that certain activities don't require DOMTimer observation, but that should
be internal to ContentChangeObserver.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingContentChanges):
(WebCore::ContentChangeObserver::stopObservingContentChanges):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::mouseMoved):

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

10:28 AM Changeset in webkit [242093] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[ContentChangeObserver] Move observing logic from Document::updateStyleIfNeeded to ContentChangeObserver
https://bugs.webkit.org/show_bug.cgi?id=195032
<rdar://problem/48388063>

Reviewed by Tim Horton.

This might eventually turn into a regular start/stop content observing call.

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::ContentChangeObserver::startObservingStyleResolve):
(WebCore::ContentChangeObserver::stopObservingStyleResolve):

10:24 AM Changeset in webkit [242092] by commit-queue@webkit.org
  • 7 edits
    8 adds in trunk

[Curl] Load HTTP body of 401 response when AuthenticationChange is cancelled.
https://bugs.webkit.org/show_bug.cgi?id=191652

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-02-26
Reviewed by Alex Christensen.

Source/WebKit:

Test: http/tests/security/401-logout/401-logout.php

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
(WebKit::NetworkDataTaskCurl::tryProxyAuthentication):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:

Tools:

Fix WinCairo MiniBrowser behavior of authentication dialog.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::didReceiveAuthenticationChallenge):

LayoutTests:

Added appropriate expected results for WebKit/WebKitLegacy of WinCairo port.

  • platform/wincairo-wk1/http/tests/security/401-logout/401-logout-expected.txt: Added.
  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/tests/security/401-logout/401-logout-expected.txt: Added.
10:20 AM Changeset in webkit [242091] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[ContentChangeObserver] Move CheckForVisibilityChange to ContentChangeObserver class
https://bugs.webkit.org/show_bug.cgi?id=195035
<rdar://problem/48389123>

Reviewed by Tim Horton.

Visibility checking logic belongs to ContentChangeObserver.

  • page/ios/ContentChangeObserver.h:
  • page/ios/ContentChangeObserver.mm:

(WebCore::elementImplicitVisibility):
(WebCore::ContentChangeObserver::StyleChange::StyleChange):
(WebCore::ContentChangeObserver::StyleChange::~StyleChange):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::elementImplicitVisibility): Deleted.
(WebCore::CheckForVisibilityChange::CheckForVisibilityChange): Deleted.
(WebCore::CheckForVisibilityChange::~CheckForVisibilityChange): Deleted.

10:14 AM Changeset in webkit [242090] by commit-queue@webkit.org
  • 1 edit
    8 copies
    1 move
    17 adds
    3 deletes in trunk/LayoutTests

Split tests programmatic-scroll-iframe and scroll-iframe
https://bugs.webkit.org/show_bug.cgi?id=195050

This patch splits some iOS frame scrolling tests into separate tests in order to make debugging
and test expectations easier to manage.

Patch by Frederic Wang <fwang@igalia.com> on 2019-02-26
Reviewed by Antti Koivisto.

  • fast/scrolling/ios/programmatic-scroll-iframe-001-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-001.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-002-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-002.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-003-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-003.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-004-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-004.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-005-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-005.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-006-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-006.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-007-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-007.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-008-expected.html: Copied from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-008.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe-009-expected.html: Renamed from LayoutTests/fast/scrolling/ios/programmatic-scroll-iframe-expected.html.
  • fast/scrolling/ios/programmatic-scroll-iframe-009.html: Added.
  • fast/scrolling/ios/programmatic-scroll-iframe.html: Removed.
  • fast/scrolling/ios/scroll-iframe-001-expected.html: Added.
  • fast/scrolling/ios/scroll-iframe-001.html: Added.
  • fast/scrolling/ios/scroll-iframe-002-expected.html: Added.
  • fast/scrolling/ios/scroll-iframe-002.html: Added.
  • fast/scrolling/ios/scroll-iframe-003-expected.html: Added.
  • fast/scrolling/ios/scroll-iframe-003.html: Added.
  • fast/scrolling/ios/scroll-iframe-004-expected.html: Added.
  • fast/scrolling/ios/scroll-iframe-004.html: Added.
  • fast/scrolling/ios/scroll-iframe-expected.html: Removed.
  • fast/scrolling/ios/scroll-iframe.html: Removed.
10:09 AM Changeset in webkit [242089] by youenn@apple.com
  • 4 edits in trunk

WebPageProxy should nullify m_userMediaPermissionRequestManager after resetting the media state
https://bugs.webkit.org/show_bug.cgi?id=195028
<rdar://problem/48243733>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by API test.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::resetState):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:01 AM Changeset in webkit [242088] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:13 AM Changeset in webkit [242087] by Ryan Haddad
  • 10 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r242071.

Breaks internal builds.

Reverted changeset:

"Add some randomness into the StructureID."
https://bugs.webkit.org/show_bug.cgi?id=194989
https://trac.webkit.org/changeset/242071

8:28 AM Changeset in webkit [242086] by commit-queue@webkit.org
  • 76 edits
    1 add in trunk/LayoutTests

Synchronize MathML WPT tests
https://bugs.webkit.org/show_bug.cgi?id=195048

This imports changes to the documentation and spec references for MathML.
It also imports a new test for href currently disabled due to bug 187039.

Patch by Frederic Wang <fwang@igalia.com> on 2019-02-26
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/mathml/README.md:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html:
  • web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1.html:
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-3.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-4.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-5.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.html:
  • web-platform-tests/mathml/presentation-markup/spaces/space-1.html:
  • web-platform-tests/mathml/presentation-markup/spaces/space-2.html:
  • web-platform-tests/mathml/presentation-markup/tables/table-axis-height.html:
  • web-platform-tests/mathml/relations/css-styling/color-1.html:
  • web-platform-tests/mathml/relations/css-styling/display-1.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-1.html:
  • web-platform-tests/mathml/relations/css-styling/lengths-1.html:
  • web-platform-tests/mathml/relations/css-styling/lengths-2.html:
  • web-platform-tests/mathml/relations/css-styling/lengths-3.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-fraktur.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-sans-serif.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold-script.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-bold.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-double-struck.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-fraktur.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-initial.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-looped.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-monospace.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-bold-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif-italic.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-sans-serif.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-script.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-stretched.html:
  • web-platform-tests/mathml/relations/css-styling/mathvariant-tailed.html:
  • web-platform-tests/mathml/relations/css-styling/visibility-1.html:
  • web-platform-tests/mathml/relations/html5-tree/class-1.html:
  • web-platform-tests/mathml/relations/html5-tree/class-2.html:
  • web-platform-tests/mathml/relations/html5-tree/color-attributes-1.html:
  • web-platform-tests/mathml/relations/html5-tree/display-1.html:
  • web-platform-tests/mathml/relations/html5-tree/dynamic-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-2.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-3.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/integration-point-1.html:
  • web-platform-tests/mathml/relations/html5-tree/integration-point-2.html:
  • web-platform-tests/mathml/relations/html5-tree/integration-point-3.html:
  • web-platform-tests/mathml/relations/html5-tree/required-extensions-1.html:
  • web-platform-tests/mathml/relations/html5-tree/required-extensions-2.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-1.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-2.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-3.html:
  • web-platform-tests/mathml/relations/html5-tree/w3c-import.log:
  • web-platform-tests/mathml/relations/text-and-math/use-typo-metrics-1.html:
  • web-platform-tests/mathml/tools/mathvariant-transforms.py:
  • web-platform-tests/mathml/tools/utils/w3c-import.log:

LayoutTests:

  • TestExpectations: Disable the new href test since testdriver.js is not supported.
7:29 AM Changeset in webkit [242085] by fred.wang@free.fr
  • 60 edits
    4 moves
    21 adds
    19 deletes in trunk/LayoutTests

Export MathML fraction tests to WPT
https://bugs.webkit.org/show_bug.cgi?id=194436

LayoutTests/imported/w3c:

This is just an import of the current MathML WPT tests. It includes fraction tests from
WebKit that were exported in [1]. Some test results have whitespace change, due to [2].

[1] https://github.com/web-platform-tests/wpt/pull/15301
[2] https://github.com/web-platform-tests/wpt/commit/e2dd57c3f273468b3c6a087978c531dcd00933de

Patch by Frederic Wang <fwang@igalia.com> on 2019-02-26
Reviewed by Manuel Rego Casasnovas.

  • resources/resource-files.json:
  • web-platform-tests/mathml/META.yml: Added.
  • web-platform-tests/mathml/OWNERS: Removed.
  • web-platform-tests/mathml/README.md:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2-expected.txt:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-expected.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html: Added.
  • web-platform-tests/mathml/presentation-markup/fractions/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1.html:
  • web-platform-tests/mathml/presentation-markup/operators/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/radicals/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-3.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-4.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-5.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4-expected.txt:
  • web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.html:
  • web-platform-tests/mathml/presentation-markup/scripts/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/spaces/space-1-expected.txt:
  • web-platform-tests/mathml/presentation-markup/spaces/space-1.html:
  • web-platform-tests/mathml/presentation-markup/spaces/space-2.html:
  • web-platform-tests/mathml/presentation-markup/spaces/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/tables/table-axis-height-expected.txt:
  • web-platform-tests/mathml/presentation-markup/tables/table-axis-height.html:
  • web-platform-tests/mathml/presentation-markup/tables/w3c-import.log:
  • web-platform-tests/mathml/relations/css-styling/display-1.html:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-1-expected.txt:
  • web-platform-tests/mathml/relations/css-styling/displaystyle-1.html:
  • web-platform-tests/mathml/relations/css-styling/lengths-3-expected.txt:
  • web-platform-tests/mathml/relations/css-styling/lengths-3.html:
  • web-platform-tests/mathml/relations/css-styling/w3c-import.log:
  • web-platform-tests/mathml/relations/html5-tree/class-2.html:
  • web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/display-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-2.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-2.html:
  • web-platform-tests/mathml/relations/html5-tree/w3c-import.log:
  • web-platform-tests/mathml/relations/text-and-math/w3c-import.log:
  • web-platform-tests/mathml/tools/utils/w3c-import.log:
  • web-platform-tests/mathml/tools/w3c-import.log:
  • web-platform-tests/mathml/w3c-import.log:

LayoutTests:

We removed some fraction tests that have equivalent WPT tests.
Some of them were actually exported from WebKit to WPT in [1]
We also move tests for crashes/asserts/hangs to the top mathml/ directory.

[1] https://github.com/web-platform-tests/wpt/pull/15301

Patch by Frederic Wang <fwang@igalia.com> on 2019-02-26
Reviewed by Manuel Rego Casasnovas.

  • mathml/fractions-invalid-expected.html: Moved to parent directory.
  • mathml/fractions-invalid.html: Ditto.
  • mathml/mfrac-nested-expected.txt: Ditto.
  • mathml/mfrac-nested.html: Ditto.
  • mathml/presentation/fractions-box-expected.html: Removed. This is better tested by WPT

tests frac-parameters-1.html, frac-parameters-2.html, frac-1.html.

  • mathml/presentation/fractions-box.html: Removed. Ditto.
  • mathml/presentation/fractions-color-expected-mismatch.html: Removed. This is exported as

frac-color-001.html.

  • mathml/presentation/fractions-color.html: Removed. Ditto.
  • mathml/presentation/fractions-linethickness-expected.html: Removed. Covered by WPT tests

frac-linethickness-*.html.

  • mathml/presentation/fractions-linethickness.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness1-expected-mismatch.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness1.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness2-expected.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness2.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness3-expected-mismatch.html: Removed. Ditto.
  • mathml/presentation/mfrac-linethickness3.html: Removed. Ditto.
  • mathml/presentation/fractions-mrow-expected.html: Removed. Exported as frac-mrow-001.html.
  • mathml/presentation/fractions-mrow.html: Removed. Ditto.
  • mathml/presentation/fractions-numalign-denomalign-expected.html: Removed. Exported as

frac-numalign-denomalign-001.html.

  • mathml/presentation/fractions-numalign-denomalign.html: Removed. Ditto.
  • mathml/presentation/fractions-vertical-alignment-expected.html: Removed. This is better

tests by WPT tests frac-parameters-1.html, frac-parameters-2.html, frac-1.html.

  • mathml/presentation/fractions-vertical-alignment.html: Removed. Ditto.
7:13 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
7:11 AM Changeset in webkit [242084] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[EGL] Runtime support for RGB565 pixel layout
https://bugs.webkit.org/show_bug.cgi?id=194817

Reviewed by Carlos Garcia Campos.

Currently our graphics pipeline always relies on a ARGB8888 (32
bpp) pixel configuration. On some low-end (old) embedded platforms
the graphics driver is sometimes optimized for 16 bpp
configurations, such as RGB565. On those platforms the application
can now set the WEBKIT_EGL_PIXEL_LAYOUT environment variable to
"RGB565" to adjust to the best pixel configuration supported by
the screen and graphics driver.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):

2:52 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
2:28 AM Changeset in webkit [242083] by guijemont@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix compilation on 32-bit platforms after r242071
https://bugs.webkit.org/show_bug.cgi?id=195042

Reviewed by Carlos Garcia Campos.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):

1:55 AM Changeset in webkit [242082] by Carlos Garcia Campos
  • 50 edits
    3 adds in trunk

[WPE] Add API for webview background color configuration
https://bugs.webkit.org/show_bug.cgi?id=192305

Source/WebCore:

Reviewed by Michael Catanzaro.

Adapt the FrameView API to allow a default non-white background color.

  • page/Frame.cpp:

(WebCore::Frame::createView): Replace isTransparent argument with a background color one.

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::recalculateBaseBackgroundColor): Use Color::transparent if m_isTransparent is true.
(WebCore::FrameView::updateBackgroundRecursively): Allow the fallback background color to be non-white, this is
used only in non-dark-mode-css build configurations.

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::setViewIsTransparent): Use Color::transparent if transparent is true.

Source/WebKit:

Reviewed by Michael Catanzaro.

In the case of WPE we need to send the background color to the web process to be used as the background color of
the page. This patch adapts the GTK+ implementation to do the same, since it's a lot simpler. The patch also
removes the SetDrawsBackground message in favor of the new SetBackgroundColor message that receives an optional
color.

  • PlatformWPE.cmake: Add new WPE API for WebKitColor boxed type.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): Remove background rendering and opacity handling.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::renderLayerTree): Remove drawsBakground and always clear the context with
transparent color.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const): Replace drawsBackground with backgroundColor.
(WebKit::WebPageCreationParameters::decode): Ditto.

  • Shared/WebPageCreationParameters.h:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitWebView.cpp:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkit_web_view_set_background_color):
(webkit_web_view_get_background_color):

  • UIProcess/API/wpe/WebKitColor.cpp: Added.

(webkit_color_copy):
(webkit_color_free):
(webkitColorToWebCoreColor):
(webkitColorFillFromWebCoreColor):
(webkit_color_parse):

  • UIProcess/API/wpe/WebKitColor.h: Added.
  • UIProcess/API/wpe/WebKitColorPrivate.h: Added.
  • UIProcess/API/wpe/WebKitWebView.h: Implement webkit_web_view_set_background_color API.
  • UIProcess/API/wpe/WebKitWebViewWPE.cpp: Ditto.

(webkit_web_view_set_background_color):
(webkit_web_view_get_background_color):

  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt: Add new symbols.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setDrawsBackground): Set a transparent background color when false is passed.
(WebKit::WebPageProxy::setBackgroundColor): Send background color to the WebProcess.
(WebKit::WebPageProxy::creationParameters): Replace drawsBackground with backgroundColor.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::drawsBackground const):
(WebKit::WebPageProxy::backgroundColor const):

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::incorporateUpdate): Remove GTK+ code to handle background color.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:
  • UIProcess/gtk/AcceleratedBackingStore.h: Make paint() pure virtual and remove the implementation.
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint): Dot not call AcceleratedBackingStore::paint() now that is pure virtual.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::paint): Ditto.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Use background color as provided by the
UIProcess when creating the FrameView.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:
  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::setIsDiscardable):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::display): Remove special case for transparent background.

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setBackgroundColor): New API for background color configuration. Proxies to FrameView and DrawingArea.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::backgroundColor const): Read-only access to the current background color.

  • WebProcess/WebPage/WebPage.messages.in: Replace SetDrawsBackground message with SetBackgroundColor.

Source/WebKitLegacy/win:

Patch by Philippe Normand <pnormand@igalia.com> on 2019-02-26
Reviewed by Michael Catanzaro.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::transitionToCommittedForNewPage): Create
FrameView with background color.

Tools:

Patch by Philippe Normand <pnormand@igalia.com> on 2019-02-26
Reviewed by Michael Catanzaro.

  • MiniBrowser/wpe/main.cpp:

(main): Add a new option to configure the webview background
color. Example: --bg-color=transparent.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewBackgroundColor): Enable background color API tests for WPE.
(beforeAll): Ditto.

12:50 AM Changeset in webkit [242081] by guijemont@igalia.com
  • 5 edits
    2 adds in trunk

[JSC] Repeat string created from Array.prototype.join() take too much memory
https://bugs.webkit.org/show_bug.cgi?id=193912

Reviewed by Saam Barati.

JSTests:

Added a test and a microbenchmark for corner cases of
Array.prototype.join() with an uninitialized array.

  • microbenchmarks/array-prototype-join-uninitialized.js: Added.
  • stress/array-prototype-join-uninitialized.js: Added.

(testArray):
(testABC):
(B):
(C):

Source/JavaScriptCore:

Added a fast case in Array.prototype.join when the array is
uninitialized.

  • runtime/ArrayPrototype.cpp:

(JSC::canUseFastJoin):
(JSC::fastJoin):

  • runtime/JSStringInlines.h:

(JSC::repeatCharacter): moved from StringPrototype.cpp

  • runtime/StringPrototype.cpp:
12:14 AM Changeset in webkit [242080] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: navigation sidebar says "No Search Results" when a slow search is in progress
https://bugs.webkit.org/show_bug.cgi?id=170631
<rdar://problem/29473874>

Reviewed by Joseph Pecoraro.

Keep a count of all the backend commands (increment when firing, decrement when a result is
sent back to the frontend). Once the count comes back to 0, attempt to show the "No Results"
placeholder, since we will have finished searching at that point. Since commands can be called
as a result of other commands, using Promise.all isn't possible.

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.performSearch):
(WI.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon): Deleted.
(WI.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder): Deleted.
Drive-by: replace bind calls with arrow functions, and use for-of loops.

  • Localizations/en.lproj/localizedStrings.js:
12:11 AM Changeset in webkit [242079] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: if no auto-capture value is specified, don't force the input to have "0" as the value
https://bugs.webkit.org/show_bug.cgi?id=194950
<rdar://problem/48276798>

Reviewed by Joseph Pecoraro.

Create a getter/setter for the value of the auto-capture frame count <input> so that all
code follows the same path.

If the <input> currently has no content and the frame count is 0, only set the placeholder.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView):
(WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
(WI.CanvasOverviewContentView.prototype.get _recordingAutoCaptureFrameCountInputElementValue): Added.
(WI.CanvasOverviewContentView.prototype.set _recordingAutoCaptureFrameCountInputElementValue): Added.
(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize):
(WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):

12:00 AM Changeset in webkit [242078] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: dragging a selection outside the selected element clears the selection
https://bugs.webkit.org/show_bug.cgi?id=194660
<rdar://problem/46719239>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._mousemove):
Don't clear the selection if the target of the "mousemove" is outside of the view.

(WI.LogContentView.prototype._updateMessagesSelection):
Drive-by: clear the saved selected messages when we're just selecting a single message.

Note: See TracTimeline for information about the timeline view.