Timeline



Aug 11, 2019:

7:00 PM Changeset in webkit [248525] by Chris Dumez
  • 13 edits
    1 add in trunk/Source

Add threading assertions to RefCounted
https://bugs.webkit.org/show_bug.cgi?id=200507

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
Disable threading assertions for DFG::Plan::m_inlineCallFrames while the JSC team
investigates.

Source/WebKit:

Enable new RefCounted threading assertions for WebKit2
(UIProcess + auxiliary processes).

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(+[WebView initialize]):
Enable new RefCounted threading assertions for WebKitLegacy.

Source/WTF:

Add threading assertions to RefCounted to try and catch unsafe concurrent ref'ing / derefing of
RefCounted objects from several threads. If you hit these new assertions, it likely means you either
need to:

  1. Have your class subclass ThreadSafeRefCounted instead of RefCounted

or

  1. Make sure your objects always gets ref'd / deref'd from the same thread.

These assertions already found several thread safety bugs in our code base, which I fixed via
dependency bugs.

These assertions are currently enabled in WebKit (UIProcess, child processes and
WebKitLegacy), they do not apply other JavascriptCore API clients.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/RefCounted.cpp: Added.
  • wtf/RefCounted.h:

(WTF::RefCountedBase::ref const):
(WTF::RefCountedBase::disableThreadingChecks):
(WTF::RefCountedBase::enableThreadingChecksGlobally):
(WTF::RefCountedBase::RefCountedBase):
(WTF::RefCountedBase::areThreadingCheckedEnabled const):
(WTF::RefCountedBase::derefBase const):

  • wtf/SizeLimits.cpp:
4:27 PM Changeset in webkit [248524] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.42.2

Tag Safari-608.1.42.2.

4:25 PM Changeset in webkit [248523] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.47

Tag Safari-608.1.47.

12:11 PM Changeset in webkit [248522] by Wenson Hsieh
  • 15 edits in trunk/Source/WebKit

WebPage and ViewportConfiguration have differing notions of viewLayoutSize
https://bugs.webkit.org/show_bug.cgi?id=200619

Reviewed by Tim Horton.

The notion of a "view layout size" exists on WebPage and WebPageProxy for the purpose of specifying an intrinsic
content size for the entire web view on macOS. However, it also exists in ViewportConfiguration (as
viewLayoutSize) and WebPageProxy (under the name m_viewportConfigurationViewLayoutSize) for the purposes of
specifying the minimum layout size of the page's viewport.

This is especially confusing in WebPageProxy, which has both m_viewportConfigurationViewLayoutSize and
m_viewLayoutSize. To remedy this, rename "*viewLayoutSize" for the purposes of specifying an intrinsic web view
size to "*minimumSizeForAutoLayout" instead, which is consistent with the corresponding SPI property name on
WKView.

No change in behavior.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::setMinimumSizeForAutoLayout):
(WebKit::WebViewImpl::minimumSizeForAutoLayout const):
(WebKit::WebViewImpl::setIntrinsicContentSize):

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::minimumSizeForAutoLayoutDidChange):
(WebKit::DrawingAreaProxy::viewLayoutSizeDidChange): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::minimumSizeForAutoLayout const):
(WebKit::WebPageProxy::viewLayoutSize const): Deleted.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::minimumSizeForAutoLayoutDidChange):
(WebKit::TiledCoreAnimationDrawingAreaProxy::didUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::willSendUpdateGeometry):
(WebKit::TiledCoreAnimationDrawingAreaProxy::viewLayoutSizeDidChange): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::setMinimumSizeForAutoLayout):
(WebKit::WebPage::updateIntrinsicContentSizeIfNeeded):
(WebKit::WebPage::setViewLayoutSize): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::minimumSizeForAutoLayout const):
(WebKit::WebPage::viewLayoutSize const): Deleted.

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):

9:21 AM Changeset in webkit [248521] by aboya@igalia.com
  • 4 edits in trunk

[MSE][GStreamer] Don't use vorbisparse
https://bugs.webkit.org/show_bug.cgi?id=200622

Reviewed by Philippe Normand.

Source/WebCore:

This patch has been splitted from the original WebKitMediaSrc rework
patch (https://bugs.webkit.org/show_bug.cgi?id=199719).

Unlike other parsers, vorbisparse has latency (in the sense that when
it gets a chain call with a series of complete frames, it may not emit
the parsed frames until another chain in the future), which makes it
inappropriate for AppendPipeline, as there is no good way I know to
flush it.

But actually vorbisparse is not known to be necessary and it was only
introduced for consistency with other formats. Parsers are used in
AppendPipeline to reconstruct information that is lost due to poor
muxes. There have been no reported cases of this being a problem with
Vorbis in WebM, so I'm just removing the parser.

Fixes imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::createOptionalParserForFormat):

LayoutTests:

  • platform/gtk/TestExpectations:
7:34 AM Changeset in webkit [248520] by bshafiei@apple.com
  • 2 edits in branches/safari-608.1.42-branch/Source/JavaScriptCore

Apply patch. rdar://problem/54171864

7:30 AM Changeset in webkit [248519] by bshafiei@apple.com
  • 2 edits in branches/safari-608.1-branch/Source/WebCore

Apply patch. rdar://problem/54139834

7:30 AM Changeset in webkit [248518] by bshafiei@apple.com
  • 2 edits in branches/safari-608.1-branch/Source/JavaScriptCore

Apply patch. rdar://problem/54171879

4:02 AM Changeset in webkit [248517] by Antti Koivisto
  • 19 edits
    1 move
    1 add in trunk/Source/WebCore

Factor complex line layout path out from RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=200612

Reviewed by Zalan Bujtas.

This patch factors the line layout code that is currently part of the RenderBlockFlow and lives in RenderBlockLineLayout.cpp
into a new ComplexLineLayout class. ComplexLineLayout is a member of RenderBlockFlow.

In the future we can stop constructing ComplexLineLayout at all when using other line layout paths.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/ComplexLineLayout.cpp: Copied from Source/WebCore/rendering/RenderBlockLineLayout.cpp.

(WebCore::ComplexLineLayout::ComplexLineLayout):
(WebCore::ComplexLineLayout::appendRunsForObject):
(WebCore::ComplexLineLayout::createRootInlineBox):
(WebCore::ComplexLineLayout::createAndAppendRootInlineBox):
(WebCore::ComplexLineLayout::createInlineBoxForRenderer):
(WebCore::ComplexLineLayout::createLineBoxes):
(WebCore::ComplexLineLayout::constructLine):
(WebCore::ComplexLineLayout::textAlignmentForLine const):
(WebCore::ComplexLineLayout::setMarginsForRubyRun):
(WebCore::ComplexLineLayout::updateRubyForJustifiedText):
(WebCore::ComplexLineLayout::computeExpansionForJustifiedText):
(WebCore::ComplexLineLayout::updateLogicalWidthForAlignment):
(WebCore::ComplexLineLayout::computeInlineDirectionPositionsForLine):
(WebCore::ComplexLineLayout::computeInlineDirectionPositionsForSegment):
(WebCore::ComplexLineLayout::removeInlineBox const):
(WebCore::ComplexLineLayout::computeBlockDirectionPositionsForLine):
(WebCore::ComplexLineLayout::handleTrailingSpaces):
(WebCore::ComplexLineLayout::appendFloatingObjectToLastLine):
(WebCore::ComplexLineLayout::createLineBoxesFromBidiRuns):
(WebCore::ComplexLineLayout::layoutRunsAndFloats):
(WebCore::ComplexLineLayout::restartLayoutRunsAndFloatsInRange):
(WebCore::ComplexLineLayout::layoutRunsAndFloatsInRange):
(WebCore::ComplexLineLayout::reattachCleanLineFloats):
(WebCore::ComplexLineLayout::linkToEndLineIfNeeded):
(WebCore::ComplexLineLayout::layoutLineBoxes):
(WebCore::ComplexLineLayout::checkFloatInCleanLine):
(WebCore::ComplexLineLayout::determineStartPosition):
(WebCore::ComplexLineLayout::determineEndPosition):
(WebCore::ComplexLineLayout::checkPaginationAndFloatsAtEndLine):
(WebCore::ComplexLineLayout::lineWidthForPaginatedLineChanged const):
(WebCore::ComplexLineLayout::matchedEndLine):
(WebCore::ComplexLineLayout::addOverflowFromInlineChildren):
(WebCore::ComplexLineLayout::deleteEllipsisLineBoxes):
(WebCore::ComplexLineLayout::checkLinesForTextOverflow):
(WebCore::ComplexLineLayout::positionNewFloatOnLine):
(WebCore::ComplexLineLayout::startAlignedOffsetForLine):
(WebCore::ComplexLineLayout::updateFragmentForLine const):
(WebCore::ComplexLineLayout::style const):
(WebCore::ComplexLineLayout::layoutContext const):
(WebCore::RenderBlockFlow::appendRunsForObject): Deleted.
(WebCore::RenderBlockFlow::createRootInlineBox): Deleted.
(WebCore::RenderBlockFlow::createAndAppendRootInlineBox): Deleted.
(WebCore::createInlineBoxForRenderer): Deleted.
(WebCore::RenderBlockFlow::createLineBoxes): Deleted.
(WebCore::RenderBlockFlow::constructLine): Deleted.
(WebCore::RenderBlockFlow::textAlignmentForLine const): Deleted.
(WebCore::RenderBlockFlow::setMarginsForRubyRun): Deleted.
(WebCore::RenderBlockFlow::updateRubyForJustifiedText): Deleted.
(WebCore::RenderBlockFlow::computeExpansionForJustifiedText): Deleted.
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment): Deleted.
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine): Deleted.
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): Deleted.
(WebCore::RenderBlockFlow::removeInlineBox const): Deleted.
(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): Deleted.
(WebCore::RenderBlockFlow::handleTrailingSpaces): Deleted.
(WebCore::RenderBlockFlow::appendFloatingObjectToLastLine): Deleted.
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns): Deleted.
(WebCore::RenderBlockFlow::layoutRunsAndFloats): Deleted.
(WebCore::RenderBlockFlow::restartLayoutRunsAndFloatsInRange): Deleted.
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange): Deleted.
(WebCore::RenderBlockFlow::reattachCleanLineFloats): Deleted.
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded): Deleted.
(WebCore::RenderBlockFlow::layoutLineBoxes): Deleted.
(WebCore::RenderBlockFlow::checkFloatInCleanLine): Deleted.
(WebCore::RenderBlockFlow::determineStartPosition): Deleted.
(WebCore::RenderBlockFlow::determineEndPosition): Deleted.
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine): Deleted.
(WebCore::RenderBlockFlow::lineWidthForPaginatedLineChanged const): Deleted.
(WebCore::RenderBlockFlow::matchedEndLine): Deleted.
(WebCore::RenderBlock::generatesLineBoxesForInlineChild): Deleted.
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren): Deleted.
(WebCore::RenderBlockFlow::deleteEllipsisLineBoxes): Deleted.
(WebCore::RenderBlockFlow::checkLinesForTextOverflow): Deleted.
(WebCore::RenderBlockFlow::positionNewFloatOnLine): Deleted.
(WebCore::RenderBlockFlow::startAlignedOffsetForLine): Deleted.
(WebCore::RenderBlockFlow::updateFragmentForLine const): Deleted.

  • rendering/ComplexLineLayout.h: Added.

(WebCore::ComplexLineLayout::lineBoxes):
(WebCore::ComplexLineLayout::lineBoxes const):
(WebCore::ComplexLineLayout::firstRootBox const):
(WebCore::ComplexLineLayout::lastRootBox const):

  • rendering/InlineIterator.h:

(WebCore::IsolateTracker::addFakeRunIfNecessary):
(WebCore::InlineBidiResolver::appendRunInternal):

  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::updateStaticInlinePositionForChild):
(WebCore::RenderBlockFlow::deleteLines):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::layoutSimpleLines):
(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::lineBoxes):
(WebCore::RenderBlockFlow::lineBoxes const):
(WebCore::RenderBlockFlow::firstRootBox const):
(WebCore::RenderBlockFlow::lastRootBox const):
(WebCore::RenderBlockFlow::floatingObjects):
(WebCore::RenderBlockFlow::complexLineLayout):
(WebCore::RenderBlockFlow::overrideTextAlignmentForLine const):
(WebCore::RenderBlockFlow::adjustInlineDirectionLineBounds const):

  • rendering/RenderBlockLineLayout.cpp: Removed.
  • rendering/RenderRubyBase.cpp:

(WebCore::RenderRubyBase::overrideTextAlignmentForLine const):
(WebCore::RenderRubyBase::textAlignmentForLine const): Deleted.

  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyText.cpp:

(WebCore::RenderRubyText::overrideTextAlignmentForLine const):
(WebCore::RenderRubyText::textAlignmentForLine const): Deleted.

  • rendering/RenderRubyText.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/line/LineBreaker.cpp:

(WebCore::LineBreaker::skipLeadingWhitespace):

  • rendering/line/LineBreaker.h:

(WebCore::LineBreaker::positionNewFloatOnLine):

  • rendering/line/LineInlineHeaders.h:

(WebCore::setStaticPositions):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::createRootInlineBox): Deleted.

  • rendering/svg/RenderSVGText.h:
  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::generatesLineBoxesForInlineChild):
(WebCore::getParentOfFirstLineBox):

Aug 10, 2019:

10:03 PM Changeset in webkit [248516] by bshafiei@apple.com
  • 4 edits in branches/safari-608.1-branch/Source/WebKit

Apply patch. rdar://problem/54130665

9:48 PM Changeset in webkit [248515] by ap@apple.com
  • 2 edits in trunk/Tools

WebKitTestRunner's InjectedBundle has too aggressive stripping, resulting in non-symbolicated crash logs
https://bugs.webkit.org/show_bug.cgi?id=200621

Reviewed by Dan Bernstein.

  • WebKitTestRunner/Configurations/InjectedBundle.xcconfig:
9:03 PM Changeset in webkit [248514] by Simon Fraser
  • 6 edits
    3 adds in trunk

REGRESSION (r245974): Missing content on habitburger.com, amazon.com
https://bugs.webkit.org/show_bug.cgi?id=200618
rdar://problem/53920224

Reviewed by Zalan Bujtas.

Source/WebCore:

In r245974 TileController::adjustTileCoverageRect() started to intersect the coverage
rect with the bounds of the layer, which is wrong because this coverage rect is passed down
to descendant layers, and they may project outside the bounds of this tiled layer.

This caused missing dropdowns on amazon.com, and a missing menu on habitburger.com on iPhone.

The fix is to just not do the intersection with the bounds. TileGrid::getTileIndexRangeForRect()
already ensures that we never make tiles outside the bounds of a TileController.

Test: compositing/backing/layer-outside-tiled-parent.html

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::adjustTileCoverageRect):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::ensureTilesForRect):

LayoutTests:

  • compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
  • compositing/backing/layer-outside-tiled-parent.html: Added.
  • platform/ios-wk2/compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
  • tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:
  • tiled-drawing/tiled-backing-in-window-expected.txt:
8:46 PM Changeset in webkit [248513] by commit-queue@webkit.org
  • 7 edits in trunk

Accessibility client cannot navigate to internal links targets on iOS.
https://bugs.webkit.org/show_bug.cgi?id=200559
<rdar://problem/45242534>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-08-10
Reviewed by Zalan Bujtas.

Source/WebCore:

The cause of the problem on iOS is that AccessibilityObject::firstAccessibleObjectFromNode
used in AccessibilityRenderObject::linkedUIElements may return an object
that is ignored by accessibility clients on iOS, and thus the client
would not track the target of an internal link. This change ensures that
accessibilityLinkedElement will return a valid accessibility element to
the client, if it is exists.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
(WebCore::firstAccessibleObjectFromNode):

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):

LayoutTests:

Extneded this test to not only check that internal links expose their
target, but also that the target is an accessible element. Added a
second test case where the target is contained in a grouping element.

  • accessibility/ios-simulator/internal-link-expected.txt:
  • accessibility/ios-simulator/internal-link.html:
8:18 PM Changeset in webkit [248512] by bshafiei@apple.com
  • 14 edits
    3 adds in branches/safari-608.1.42-branch

Cherry-pick r248494. rdar://problem/54171864

Universal XSS in JSObject::putInlineSlow and JSValue::putToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=199864

Reviewed by Saam Barati.

Source/JavaScriptCore:

Our JSObject::put implementation is not correct in term of the spec. Our Put? implementation is something like this.

JSObject::put(object):

if (can-do-fast-path(object))

return fast-path(object);

slow-path
do {

object-put-check-and-setter-calls(object); (1)
object = object->prototype;

} while (is-object(object));
return do-put(object);

Since JSObject::put is registered in the methodTable, the derived classes can override it. Some of classes are adding
extra checks to this put.

Derived::put(object):

if (do-extra-check(object))

fail

return JSObject::put(object)

The problem is that Derived::put is only called when the |this| object is the Derived class. When traversing Prototype? in
JSObject::put, at (1), we do not perform the extra checks added in Derived::put even if object is Derived one. This means that
we skip the check.

Currently, JSObject::put and WebCore checking mechanism are broken. JSObject::put should call getOwnPropertySlot at (1) to
perform the additional checks. This behavior is matching against the spec. However, currently, our JSObject::getOwnPropertySlot
does not propagate setter information. This is required to cache cacheable Put? at (1) for CustomValue, CustomAccessor, and
Accessors. We also need to reconsider how to integrate static property setters to this mechanism. So, basically, this involves
large refactoring to renew our JSObject::put and JSObject::getOwnPropertySlot.

To work-around for now, we add a new TypeInfo flag, HasPutPropertySecurityCheck . And adding this flag to DOM objects
that implements the addition checks. We also add doPutPropertySecurityCheck method hook to perform the check in JSObject.
When we found this flag at (1), we perform doPutPropertySecurityCheck to properly perform the checks.

Since our JSObject::put code is old and it does not match against the spec now, we should refactor it largely. This is tracked separately in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=200562

  • runtime/ClassInfo.h:
  • runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive):
  • runtime/JSCell.cpp: (JSC::JSCell::doPutPropertySecurityCheck):
  • runtime/JSCell.h:
  • runtime/JSObject.cpp: (JSC::JSObject::putInlineSlow): (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/JSObject.h: (JSC::JSObject::doPutPropertySecurityCheck):
  • runtime/JSTypeInfo.h: (JSC::TypeInfo::hasPutPropertySecurityCheck const):

Source/WebCore:

Test: http/tests/security/cross-frame-access-object-put-optimization.html

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::doPutPropertySecurityCheck):
  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::doPutPropertySecurityCheck):
  • bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader):
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

LayoutTests:

  • http/tests/security/cross-frame-access-object-put-optimization-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-put-optimization.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-put-optimization-test.html: Added.

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

8:17 PM Changeset in webkit [248511] by bshafiei@apple.com
  • 7 edits in branches/safari-608.1.42-branch/Source

Versioning.

8:02 PM Changeset in webkit [248510] by bshafiei@apple.com
  • 11 edits in branches/safari-608.1-branch/Source

Cherry-pick r248502. rdar://problem/54130678

Disable ContentChangeObserver TouchEvent adjustment on youtube.com on iOS in mobile browsing mode
https://bugs.webkit.org/show_bug.cgi?id=200609
<rdar://problem/54015403>

Reviewed by Maciej Stachowiak.

Source/WebCore:

When watching a youtube video on iOS with "Autoplay" switched to off,
upon finishing the video all clicks anywhere on the page are effectively ignored.
Disabling ContentChangeObserver's TouchEvent adjustment fixes this bug. I verified this manually.
This switch was introduced in r242621, and it disables part of a new feature, so there is low risk of fallout.

  • loader/DocumentLoader.h: (WebCore::DocumentLoader::setAllowContentChangeObserverQuirk): (WebCore::DocumentLoader::allowContentChangeObserverQuirk const):
  • page/Quirks.cpp: (WebCore::Quirks::shouldDisableContentChangeObserverTouchEventAdjustment const):
  • page/Quirks.h:
  • page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::touchEventDidStart):

Source/WebKit:

  • Shared/WebsitePoliciesData.cpp: (WebKit::WebsitePoliciesData::encode const): (WebKit::WebsitePoliciesData::decode): (WebKit::WebsitePoliciesData::applyToDocumentLoader):
  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const): (API::WebsitePolicies::data):
  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

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

8:02 PM Changeset in webkit [248509] by bshafiei@apple.com
  • 9 edits in branches/safari-608.1-branch/Source

Cherry-pick r248501. rdar://problem/54130617

[iOS] Add a quirk for gmail.com messages on iPhone iOS13
https://bugs.webkit.org/show_bug.cgi?id=200605

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-10
Reviewed by Maciej Stachowiak.

Source/WebCore:

Add a quirk which sets the user agent for gmail.com messages on iPhone
OS 13 to be iPhone OS 12. This is a workaround for a gmail.com bug till
it is fixed.

  • page/Quirks.cpp: (WebCore::Quirks::shouldAvoidUsingIOS13ForGmail const):
  • page/Quirks.h:
  • platform/UserAgent.h:
  • platform/ios/UserAgentIOS.mm: (WebCore::osNameForUserAgent): (WebCore::standardUserAgentWithApplicationName):
  • platform/mac/UserAgentMac.mm: (WebCore::standardUserAgentWithApplicationName):

Source/WebKit:

Use WebPage::platformUserAgent() to add the gmail.com quirk.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformUserAgent const):

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

8:02 PM Changeset in webkit [248508] by bshafiei@apple.com
  • 14 edits
    3 adds in branches/safari-608.1-branch

Cherry-pick r248494. rdar://problem/54171879

Universal XSS in JSObject::putInlineSlow and JSValue::putToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=199864

Reviewed by Saam Barati.

Source/JavaScriptCore:

Our JSObject::put implementation is not correct in term of the spec. Our Put? implementation is something like this.

JSObject::put(object):

if (can-do-fast-path(object))

return fast-path(object);

slow-path
do {

object-put-check-and-setter-calls(object); (1)
object = object->prototype;

} while (is-object(object));
return do-put(object);

Since JSObject::put is registered in the methodTable, the derived classes can override it. Some of classes are adding
extra checks to this put.

Derived::put(object):

if (do-extra-check(object))

fail

return JSObject::put(object)

The problem is that Derived::put is only called when the |this| object is the Derived class. When traversing Prototype? in
JSObject::put, at (1), we do not perform the extra checks added in Derived::put even if object is Derived one. This means that
we skip the check.

Currently, JSObject::put and WebCore checking mechanism are broken. JSObject::put should call getOwnPropertySlot at (1) to
perform the additional checks. This behavior is matching against the spec. However, currently, our JSObject::getOwnPropertySlot
does not propagate setter information. This is required to cache cacheable Put? at (1) for CustomValue, CustomAccessor, and
Accessors. We also need to reconsider how to integrate static property setters to this mechanism. So, basically, this involves
large refactoring to renew our JSObject::put and JSObject::getOwnPropertySlot.

To work-around for now, we add a new TypeInfo flag, HasPutPropertySecurityCheck . And adding this flag to DOM objects
that implements the addition checks. We also add doPutPropertySecurityCheck method hook to perform the check in JSObject.
When we found this flag at (1), we perform doPutPropertySecurityCheck to properly perform the checks.

Since our JSObject::put code is old and it does not match against the spec now, we should refactor it largely. This is tracked separately in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=200562

  • runtime/ClassInfo.h:
  • runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive):
  • runtime/JSCell.cpp: (JSC::JSCell::doPutPropertySecurityCheck):
  • runtime/JSCell.h:
  • runtime/JSObject.cpp: (JSC::JSObject::putInlineSlow): (JSC::JSObject::getOwnPropertyDescriptor):
  • runtime/JSObject.h: (JSC::JSObject::doPutPropertySecurityCheck):
  • runtime/JSTypeInfo.h: (JSC::TypeInfo::hasPutPropertySecurityCheck const):

Source/WebCore:

Test: http/tests/security/cross-frame-access-object-put-optimization.html

  • bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::doPutPropertySecurityCheck):
  • bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::doPutPropertySecurityCheck):
  • bindings/scripts/CodeGeneratorJS.pm: (GenerateHeader):
  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

LayoutTests:

  • http/tests/security/cross-frame-access-object-put-optimization-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-put-optimization.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-put-optimization-test.html: Added.

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

8:02 PM Changeset in webkit [248507] by bshafiei@apple.com
  • 12 edits
    16 adds in branches/safari-608.1-branch

Cherry-pick r248491. rdar://problem/54130644

Don't allow cross-origin iframes to autofocus
https://bugs.webkit.org/show_bug.cgi?id=200515
<rdar://problem/54092988>

Reviewed by Ryosuke Niwa.

Source/WebCore:

According to Step 6 in the WhatWG Spec (https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofocusing-a-form-control:-the-autofocus-attribute),
the 'autofocus' attribute shouldn't work for cross-origin iframes.

This change is based on the Blink change (patch by <mustaq@chromium.org>):
<https://chromium-review.googlesource.com/c/chromium/src/+/1593026>

Also disallow cross-origin iframes from focusing programmatically without ever having
had any user interaction.

  • dom/Element.cpp: Check if an invalid frame is trying to grab the focus. (WebCore::Element::focus):
  • html/HTMLFormControlElement.cpp: Check if the focus is moving to an invalid frame. (WebCore::shouldAutofocus):
  • page/DOMWindow.cpp: Check if an invalid frame is trying to grab the focus. (WebCore::DOMWindow::focus):

Tools:

Make WebKit.FocusedFrameAfterCrash use same-origin iframes instead
of cross-origin iframes, since it depends on focusing one of the
frames.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKit/many-same-origin-iframes.html: Added.

LayoutTests:

Add test coverage, and simulate user interaction in existing tests
that require focusing a cross-origin frame.

  • http/tests/security/clipboard/resources/copy-html.html:
  • http/tests/security/clipboard/resources/copy-mso-list.html:
  • http/tests/security/clipboard/resources/copy-url.html:
  • http/wpt/html/interaction/focus/no-cross-origin-element-focus-expected.txt: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-element-focus.html: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-window-focus-expected.txt: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-window-focus.html: Added.
  • http/wpt/html/interaction/focus/resources/child-focus-element.html: Added.
  • http/wpt/html/interaction/focus/resources/child-focus-window.html: Added.
  • http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub-expected.txt: Added.
  • http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub.html: Added.
  • http/wpt/html/semantics/forms/autofocus/resources/child-autofocus.html: Added.
  • http/wpt/webauthn/resources/last-layer-frame.https.html:

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

8:01 PM Changeset in webkit [248506] by bshafiei@apple.com
  • 7 edits in branches/safari-608.1-branch/Source

Cherry-pick r248471. rdar://problem/54130628

Disable CSSOM View Scrolling API for IMDb iOS app
https://bugs.webkit.org/show_bug.cgi?id=200586
<rdar://problem/53645833>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-09
Reviewed by Simon Fraser.

Source/WebCore:

They are calling scrollHeight on the HTML element and it is running new code introduced in r235806
Disable this new feature until they update their app to use the iOS13 SDK.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isIMDb):

Source/WebKit:

Change the CSSOMViewScrollingAPIEnabled default value to be off for the IMDb app's WKWebViews.
I manually verified this is effective in those WKWebViews but no other WKWebViews and that it fixes the radar.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp: (WebKit::defaultCSSOMViewScrollingAPIEnabled):
  • Shared/WebPreferencesDefaultValues.h:

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

8:01 PM Changeset in webkit [248505] by bshafiei@apple.com
  • 5 edits in branches/safari-608.1-branch/Source

Cherry-pick r248469. rdar://problem/54130692

Tapping buttons in Data Detectors lookup previews doesn't work
https://bugs.webkit.org/show_bug.cgi?id=200579
<rdar://problem/54056519>

Reviewed by Megan Gardner.

Source/WebCore/PAL:

  • pal/spi/ios/DataDetectorsUISPI.h:

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _contextMenuInteraction:styleForMenuWithConfiguration:]): If a Data Detectors context menu wants the action menu style, provide it.

(-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]):
If a Data Detectors context menu provides a view controller to present
on context menu commit, present it. We present on top of the same view
controller that is currently presenting the context menu, but modally
instead of inside the context menu.

If a Data Detectors context menu instead provides a URL to launch on
context menu commit, call openURL.

In both cases, change the commit style to pop, since we're committing
instead of dismissing.

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

8:01 PM Changeset in webkit [248504] by bshafiei@apple.com
  • 4 edits in branches/safari-608.1-branch/Source/WebCore

Cherry-pick r248463. rdar://problem/54139834

REGRESSION (iOS 13): united.com web forms do not respond to taps
https://bugs.webkit.org/show_bug.cgi?id=200531

Reviewed by Antti Koivisto and Wenson Hsieh.

The bug is caused by the content change observer detecting “Site Feedback” link at the bottom of
the page (https://www.united.com/ual/en/US/account/enroll/default) constantly getting re-generated
in every frame via requestAnimationFrame when the page is opened with iPhone UA string.
Note that the content re-generation can be reproduced even in Chrome if iPhone UA string is used.

Ignore this constant content change in ContentChangeObserver as a site specific quirk.

In the future, we should make ContentChangeObserver observe the final location of each element
being observed so that we can ignore content that like this which is placed outside the viewport,
and/or far away from where the user tapped.

  • page/Quirks.cpp: (WebCore::Quirks::shouldIgnoreContentChange const): Added.
  • page/Quirks.h:
  • page/ios/ContentChangeObserver.cpp: (WebCore::ContentChangeObserver::shouldObserveVisibilityChangeForElement):

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

3:50 PM Changeset in webkit [248503] by youenn@apple.com
  • 43 edits in trunk/Source/WebCore

Blob should store its session ID
https://bugs.webkit.org/show_bug.cgi?id=200572

Reviewed by Darin Adler.

Blob at creation time now initializes its session ID.
This will allow in the future to call blob registry routines with it.
Update all call sites to provide the session ID.

No observable change.

  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::getFile):

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::fromFormData):

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::blobFromData):
(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::takeAsBlob):

  • Modules/fetch/FetchBodyConsumer.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blob):

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::createRecordingDataBlob):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didReceiveRawData):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::sessionID const):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readTerminal):

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::DataTransfer):
(WebCore::DataTransfer::createForCopyAndPaste):
(WebCore::DataTransfer::filesFromPasteboardAndItemList const):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::createForDrag):
(WebCore::DataTransfer::createForDragStartEvent):
(WebCore::DataTransfer::createForDrop):
(WebCore::DataTransfer::createForUpdatingDropTarget):

  • dom/DataTransfer.h:
  • dom/Document.cpp:

(WebCore::Document::originIdentifierForPasteboard const):

  • dom/Document.h:
  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::inputEventDataTransfer const):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::inputEventDataTransfer const):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::inputEventDataTransfer const):

  • editing/WebCorePasteboardFileReader.cpp:

(WebCore::WebCorePasteboardFileReader::readFilename):
(WebCore::WebCorePasteboardFileReader::readBuffer):

  • editing/WebCorePasteboardFileReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage):
(WebCore::attachmentForFilePath):
(WebCore::attachmentForData):

  • editing/markup.cpp:

(WebCore::restoreAttachmentElementsInFragment):

  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • fileapi/Blob.h:

(WebCore::Blob::create):
(WebCore::Blob::deserialize):
(WebCore::Blob::slice const):

  • fileapi/Blob.idl:
  • fileapi/File.cpp:

(WebCore::File::createWithRelativePath):
(WebCore::File::File):

  • fileapi/File.h:
  • fileapi/File.idl:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::filesChosen):

  • html/FileListCreator.cpp:

(WebCore::appendDirectoryFiles):
(WebCore::FileListCreator::FileListCreator):
(WebCore::FileListCreator::createFileList):

  • html/FileListCreator.h:

(WebCore::FileListCreator::create):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

  • testing/Internals.cpp:

(WebCore::Internals::createFile):

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::createOpaqueWithBlobBodyResponse):

  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createResponseBlob):

3:45 PM Changeset in webkit [248502] by achristensen@apple.com
  • 11 edits in trunk/Source

Disable ContentChangeObserver TouchEvent adjustment on youtube.com on iOS in mobile browsing mode
https://bugs.webkit.org/show_bug.cgi?id=200609
<rdar://problem/54015403>

Reviewed by Maciej Stachowiak.

Source/WebCore:

When watching a youtube video on iOS with "Autoplay" switched to off,
upon finishing the video all clicks anywhere on the page are effectively ignored.
Disabling ContentChangeObserver's TouchEvent adjustment fixes this bug. I verified this manually.
This switch was introduced in r242621, and it disables part of a new feature, so there is low risk of fallout.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setAllowContentChangeObserverQuirk):
(WebCore::DocumentLoader::allowContentChangeObserverQuirk const):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDisableContentChangeObserverTouchEventAdjustment const):

  • page/Quirks.h:
  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::touchEventDidStart):

Source/WebKit:

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):
(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

3:25 PM Changeset in webkit [248501] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[iOS] Add a quirk for gmail.com messages on iPhone iOS13
https://bugs.webkit.org/show_bug.cgi?id=200605

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-10
Reviewed by Maciej Stachowiak.

Source/WebCore:

Add a quirk which sets the user agent for gmail.com messages on iPhone
OS 13 to be iPhone OS 12. This is a workaround for a gmail.com bug till
it is fixed.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAvoidUsingIOS13ForGmail const):

  • page/Quirks.h:
  • platform/UserAgent.h:
  • platform/ios/UserAgentIOS.mm:

(WebCore::osNameForUserAgent):
(WebCore::standardUserAgentWithApplicationName):

  • platform/mac/UserAgentMac.mm:

(WebCore::standardUserAgentWithApplicationName):

Source/WebKit:

Use WebPage::platformUserAgent() to add the gmail.com quirk.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformUserAgent const):

4:18 AM Changeset in webkit [248500] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Remove unused GstAdapter
https://bugs.webkit.org/show_bug.cgi?id=200585

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-08-10
Reviewed by Philippe Normand.

Minor "refactoring"

  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::GStreamerVideoEncoder):

3:38 AM Changeset in webkit [248499] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Can’t sort videos on a YouTube channel page on iPad
https://bugs.webkit.org/show_bug.cgi?id=200573
<rdar://problem/53415195>

Reviewed by Darin Adler.

Add a quirk to make touch events non-cancelable (preventDefault() does nothing).

  • page/Quirks.cpp:

(WebCore::Quirks::shouldMakeTouchEventNonCancelableForTarget const):

  • page/Quirks.h:
1:04 AM Changeset in webkit [248498] by timothy_horton@apple.com
  • 14 edits
    2 deletes in trunk/Source

Remove some more unused 32-bit code
https://bugs.webkit.org/show_bug.cgi?id=200607

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • Modules/OSX.modulemap:

Source/WebKitLegacy:

  • PlatformMac.cmake:
  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • Misc/WebSharingServicePickerController.mm:

(-[WebSharingServicePickerController initWithItems:includeEditorServices:client:style:]):
(-[WebSharingServicePickerController initWithSharingServicePicker:client:]):
(-[WebSharingServicePickerController sharingService:didShareItems:]):

  • Plugins/WebNetscapePluginEventHandler.mm:
  • Plugins/WebNetscapePluginEventHandlerCarbon.h: Removed.
  • Plugins/WebNetscapePluginEventHandlerCarbon.mm: Removed.
  • Plugins/WebNetscapePluginEventHandlerCocoa.h:

(WebNetscapePluginEventHandlerCocoa::installKeyEventHandler): Deleted.
(WebNetscapePluginEventHandlerCocoa::removeKeyEventHandler): Deleted.

  • Plugins/WebNetscapePluginEventHandlerCocoa.mm:

(WebNetscapePluginEventHandlerCocoa::WebNetscapePluginEventHandlerCocoa):
(WebNetscapePluginEventHandlerCocoa::keyDown):
(WebNetscapePluginEventHandlerCocoa::focusChanged):
(WebNetscapePluginEventHandlerCocoa::installKeyEventHandler): Deleted.
(WebNetscapePluginEventHandlerCocoa::removeKeyEventHandler): Deleted.
(WebNetscapePluginEventHandlerCocoa::TSMEventHandler): Deleted.
(WebNetscapePluginEventHandlerCocoa::handleTSMEvent): Deleted.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::contextMenuForEvent):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]):
(-[WebHTMLView pressureChangeWithEvent:]):

  • WebView/WebView.mm:

(LayerFlushController::flushLayers):

12:02 AM Changeset in webkit [248497] by Devin Rousso
  • 14 edits
    1 delete in trunk/Source

Web Inspector: REGRESSION(r248454): WK1 inspector frontend client doesn't queue messages to the frontend before it's loaded
https://bugs.webkit.org/show_bug.cgi?id=200587

Reviewed by Joseph Pecoraro.

WK1 inspector sends messages to the frontend using WebCore::InspectorClient::doDispatchMessageOnFrontendPage,
which does not do any sort of queueing to wait until the frontend is loaded (InspectorFrontendHost.loaded()).

Now that we are sending messages immediately, we should always queue.

Source/WebCore:

Covered by existing tests (which were failing after r248454, and now won't fail).

  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::setDockingUnavailable):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
(WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
(WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
(WebCore::InspectorFrontendClientLocal::startProfilingJavaScript):
(WebCore::InspectorFrontendClientLocal::stopProfilingJavaScript):
(WebCore::InspectorFrontendClientLocal::showConsole):
(WebCore::InspectorFrontendClientLocal::showResources):
(WebCore::InspectorFrontendClientLocal::showMainResourceForFrame):
(WebCore::InspectorFrontendClientLocal::dispatch): Added.
(WebCore::InspectorFrontendClientLocal::dispatchMessage): Added.
(WebCore::InspectorFrontendClientLocal::dispatchMessageAsync): Added.
(WebCore::InspectorFrontendClientLocal::evaluateOnLoad):
Provide additional ways for subclasses to call other InspectorFrontendAPI methods using
the "on load" queue.

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::sendMessageToFrontend):
(WebCore::InspectorStubFrontend::frontendLoaded): Deleted.
Leverage the base InspectorFrontendClientLocal's functions for queueing messages.

  • inspector/InspectorClient.h:
  • inspector/InspectorClient.cpp: Removed.

(WebCore::InspectorClient::doDispatchMessageOnFrontendPage): Deleted.

  • inspector/agents/InspectorTimelineAgent.cpp:

Add missing include.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

  • UserInterface/Test/TestStub.js:

(InspectorFrontendAPI.dispatch): Added.

  • UserInterface/Models/Frame.js:

(WI.Frame.prototype.markDOMContentReadyEvent):
(WI.Frame.prototype.markLoadEvent):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.pageDOMContentLoadedEventFired):
(WI.TimelineManager.prototype.pageLoadEventFired):

Source/WebKitLegacy/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::sendMessageToFrontend):
Leverage the base InspectorFrontendClientLocal's functions for queueing messages.

Aug 9, 2019:

9:00 PM Changeset in webkit [248496] by Wenson Hsieh
  • 2 edits in trunk/Tools

KeyboardInputTests.CaretSelectionRectAfterRestoringFirstResponder API tests time out on iPad
https://bugs.webkit.org/show_bug.cgi?id=200604
<rdar://problem/51273130>

Reviewed by Megan Gardner.

Tweak some API tests so that they work on iPad simulator. These tests checked that the final caret rect was
{{16, 13}, {2, 15}}; however, this is only correct behavior on iPhone, where we will scale the page so that the
focused element's font size is legible. Note that when the page is scaled, we scale the height but not the
width of the caret, which is why the width of the caret (in content coordinates) decreases while the height
remains the same.

We don't have the same behavior on iPad, so the expected caret rect is {{16, 13}, {3, 15}}, which is equal to
the caret rect at initial scale 1.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
8:19 PM Changeset in webkit [248495] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Node details sidebar sections have unclear delineation in Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=200603
<rdar://problem/54146925>

Reviewed by Devin Rousso.

  • UserInterface/Views/DetailsSection.css:

(@media (prefers-color-scheme: dark)):
(.details-section .details-section,):
Give a details section header a different color than a normal sidebar header.

6:20 PM Changeset in webkit [248494] by ysuzuki@apple.com
  • 14 edits
    3 adds in trunk

Universal XSS in JSObject::putInlineSlow and JSValue::putToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=199864

Reviewed by Saam Barati.

Source/JavaScriptCore:

Our JSObject::put implementation is not correct in term of the spec. Our Put? implementation is something like this.

JSObject::put(object):

if (can-do-fast-path(object))

return fast-path(object);

slow-path
do {

object-put-check-and-setter-calls(object); (1)
object = object->prototype;

} while (is-object(object));
return do-put(object);

Since JSObject::put is registered in the methodTable, the derived classes can override it. Some of classes are adding
extra checks to this put.

Derived::put(object):

if (do-extra-check(object))

fail

return JSObject::put(object)

The problem is that Derived::put is only called when the |this| object is the Derived class. When traversing Prototype? in
JSObject::put, at (1), we do not perform the extra checks added in Derived::put even if object is Derived one. This means that
we skip the check.

Currently, JSObject::put and WebCore checking mechanism are broken. JSObject::put should call getOwnPropertySlot at (1) to
perform the additional checks. This behavior is matching against the spec. However, currently, our JSObject::getOwnPropertySlot
does not propagate setter information. This is required to cache cacheable Put? at (1) for CustomValue, CustomAccessor, and
Accessors. We also need to reconsider how to integrate static property setters to this mechanism. So, basically, this involves
large refactoring to renew our JSObject::put and JSObject::getOwnPropertySlot.

To work-around for now, we add a new TypeInfo flag, HasPutPropertySecurityCheck . And adding this flag to DOM objects
that implements the addition checks. We also add doPutPropertySecurityCheck method hook to perform the check in JSObject.
When we found this flag at (1), we perform doPutPropertySecurityCheck to properly perform the checks.

Since our JSObject::put code is old and it does not match against the spec now, we should refactor it largely. This is tracked separately in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=200562

  • runtime/ClassInfo.h:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSCell.cpp:

(JSC::JSCell::doPutPropertySecurityCheck):

  • runtime/JSCell.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):
(JSC::JSObject::getOwnPropertyDescriptor):

  • runtime/JSObject.h:

(JSC::JSObject::doPutPropertySecurityCheck):

  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::hasPutPropertySecurityCheck const):

Source/WebCore:

Test: http/tests/security/cross-frame-access-object-put-optimization.html

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::doPutPropertySecurityCheck):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::doPutPropertySecurityCheck):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

LayoutTests:

  • http/tests/security/cross-frame-access-object-put-optimization-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-put-optimization.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-put-optimization-test.html: Added.
6:02 PM Changeset in webkit [248493] by sbarati@apple.com
  • 17 edits in trunk/Source/WebCore

When I did the devirtualization of the AST in r248488, I needed to
update the various type checks under the Type class hierarchy
operate on Type itself, since we now downcast straight from Type
instead of UnnamedType, ResolvableType, and NamedType.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:
  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLResolvableType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:
  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:
  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:
5:56 PM Changeset in webkit [248492] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Possible non-thread safe usage of RefCounted in ~VideoFullscreenControllerContext()
https://bugs.webkit.org/show_bug.cgi?id=200599

Reviewed by Geoffrey Garen.

WebVideoFullscreenControllerAVKit's m_playbackModel & m_fullscreenModel data members are
WebThread objects so we need to make sure we grab the WebThread lock before dereferencing
them in the WebVideoFullscreenControllerAVKit destructor, when destroyed on the UIThread.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):

5:27 PM Changeset in webkit [248491] by ajuma@chromium.org
  • 12 edits
    16 adds in trunk

Don't allow cross-origin iframes to autofocus
https://bugs.webkit.org/show_bug.cgi?id=200515
<rdar://problem/54092988>

Reviewed by Ryosuke Niwa.

Source/WebCore:

According to Step 6 in the WhatWG Spec (https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofocusing-a-form-control:-the-autofocus-attribute),
the 'autofocus' attribute shouldn't work for cross-origin iframes.

This change is based on the Blink change (patch by <mustaq@chromium.org>):
<https://chromium-review.googlesource.com/c/chromium/src/+/1593026>

Also disallow cross-origin iframes from focusing programmatically without ever having
had any user interaction.

  • dom/Element.cpp: Check if an invalid frame is trying to grab the focus.

(WebCore::Element::focus):

  • html/HTMLFormControlElement.cpp: Check if the focus is moving to an invalid frame.

(WebCore::shouldAutofocus):

  • page/DOMWindow.cpp: Check if an invalid frame is trying to grab the focus.

(WebCore::DOMWindow::focus):

Tools:

Make WebKit.FocusedFrameAfterCrash use same-origin iframes instead
of cross-origin iframes, since it depends on focusing one of the
frames.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/many-same-origin-iframes.html: Added.

LayoutTests:

Add test coverage, and simulate user interaction in existing tests
that require focusing a cross-origin frame.

  • http/tests/security/clipboard/resources/copy-html.html:
  • http/tests/security/clipboard/resources/copy-mso-list.html:
  • http/tests/security/clipboard/resources/copy-url.html:
  • http/wpt/html/interaction/focus/no-cross-origin-element-focus-expected.txt: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-element-focus.html: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-window-focus-expected.txt: Added.
  • http/wpt/html/interaction/focus/no-cross-origin-window-focus.html: Added.
  • http/wpt/html/interaction/focus/resources/child-focus-element.html: Added.
  • http/wpt/html/interaction/focus/resources/child-focus-window.html: Added.
  • http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub-expected.txt: Added.
  • http/wpt/html/semantics/forms/autofocus/no-cross-origin-autofocus.sub.html: Added.
  • http/wpt/html/semantics/forms/autofocus/resources/child-autofocus.html: Added.
  • http/wpt/webauthn/resources/last-layer-frame.https.html:
4:55 PM Changeset in webkit [248490] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r248480): Sources: the Pause Reason section takes the entire vertical space when there are few breakpoints/resources
https://bugs.webkit.org/show_bug.cgi?id=200597

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .pause-reason-container): Deleted.
Don't flex-grow or flex-shrink the Pause Reason section so it always displays its full
content. The rest of the sections can grow/shrink as needed.

4:52 PM Changeset in webkit [248489] by Keith Rollin
  • 2 edits in trunk/Source/WebKitLegacy

Fix WebKitLegacy's post-process-header-rule script to support paths with spaces in them
https://bugs.webkit.org/show_bug.cgi?id=200595
<rdar://problem/54045608>

Reviewed by Darin Adler.

A number of scripts were added to WebKit, JavaScriptCore, and
WebKitLegacy to support XCBuild's new facility for copying and
modifying files in one atomic step. The first two are OK, but
WebKitLegacy's script (post-process-header-rule) references a file via
a variable named "header", and does so without quoting the variable's
value. When the header's path contains spaces -- as can happen when
building Safari Technology Preview -- the script breaks. Fix this by
adding quoting.

  • scripts/postprocess-header-rule:
4:30 PM Changeset in webkit [248488] by sbarati@apple.com
  • 72 edits
    1 copy
    3 adds in trunk/Source

[WHLSL] Devirtualize the AST
https://bugs.webkit.org/show_bug.cgi?id=200522

Reviewed by Robin Morisset.

Source/WebCore:

This patch devirtualizes the AST for Type, Expression, and Statement.
We now have an enum which represents all the concrete types in the
three hierarchies. Doing dynamic dispatch is implemented as a switch
on that type enum.

The interesting part of this patch is how to handle destruction. We do
this by defining a custom deleter for all nodes in the AST. This ensures
that when they're used inside UniqueRef, unique_ptr, Ref, and RefPtr,
we do dynamic dispatch when we delete the object. This allows each base
class to define a "destroy" method which does dynamic dispatch on type
and calls the appropriate delete. We also mark all non-concrete nodes
in all type hierarchies with a protected destructor, which ensures it's
never called except from within the concrete child classes. We allow
all concrete classes to have public destructors, as it's valid for
their destructors to be called explicitly since there is no need for
dynamic dispatch in such scenarios. All concrete classes are also marked
as final.

This is a 3ms speedup on compute_boids, which is about a 10% improvement
in the WHLSL compiler.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h:

(WebCore::WHLSL::AST::AssignmentExpression::AssignmentExpression): Deleted.
(WebCore::WHLSL::AST::AssignmentExpression::left): Deleted.
(WebCore::WHLSL::AST::AssignmentExpression::right): Deleted.
(WebCore::WHLSL::AST::AssignmentExpression::takeRight): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h:

(WebCore::WHLSL::AST::Block::Block): Deleted.
(WebCore::WHLSL::AST::Block::statements): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h:

(WebCore::WHLSL::AST::BooleanLiteral::BooleanLiteral): Deleted.
(WebCore::WHLSL::AST::BooleanLiteral::value const): Deleted.
(WebCore::WHLSL::AST::BooleanLiteral::clone const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h:

(WebCore::WHLSL::AST::Break::Break): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:

(WebCore::WHLSL::AST::CallExpression::CallExpression): Deleted.
(WebCore::WHLSL::AST::CallExpression::arguments): Deleted.
(WebCore::WHLSL::AST::CallExpression::name): Deleted.
(WebCore::WHLSL::AST::CallExpression::setCastData): Deleted.
(WebCore::WHLSL::AST::CallExpression::isCast): Deleted.
(WebCore::WHLSL::AST::CallExpression::castReturnType): Deleted.
(WebCore::WHLSL::AST::CallExpression::function): Deleted.
(WebCore::WHLSL::AST::CallExpression::setFunction): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h:

(WebCore::WHLSL::AST::CommaExpression::CommaExpression): Deleted.
(WebCore::WHLSL::AST::CommaExpression::list): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLConstantExpression.h:

(WebCore::WHLSL::AST::ConstantExpression::ConstantExpression): Deleted.
(WebCore::WHLSL::AST::ConstantExpression::integerLiteral): Deleted.
(WebCore::WHLSL::AST::ConstantExpression::visit): Deleted.
(WebCore::WHLSL::AST::ConstantExpression::visit const): Deleted.
(WebCore::WHLSL::AST::ConstantExpression::clone const): Deleted.
(WebCore::WHLSL::AST::ConstantExpression::matches const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h:

(WebCore::WHLSL::AST::Continue::Continue): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLDefaultDelete.h: Added.
  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h:

(WebCore::WHLSL::AST::DereferenceExpression::DereferenceExpression): Deleted.
(WebCore::WHLSL::AST::DereferenceExpression::pointer): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h:

(WebCore::WHLSL::AST::DoWhileLoop::DoWhileLoop): Deleted.
(WebCore::WHLSL::AST::DoWhileLoop::body): Deleted.
(WebCore::WHLSL::AST::DoWhileLoop::conditional): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:

(WebCore::WHLSL::AST::DotExpression::DotExpression): Deleted.
(WebCore::WHLSL::AST::DotExpression::fieldName): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h:

(WebCore::WHLSL::AST::EffectfulExpressionStatement::EffectfulExpressionStatement): Deleted.
(WebCore::WHLSL::AST::EffectfulExpressionStatement::effectfulExpression): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:

(WebCore::WHLSL::AST::EnumerationDefinition::EnumerationDefinition): Deleted.
(WebCore::WHLSL::AST::EnumerationDefinition::type): Deleted.
(WebCore::WHLSL::AST::EnumerationDefinition::add): Deleted.
(WebCore::WHLSL::AST::EnumerationDefinition::memberByName): Deleted.
(WebCore::WHLSL::AST::EnumerationDefinition::enumerationMembers): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:

(WebCore::WHLSL::AST::EnumerationMemberLiteral::EnumerationMemberLiteral): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::wrap): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::left const): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::right const): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::clone const): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::enumerationDefinition): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::enumerationDefinition const): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::enumerationMember): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::enumerationMember const): Deleted.
(WebCore::WHLSL::AST::EnumerationMemberLiteral::setEnumerationMember): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.cpp: Added.

(WebCore::WHLSL::AST::Expression::destroy):
(WebCore::WHLSL::AST::PropertyAccessExpression::getterFunctionName const):
(WebCore::WHLSL::AST::PropertyAccessExpression::setterFunctionName const):
(WebCore::WHLSL::AST::PropertyAccessExpression::anderFunctionName const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:

(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::kind const):
(WebCore::WHLSL::AST::Expression::isAssignmentExpression const):
(WebCore::WHLSL::AST::Expression::isBooleanLiteral const):
(WebCore::WHLSL::AST::Expression::isCallExpression const):
(WebCore::WHLSL::AST::Expression::isCommaExpression const):
(WebCore::WHLSL::AST::Expression::isDereferenceExpression const):
(WebCore::WHLSL::AST::Expression::isDotExpression const):
(WebCore::WHLSL::AST::Expression::isGlobalVariableReference const):
(WebCore::WHLSL::AST::Expression::isFloatLiteral const):
(WebCore::WHLSL::AST::Expression::isIndexExpression const):
(WebCore::WHLSL::AST::Expression::isIntegerLiteral const):
(WebCore::WHLSL::AST::Expression::isLogicalExpression const):
(WebCore::WHLSL::AST::Expression::isLogicalNotExpression const):
(WebCore::WHLSL::AST::Expression::isMakeArrayReferenceExpression const):
(WebCore::WHLSL::AST::Expression::isMakePointerExpression const):
(WebCore::WHLSL::AST::Expression::isNullLiteral const):
(WebCore::WHLSL::AST::Expression::isPropertyAccessExpression const):
(WebCore::WHLSL::AST::Expression::isReadModifyWriteExpression const):
(WebCore::WHLSL::AST::Expression::isTernaryExpression const):
(WebCore::WHLSL::AST::Expression::isUnsignedIntegerLiteral const):
(WebCore::WHLSL::AST::Expression::isVariableReference const):
(WebCore::WHLSL::AST::Expression::isEnumerationMemberLiteral const):
(WebCore::WHLSL::AST::Expression::codeLocation const):
(WebCore::WHLSL::AST::Expression::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h:

(WebCore::WHLSL::AST::Fallthrough::Fallthrough): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h:

(WebCore::WHLSL::AST::FloatLiteral::FloatLiteral): Deleted.
(WebCore::WHLSL::AST::FloatLiteral::type): Deleted.
(WebCore::WHLSL::AST::FloatLiteral::value const): Deleted.
(WebCore::WHLSL::AST::FloatLiteral::clone const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp:

(WebCore::WHLSL::AST::FloatLiteralType::FloatLiteralType):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:

(WebCore::WHLSL::AST::FloatLiteralType::value const): Deleted.
(WebCore::WHLSL::AST::FloatLiteralType::preferredType): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop): Deleted.
(WebCore::WHLSL::AST::ForLoop::~ForLoop): Deleted.
(WebCore::WHLSL::AST::ForLoop::initialization): Deleted.
(WebCore::WHLSL::AST::ForLoop::condition): Deleted.
(WebCore::WHLSL::AST::ForLoop::increment): Deleted.
(WebCore::WHLSL::AST::ForLoop::body): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h:

(WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference): Deleted.
(WebCore::WHLSL::AST::GlobalVariableReference::structField): Deleted.
(WebCore::WHLSL::AST::GlobalVariableReference::base): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement): Deleted.
(WebCore::WHLSL::AST::IfStatement::conditional): Deleted.
(WebCore::WHLSL::AST::IfStatement::body): Deleted.
(WebCore::WHLSL::AST::IfStatement::elseBody): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

(WebCore::WHLSL::AST::IndexExpression::IndexExpression): Deleted.
(WebCore::WHLSL::AST::IndexExpression::indexExpression): Deleted.
(WebCore::WHLSL::AST::IndexExpression::takeIndex): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h:

(WebCore::WHLSL::AST::IntegerLiteral::IntegerLiteral): Deleted.
(WebCore::WHLSL::AST::IntegerLiteral::type): Deleted.
(WebCore::WHLSL::AST::IntegerLiteral::value const): Deleted.
(WebCore::WHLSL::AST::IntegerLiteral::clone const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::IntegerLiteralType::IntegerLiteralType):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:

(WebCore::WHLSL::AST::IntegerLiteralType::value const): Deleted.
(WebCore::WHLSL::AST::IntegerLiteralType::preferredType): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h:

(WebCore::WHLSL::AST::LogicalExpression::LogicalExpression): Deleted.
(WebCore::WHLSL::AST::LogicalExpression::type const): Deleted.
(WebCore::WHLSL::AST::LogicalExpression::left): Deleted.
(WebCore::WHLSL::AST::LogicalExpression::right): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h:

(WebCore::WHLSL::AST::LogicalNotExpression::LogicalNotExpression): Deleted.
(WebCore::WHLSL::AST::LogicalNotExpression::operand): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:

(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression): Deleted.
(WebCore::WHLSL::AST::MakeArrayReferenceExpression::leftValue): Deleted.
(WebCore::WHLSL::AST::MakeArrayReferenceExpression::mightEscape const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:

(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression): Deleted.
(WebCore::WHLSL::AST::MakePointerExpression::leftValue): Deleted.
(WebCore::WHLSL::AST::MakePointerExpression::mightEscape const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::NamedType):
(WebCore::WHLSL::AST::NamedType::unifyNodeImpl):
(): Deleted.
(WebCore::WHLSL::AST::NamedType::isTypeDefinition const): Deleted.
(WebCore::WHLSL::AST::NamedType::isStructureDefinition const): Deleted.
(WebCore::WHLSL::AST::NamedType::isEnumerationDefinition const): Deleted.
(WebCore::WHLSL::AST::NamedType::isNativeTypeDeclaration const): Deleted.
(WebCore::WHLSL::AST::NamedType::unifyNode const): Deleted.
(WebCore::WHLSL::AST::NamedType::unifyNode): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:

(WebCore::WHLSL::AST::NativeTypeDeclaration::NativeTypeDeclaration): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::typeArguments): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isInt const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isNumber const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isFloating const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isAtomic const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isVector const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isMatrix const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isOpaqueType const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isTexture const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isTextureArray const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isDepthTexture const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isWritableTexture const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::textureDimension const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::isSigned const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::std::function<bool const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::std::function<int64_t const): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::iterateAllValues): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsInt): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsNumber): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsFloating): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsAtomic): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsVector): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsMatrix): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsOpaqueType): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsTexture): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsTextureArray): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsDepthTexture): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsWritableTexture): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setTextureDimension): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIsSigned): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setCanRepresentInteger): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setCanRepresentUnsignedInteger): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setCanRepresentFloat): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setSuccessor): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setFormatValueFromInteger): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setFormatValueFromUnsignedInteger): Deleted.
(WebCore::WHLSL::AST::NativeTypeDeclaration::setIterateAllValues): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h:

(WebCore::WHLSL::AST::NullLiteral::NullLiteral): Deleted.
(WebCore::WHLSL::AST::NullLiteral::type): Deleted.
(WebCore::WHLSL::AST::NullLiteral::clone const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:

(WebCore::WHLSL::AST::PropertyAccessExpression::PropertyAccessExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::create): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::setNewValueExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::setResultExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::oldVariableReference): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::newVariableReference): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::leftValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::oldValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::newValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::newValueExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::resultExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeLeftValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeOldValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeNewValue): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeNewValueExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::takeResultExpression): Deleted.
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:

(WebCore::WHLSL::AST::ReferenceType::ReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLResolvableType.h:

(WebCore::WHLSL::AST::ResolvableType::ResolvableType):
(): Deleted.
(WebCore::WHLSL::AST::ResolvableType::isFloatLiteralType const): Deleted.
(WebCore::WHLSL::AST::ResolvableType::isIntegerLiteralType const): Deleted.
(WebCore::WHLSL::AST::ResolvableType::isNullLiteralType const): Deleted.
(WebCore::WHLSL::AST::ResolvableType::isUnsignedIntegerLiteralType const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return): Deleted.
(WebCore::WHLSL::AST::Return::value): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.cpp: Added.

(WebCore::WHLSL::AST::Statement::destroy):

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h:

(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::kind const):
(WebCore::WHLSL::AST::Statement::isBlock const):
(WebCore::WHLSL::AST::Statement::isBreak const):
(WebCore::WHLSL::AST::Statement::isContinue const):
(WebCore::WHLSL::AST::Statement::isDoWhileLoop const):
(WebCore::WHLSL::AST::Statement::isEffectfulExpressionStatement const):
(WebCore::WHLSL::AST::Statement::isFallthrough const):
(WebCore::WHLSL::AST::Statement::isForLoop const):
(WebCore::WHLSL::AST::Statement::isIfStatement const):
(WebCore::WHLSL::AST::Statement::isReturn const):
(WebCore::WHLSL::AST::Statement::isStatementList const):
(WebCore::WHLSL::AST::Statement::isSwitchCase const):
(WebCore::WHLSL::AST::Statement::isSwitchStatement const):
(WebCore::WHLSL::AST::Statement::isVariableDeclarationsStatement const):
(WebCore::WHLSL::AST::Statement::isWhileLoop const):
(WebCore::WHLSL::AST::Statement::codeLocation const):
(WebCore::WHLSL::AST::Statement::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h:

(WebCore::WHLSL::AST::StatementList::StatementList): Deleted.
(WebCore::WHLSL::AST::StatementList::statements): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:

(WebCore::WHLSL::AST::StructureDefinition::StructureDefinition): Deleted.
(WebCore::WHLSL::AST::StructureDefinition::structureElements): Deleted.
(WebCore::WHLSL::AST::StructureDefinition::find): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:

(WebCore::WHLSL::AST::StructureElement::StructureElement): Deleted.
(WebCore::WHLSL::AST::StructureElement::codeLocation const): Deleted.
(WebCore::WHLSL::AST::StructureElement::type): Deleted.
(WebCore::WHLSL::AST::StructureElement::name): Deleted.
(WebCore::WHLSL::AST::StructureElement::semantic): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h:

(WebCore::WHLSL::AST::SwitchCase::SwitchCase): Deleted.
(WebCore::WHLSL::AST::SwitchCase::value): Deleted.
(WebCore::WHLSL::AST::SwitchCase::block): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h:

(WebCore::WHLSL::AST::SwitchStatement::SwitchStatement): Deleted.
(WebCore::WHLSL::AST::SwitchStatement::value): Deleted.
(WebCore::WHLSL::AST::SwitchStatement::switchCases): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h:

(WebCore::WHLSL::AST::TernaryExpression::TernaryExpression): Deleted.
(WebCore::WHLSL::AST::TernaryExpression::predicate): Deleted.
(WebCore::WHLSL::AST::TernaryExpression::bodyExpression): Deleted.
(WebCore::WHLSL::AST::TernaryExpression::elseExpression): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLType.cpp: Added.

(WebCore::WHLSL::AST::Type::destroy):
(WebCore::WHLSL::AST::Type::unifyNode):
(WebCore::WHLSL::AST::ResolvableType::canResolve const):
(WebCore::WHLSL::AST::ResolvableType::conversionCost const):
(WebCore::WHLSL::AST::UnnamedType::toString const):

  • Modules/webgpu/WHLSL/AST/WHLSLType.h:

(WebCore::WHLSL::AST::Type::Type):
(WebCore::WHLSL::AST::Type::kind const):
(WebCore::WHLSL::AST::Type::isUnnamedType const):
(WebCore::WHLSL::AST::Type::isNamedType const):
(WebCore::WHLSL::AST::Type::isResolvableType const):
(WebCore::WHLSL::AST::Type::isTypeReference const):
(WebCore::WHLSL::AST::Type::isPointerType const):
(WebCore::WHLSL::AST::Type::isArrayReferenceType const):
(WebCore::WHLSL::AST::Type::isArrayType const):
(WebCore::WHLSL::AST::Type::isReferenceType const):
(WebCore::WHLSL::AST::Type::isTypeDefinition const):
(WebCore::WHLSL::AST::Type::isStructureDefinition const):
(WebCore::WHLSL::AST::Type::isEnumerationDefinition const):
(WebCore::WHLSL::AST::Type::isNativeTypeDeclaration const):
(WebCore::WHLSL::AST::Type::isFloatLiteralType const):
(WebCore::WHLSL::AST::Type::isIntegerLiteralType const):
(WebCore::WHLSL::AST::Type::isNullLiteralType const):
(WebCore::WHLSL::AST::Type::isUnsignedIntegerLiteralType const):
(WebCore::WHLSL::AST::Type::unifyNode const):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:

(WebCore::WHLSL::AST::TypeDefinition::TypeDefinition): Deleted.
(WebCore::WHLSL::AST::TypeDefinition::type): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.cpp:

(WebCore::WHLSL::AST::UnnamedType::hash const):
(WebCore::WHLSL::AST::UnnamedType::operator== const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

(WebCore::WHLSL::AST::UnnamedType::UnnamedType):
(WebCore::WHLSL::AST::UnnamedType::unifyNodeImpl):
(): Deleted.
(WebCore::WHLSL::AST::UnnamedType::kind const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::isTypeReference const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::isPointerType const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::isArrayReferenceType const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::isArrayType const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::isReferenceType const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::unifyNode const): Deleted.
(WebCore::WHLSL::AST::UnnamedType::unifyNode): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteral::UnsignedIntegerLiteral): Deleted.
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::type): Deleted.
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::value const): Deleted.
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::clone const): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::UnsignedIntegerLiteralType):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::value const): Deleted.
(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::preferredType): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h:

(WebCore::WHLSL::AST::VariableDeclarationsStatement::VariableDeclarationsStatement): Deleted.
(WebCore::WHLSL::AST::VariableDeclarationsStatement::variableDeclarations): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:

(WebCore::WHLSL::AST::VariableReference::VariableReference): Deleted.
(WebCore::WHLSL::AST::VariableReference::wrap): Deleted.
(WebCore::WHLSL::AST::VariableReference::name): Deleted.
(WebCore::WHLSL::AST::VariableReference::variable): Deleted.
(WebCore::WHLSL::AST::VariableReference::setVariable): Deleted.

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h:

(WebCore::WHLSL::AST::WhileLoop::WhileLoop): Deleted.
(WebCore::WHLSL::AST::WhileLoop::conditional): Deleted.
(WebCore::WHLSL::AST::WhileLoop::body): Deleted.

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::BaseTypeNameNode::isPointerTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayReferenceTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayTypeNameNode const):
(WebCore::WHLSL::Metal::TypeNamer::createNameNode):
(WebCore::WHLSL::Metal::parent):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseSuffixOperator):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossiblePrefix):

  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp:

(WebCore::WHLSL::Visitor::visit):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • workers/WorkerScriptLoader.h:

Source/WTF:

Make RefCounted use std::default_delete instead of explicitly calling delete.
This allows uses of RefCounted to define their own custom deleter.

  • wtf/RefCounted.h:

(WTF::RefCounted::deref const):

  • wtf/UniqueRef.h:

(WTF::UniqueRef::UniqueRef):

4:06 PM Changeset in webkit [248487] by Wenson Hsieh
  • 5 edits in trunk

[iOS 13] Google Docs/Slides/Sheets: paste often doesn't work and sometimes produces an error
https://bugs.webkit.org/show_bug.cgi?id=200591
<rdar://problem/54102238>

Reviewed by Ryosuke Niwa and Tim Horton.

Source/WebKit:

Adopts UIKit SPI to avoid incrementing the general pasteboard's change count whenever an editable element is
focused. This is due to how, in iOS 13, UIKit temporarily writes an image to the pasteboard when showing the
keyboard, to determine whether or not to show the Memojis in the input view.

This causes UIPasteboard's changeCount to increment twice due to adding and then removing the image, which means
that the changeCount sanity checks in the web process will race against the pasteboard gaining and then losing
this temporary image.

Instead, the new -supportsImagePaste SPI may be used to short-circuit this step, and avoid updating the
changeCount when UIKeyboardImpl's delegate changes.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView supportsImagePaste]):

Tools:

Add a new API test to exercise -supportsImagePaste.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
3:58 PM Changeset in webkit [248486] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Remove unused Connection::sendWithReply
https://bugs.webkit.org/show_bug.cgi?id=200590

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-09
Reviewed by Chris Dumez.

This was attempted in r245151, but rolled out in r245164 because my SecItemShim code didn't work well on non-main threads.
Chris found a better solution for SecItemShim in r248014, making this unused code. Let's remove it.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::invalidate):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendMessageWithReply): Deleted.

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithReply): Deleted.

3:12 PM Changeset in webkit [248485] by Devin Rousso
  • 7 edits
    2 moves in trunk/Source/WebInspectorUI

REGRESSION (Safari 6): Web Inspector: JSON may not be pretty printed if served as text/html
https://bugs.webkit.org/show_bug.cgi?id=122898
<rdar://problem/15241419>

Reviewed by Joseph Pecoraro.

Check the request/response data to see if it's JSON parsable. If so, allow the user to elect
to view the request/response as a JSON preview instead of raw (or pretty printed) text.

Prefer the JSON view wherever possible.

  • UserInterface/Views/ResourceClusterContentView.js:

(WI.ResourceClusterContentView):
(WI.ResourceClusterContentView.prototype.get requestContentView):
(WI.ResourceClusterContentView.prototype.get customRequestContentView): Added.
(WI.ResourceClusterContentView.prototype.get customResponseContentView):
(WI.ResourceClusterContentView.prototype.get selectionPathComponents):
(WI.ResourceClusterContentView.prototype.showRequest):
(WI.ResourceClusterContentView.prototype._canShowCustomRequestContentView): Added.
(WI.ResourceClusterContentView.prototype._canShowCustomResponseContentView):
(WI.ResourceClusterContentView.prototype._contentViewForResourceType):
(WI.ResourceClusterContentView.prototype._pathComponentForContentView):
(WI.ResourceClusterContentView.prototype._identifierForContentView):
(WI.ResourceClusterContentView.prototype._showContentViewForIdentifier):
(WI.ResourceClusterContentView.prototype._canUseJSONContentViewForContent): Added.
(WI.ResourceClusterContentView.prototype._tryEnableCustomRequestContentView): Added.
(WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView):
(WI.ResourceClusterContentView.prototype.saveToCookie): Deleted.
(WI.ResourceClusterContentView.prototype._customContentViewConstructorForResource): Deleted.
Since the current view is already saved in a WI.Setting, there's no need to save that
state to a cookie, as it'll be restored elsewhere.

  • UserInterface/Base/Main.js:

(WI.showResourceRequest):

  • UserInterface/Main.html:
  • UserInterface/Views/JSONContentView.js: Added.

(WI.JSONContentView):
(WI.JSONContentView.prototype.initialLayout):
(WI.JSONContentView.prototype.attached):
(WI.JSONContentView.prototype.closed):

  • UserInterface/Views/JSONContentView.css: Added.

(.content-view.json):

  • Source/WebInspectorUI/UserInterface/Views/JSONResourceContentView.js: Deleted.
  • Source/WebInspectorUI/UserInterface/Views/JSONResourceContentView.css: Deleted.

Create a more generic content view that shows a preview for the given JSON parsable string.

  • UserInterface/Base/Utilities.js:

(String.prototype.isJSON): Added.

  • UserInterface/Views/WebSocketDataGridNode.js:

(WI.WebSocketDataGridNode.prototype.appendContextMenuItems):
Utility function for checking if a string is JSON parsable.

  • Localizations/en.lproj/localizedStrings.js:
3:09 PM Changeset in webkit [248484] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

3:07 PM Changeset in webkit [248483] by Alan Coon
  • 1 copy in tags/Safari-608.2.4

Tag Safari-608.2.4.

3:06 PM Changeset in webkit [248482] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source

Cherry-pick r248462. rdar://problem/54144119

[Win] Fix internal build
https://bugs.webkit.org/show_bug.cgi?id=200519

Reviewed by Alex Christensen.

Source/JavaScriptCore:

The script 'generate-js-builtins.py' cannot be found when building WebCore. Copy the JavaScriptCore Scripts
folder after building JSC.

Source/WebKitLegacy/win:

Switch to the String::wideCharacers method, since its return type is compatible with the Win32 api.

  • WebDownloadCFNet.cpp: (WebDownload::didFinish):

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

3:01 PM Changeset in webkit [248481] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

[iOS WK2] Remove context menu hints on navigation
https://bugs.webkit.org/show_bug.cgi?id=200588
rdar://problem/54061796

Reviewed by Tim Horton.

Make sure the context menu hint doesn't linger across navigations by hosting it in its
own container view (shared with drag previews), and hiding that view on navigation (unparenting
may have bad consequences). We remove the view when the animation ends.

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

(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView containerViewForTargetedPreviews]):
(-[WKContentView _hideContextMenu]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

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

Web Inspector: Sources: increase the vertical space allocated to the call stack when paused
https://bugs.webkit.org/show_bug.cgi?id=200236

Reviewed by Joseph Pecoraro.

Rather than uniformly constrict the height of the Call Stack and Breakpoints sections, they
should "flex" based on their importance, which can likely be derived from the current state.
This way, it's possible to see information from each section at the same time, but still
have enough space in each section to be able to do something useful.

When paused, the most useful data is the call stack, so give the Call Stack section the most
vertical space (the Pause Reason is also important, but it usually needs very little space).

When not paused, it's likely that the user cares more about the resources with breakpoints
than those without, so favor the Breakpoints section.

Each section will only expand to fit it's maximum content height.

If the inspector window becomes too short, remove the "flex" entirely and have all the
content be part of a single scroll area instead.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline):
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed):
(WI.SourcesNavigationSidebarPanel.prototype._handleCallStackElementAddedOrRemoved): Deleted.

  • UserInterface/Views/SourcesNavigationSidebarPanel.css:

(.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Added.
(.sidebar > .panel.navigation.sources > .content .details-section): Added.
(.sidebar > .panel.navigation.sources > .content .details-section.collapsed > .header > .options, .sidebar > .panel.navigation.sources > .content .details-section:not(.collapsed) > .content, .sidebar > .panel.navigation.sources > .content .details-section:not(.collapsed) > .content > .group): Added.
(.sidebar > .panel.navigation.sources > .content > .breakpoints-container .create-breakpoint): Added.
(.sidebar > .panel.navigation.sources > .content > .navigation-bar): Added.
(@media (min-height: 650px)): Added.
(.sidebar > .panel.navigation.sources > .content > .pause-reason-container): Added.
(.sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources)): Added.
(.sidebar > .panel.navigation.sources > .content > .call-stack-container): Added.
(.sidebar > .panel.navigation.sources > .content > .breakpoints-container): Added.
(.sidebar > .panel.navigation.sources > .content > .resources): Added.
(.sidebar > .panel.navigation.sources > .content > .breakpoints-container .tree-outline .item.event-target-window .icon): Added.
(.sidebar > .panel.navigation.sources > .content > .details-section): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoints).collapsed > .header > .options,): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.pause-reason, .call-stack, .breakpoints) > .content,): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints) > .content): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.call-stack): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .create-breakpoint): Deleted.
(@media (min-height: 600px)): Deleted.
(.sidebar > .panel.navigation.sources > .content > .pause-reason): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content,): Deleted.
(.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .tree-outline .item.event-target-window .icon): Deleted.
Wrap the Pause Reason, Call Stack, and Breakpoints WI.DetailsSections in a container
element so that the styling of the sticky header doesn't get affected by the clamping of the
container's height.

  • UserInterface/Views/DetailsSection.css:

(.details-section):
(.details-section > .header):
Create CSS variables for styles that will be overridden by the Sources navigation sidebar.

2:57 PM Changeset in webkit [248479] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] fast/mediastream/RTCPeerConnection-add-removeTrack.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=199018

This is fixed by the patch provided in https://bugs.webkit.org/show_bug.cgi?id=194326

Unreviewed gardening patch

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-08-09

  • platform/gtk/TestExpectations:
2:46 PM Changeset in webkit [248478] by Alan Coon
  • 1 copy in tags/Safari-608.1.42.1

Tag Safari-608.1.42.1.

2:44 PM Changeset in webkit [248477] by Alan Coon
  • 7 edits in branches/safari-608.1-branch/Source

Versioning.

2:43 PM Changeset in webkit [248476] by Alan Coon
  • 1 copy in tags/Safari-608.1.46

Tag Safari-608.1.46.

2:18 PM Changeset in webkit [248475] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Follow-up commit to r248474 as webkit-patch did not commit the svn property changes.
[ews-build] Set svn:ignore to various EWS Buildbot files
https://bugs.webkit.org/show_bug.cgi?id=200581

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build: Added property svn:ignore.
2:15 PM Changeset in webkit [248474] by aakash_jain@apple.com
  • 1 edit in trunk/Tools/ChangeLog

[ews-build] Set svn:ignore to various EWS Buildbot files
https://bugs.webkit.org/show_bug.cgi?id=200581

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build: Added property svn:ignore.
1:55 PM Changeset in webkit [248473] by youenn@apple.com
  • 8 edits in trunk/Source/WebCore

Pass a ScriptExecutionContext as input to register/unregister URLRegistry routines
https://bugs.webkit.org/show_bug.cgi?id=200571

Reviewed by Darin Adler.

Passing a ScriptExecutionContext to register/unregister routines will allow
to have session ID based handling for blobs, in particular to use session partitioned blob registries.
No change of behavior.

  • Modules/mediasource/MediaSourceRegistry.cpp:

(WebCore::MediaSourceRegistry::registerURL):
(WebCore::MediaSourceRegistry::unregisterURL):

  • Modules/mediasource/MediaSourceRegistry.h:
  • fileapi/Blob.cpp:

(WebCore::BlobURLRegistry::registerURL):
(WebCore::BlobURLRegistry::unregisterURL):

  • html/DOMURL.cpp:

(WebCore::DOMURL::createPublicURL):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::registerURL):
(WebCore::PublicURLManager::revoke):
(WebCore::PublicURLManager::stop):

  • html/PublicURLManager.h:
  • html/URLRegistry.h:
1:33 PM Changeset in webkit [248472] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/win

[Win] Remove compiler workaround for VS2013
https://bugs.webkit.org/show_bug.cgi?id=200582

Reviewed by Don Olmstead.

A VS2013 compiler workaround can be removed now.

  • WebKitQuartzCoreAdditions/API/WebKitQuartzCoreAdditions.cpp:

(DllMain):

1:20 PM Changeset in webkit [248471] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Disable CSSOM View Scrolling API for IMDb iOS app
https://bugs.webkit.org/show_bug.cgi?id=200586
<rdar://problem/53645833>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-09
Reviewed by Simon Fraser.

Source/WebCore:

They are calling scrollHeight on the HTML element and it is running new code introduced in r235806
Disable this new feature until they update their app to use the iOS13 SDK.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isIMDb):

Source/WebKit:

Change the CSSOMViewScrollingAPIEnabled default value to be off for the IMDb app's WKWebViews.
I manually verified this is effective in those WKWebViews but no other WKWebViews and that it fixes the radar.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCSSOMViewScrollingAPIEnabled):

  • Shared/WebPreferencesDefaultValues.h:
12:51 PM Changeset in webkit [248470] by aakash_jain@apple.com
  • 1 edit
    1 add in trunk/Tools

[ews] Add buildbot.tac to repository
https://bugs.webkit.org/show_bug.cgi?id=200580

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/buildbot.tac: Added.
12:50 PM Changeset in webkit [248469] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Tapping buttons in Data Detectors lookup previews doesn't work
https://bugs.webkit.org/show_bug.cgi?id=200579
<rdar://problem/54056519>

Reviewed by Megan Gardner.

Source/WebCore/PAL:

  • pal/spi/ios/DataDetectorsUISPI.h:

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _contextMenuInteraction:styleForMenuWithConfiguration:]):
If a Data Detectors context menu wants the action menu style, provide it.

(-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]):
If a Data Detectors context menu provides a view controller to present
on context menu commit, present it. We present on top of the same view
controller that is currently presenting the context menu, but modally
instead of inside the context menu.

If a Data Detectors context menu instead provides a URL to launch on
context menu commit, call openURL.

In both cases, change the commit style to pop, since we're committing
instead of dismissing.

10:46 AM Changeset in webkit [248468] by russell_e@apple.com
  • 3 edits in trunk/LayoutTests

Correcting Expectation Typo from r248388.
rdar://54049321

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:
9:58 AM Changeset in webkit [248467] by youenn@apple.com
  • 9 edits
    2 deletes in trunk/Source/WebCore

Remove MediaStreamRegistry
https://bugs.webkit.org/show_bug.cgi?id=200570

Reviewed by Eric Carlson.

MediaStream cannot be registered as an URL by JavaScript.
Remove MediaStreamRegistry and the 'src' loading specific handling in HTMLMediaElement.
Implement ending of capture track by directly handling MediaStreamTrack which is more accurate.
No change of behavior.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::~MediaStream):
(WebCore::MediaStream::stop):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamRegistry.cpp: Removed.
  • Modules/mediastream/MediaStreamRegistry.h: Removed.
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::endCapture):

  • Modules/mediastream/MediaStreamTrack.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::stopMediaCapture):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource):

8:53 AM Changeset in webkit [248466] by Kocsen Chung
  • 16 edits in branches/safari-608.1-branch/Source

Cherry-pick r248447. rdar://problem/54109873

Add to InteractionInformationAtPosition information about whether the element is in a subscrollable region
https://bugs.webkit.org/show_bug.cgi?id=200374
rdar://problem/54095519

Reviewed by Tim Horton.
Source/WebCore:

Add to InteractionInformationAtPosition a ScrollingNodeID which represents the enclosing scrolling
node that affects the targeted element's position. We use this to find a UIScrollView in the UI process.

The entrypoint to finding the enclosing scrolling node is ScrollingCoordinator::scrollableContainerNodeID(),
which calls RenderLayerCompositor::asyncScrollableContainerNodeID() to look for a scrolling ancestor in
the current frame, and then looks for an enclosing scrollable frame, or a scrolling ancestor in
the enclosing frame.

There's a bit of subtlety in RenderLayerCompositor::asyncScrollableContainerNodeID() because if you're asking
for the node that scrolls the renderer, if the renderer itself has a layer and is scrollable, you want
its enclosing scroller.

  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::scrollableContainerNodeID const):
  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp: (WebCore::scrollableContainerNodeID const):
  • page/scrolling/ScrollingCoordinator.h:
  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::asyncScrollableContainerNodeID):
  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Add InteractionInformationAtPosition.containerScrollingNodeID and initialize it in elementPositionInformation()
by asking the scrolling coordinator.

Also add a way to get from a ScrollingNodeID to a UIScrollView to RemoteScrollingCoordinatorProxy,
which gets the scrolling node and asks the delegate for the UIView.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: (WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: (WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollView const):
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::elementPositionInformation):

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

7:54 AM Changeset in webkit [248465] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GTK] Add missing spellchecking packages to dependencies script
https://bugs.webkit.org/show_bug.cgi?id=200574

Reviewed by Philippe Normand.

These are needed for the spellchecking test in WebContext API tests.

  • gtk/install-dependencies:
2:36 AM Changeset in webkit [248464] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

[GL][GStreamer] activate wrapped shared context
https://bugs.webkit.org/show_bug.cgi?id=196966

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2019-08-09
Reviewed by Žan Doberšek.

This patch consists in four parts:

1\ When the media player is instantiated, and it is intended to
render textures, it will create a wrapped object of the
application's GL context, and in order to populate the wrapped
object with the GL vtable, the context has to be current. Thus,
this patch makes current the shared WebKit application context,
and populate the wrapped GstGLContext by activating it and filling
in it. Afterwards, the wrapped context is deactivated.

2\ This patch makes GL texture use the RGBA color space, thus the
color transformation is done in GStreamer, and no further color
transformation is required in WebKit.

3\ Since it is not necessary to modify behavior if the decoder is
imxvpudecoder, its identification and label were removed.

4\ As only RGBA is used, the old color conversions when rendering
using Cairo (fallback) were changed to convert the RGBA, as in
GStreamer's format, to ARGB32, as in Cairo format -which depends
on endianness.

No new tests because there is no behavior change.

  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp:

(WebCore::ImageGStreamer::ImageGStreamer): Only convert GStreamer
RGBA to Cairo RGB32.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Removes
the IMX VPU identification.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext):
Intializes the wrapped GL Context.
(WebCore::MediaPlayerPrivateGStreamerBase::updateTextureMapperFlags):
Removes frame's color conversion.
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
Instead of parsing a string, the GstCaps are created manually, and
it is set to appsink, rather than a filtered linking.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

Removes ImxVPU enumeration value.

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:

Adds NoConvert option to texture copier, setting an identity
matrix.
(WebCore::VideoTextureCopierGStreamer::updateColorConversionMatrix):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.h: Adds

NoConvert enumeration value.

12:17 AM Changeset in webkit [248463] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

REGRESSION (iOS 13): united.com web forms do not respond to taps
https://bugs.webkit.org/show_bug.cgi?id=200531

Reviewed by Antti Koivisto and Wenson Hsieh.

The bug is caused by the content change observer detecting “Site Feedback” link at the bottom of
the page (https://www.united.com/ual/en/US/account/enroll/default) constantly getting re-generated
in every frame via requestAnimationFrame when the page is opened with iPhone UA string.
Note that the content re-generation can be reproduced even in Chrome if iPhone UA string is used.

Ignore this constant content change in ContentChangeObserver as a site specific quirk.

In the future, we should make ContentChangeObserver observe the final location of each element
being observed so that we can ignore content that like this which is placed outside the viewport,
and/or far away from where the user tapped.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldIgnoreContentChange const): Added.

  • page/Quirks.h:
  • page/ios/ContentChangeObserver.cpp:

(WebCore::ContentChangeObserver::shouldObserveVisibilityChangeForElement):

Aug 8, 2019:

10:51 PM Changeset in webkit [248462] by pvollan@apple.com
  • 4 edits in trunk/Source

[Win] Fix internal build
https://bugs.webkit.org/show_bug.cgi?id=200519

Reviewed by Alex Christensen.

Source/JavaScriptCore:

The script 'generate-js-builtins.py' cannot be found when building WebCore. Copy the JavaScriptCore Scripts
folder after building JSC.

Source/WebKitLegacy/win:

Switch to the String::wideCharacers method, since its return type is compatible with the Win32 api.

  • WebDownloadCFNet.cpp:

(WebDownload::didFinish):

10:01 PM Changeset in webkit [248461] by Kocsen Chung
  • 5 edits in branches/safari-608.1-branch

Cherry-pick r248039. rdar://problem/54087592

[iOS 13] Safari crashes when closing a tab with a focused element if the unified field has focus
https://bugs.webkit.org/show_bug.cgi?id=200291
<rdar://problem/53717946>

Reviewed by Megan Gardner.

Source/WebKit:

Makes -requestAutocorrectionContextWithCompletionHandler: robust in the case where the web page has been closed,
and there is no Connection object to use when waiting for a sync IPC response.

Test: AutocorrectionTests.RequestAutocorrectionContextAfterClosingPage

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Tools:

Add an API test to exercise the scenario of synchronously requesting the autocorrection context immediately
after closing the web view, while the web view's content view isn't the first responder.

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
  • TestWebKitAPI/ios/UIKitSPI.h:

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

10:01 PM Changeset in webkit [248460] by Kocsen Chung
  • 2 edits in branches/safari-608.1-branch/Source/WebKit

Cherry-pick r248456. rdar://problem/54109878

REGRESSION (52279987): Most of the WKUIDelegate contextMenu delegate methods are not being called
https://bugs.webkit.org/show_bug.cgi?id=200557
<rdar://problem/53717962>

Reviewed by Wenson Hsieh.

UIKit changed the name of delegates recently. We ignored the warning because
it was still calling the old methods. However, it will only do so for applications
authored by Apple, breaking 3rd parties.

The change here is just adopting the new methods in place of the old ones.
It does not change the API that WebKit vends (they still use the older names).

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]): (-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]): (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): (-[WKContentView contextMenuInteractionWillPresent:]): Deleted. (-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): Deleted. (-[WKContentView contextMenuInteractionDidEnd:]): Deleted.

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

10:01 PM Changeset in webkit [248459] by Kocsen Chung
  • 3 edits in branches/safari-608.1-branch/Source/WebKit

Cherry-pick r248455. rdar://problem/54109873

[iOS WK2] Hide previews when an inner overflow or frame scrollview scrolls
https://bugs.webkit.org/show_bug.cgi?id=200552
rdar://problem/54086338

Reviewed by Wenson Hsieh.

Give UITargetedPreview the UIScrollView that the target element is inside of,
so it can clean up if the user starts to scroll that view.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _createTargetedPreviewIfPossible]):

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

10:01 PM Changeset in webkit [248458] by Kocsen Chung
  • 9 edits
    2 adds in branches/safari-608.1-branch

Cherry-pick r248438. rdar://problem/54093226

[iOS] Position image information should respect the image orientation
https://bugs.webkit.org/show_bug.cgi?id=200487

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-08
Reviewed by Simon Fraser.

Source/WebCore:

Re-factor CachedImage::imageSizeForRenderer() into another overriding
function which does not scale the imageSize. Therefore the new function
returns FloatSize while the original function returns LayoutSize.

  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::imageSizeForRenderer const):
  • loader/cache/CachedImage.h:
  • rendering/RenderElement.h:

Source/WebKit:

imagePositionInformation() should respect the image orientation when
drawing an Image to a ShareableBitmap context.

boundsPositionInformation() already takes care of the image orientation
because it gets RenderImage::enclosingBoundingBox().

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::imagePositionInformation):

Tools:

Add an API test to verify the position image information is drawn rotated
because of respecting its image orientation.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WebKitCocoa/exif-orientation-8-llo.jpg: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html: Added.

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

10:01 PM Changeset in webkit [248457] by Kocsen Chung
  • 3 edits in branches/safari-608.1-branch/Source/WebKit

Cherry-pick r248436. rdar://problem/54093232

Set WKWebView opaque based on drawsBackground in PageConfiguration.
https://bugs.webkit.org/show_bug.cgi?id=200528

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Set self.opaque = NO when !self.opaque
!pageConfiguration->drawsBackground().

It is almost impossible to have !self.opaque be NO at this point, since we are still inside initWithFrame:. A subclass could
override opaque and return NO, but checking pageConfiguration's drawsBackground is a good alternative.

  • WebProcess/WebPage/WebPage.h: Remove unused m_drawsBackground member.

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

7:11 PM Changeset in webkit [248456] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (52279987): Most of the WKUIDelegate contextMenu delegate methods are not being called
https://bugs.webkit.org/show_bug.cgi?id=200557
<rdar://problem/53717962>

Reviewed by Wenson Hsieh.

UIKit changed the name of delegates recently. We ignored the warning because
it was still calling the old methods. However, it will only do so for applications
authored by Apple, breaking 3rd parties.

The change here is just adopting the new methods in place of the old ones.
It does not change the API that WebKit vends (they still use the older names).

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKContentView contextMenuInteractionWillPresent:]): Deleted.
(-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): Deleted.
(-[WKContentView contextMenuInteractionDidEnd:]): Deleted.

6:57 PM Changeset in webkit [248455] by Simon Fraser
  • 3 edits in trunk/Source/WebKit

[iOS WK2] Hide previews when an inner overflow or frame scrollview scrolls
https://bugs.webkit.org/show_bug.cgi?id=200552
rdar://problem/54086338

Reviewed by Wenson Hsieh.

Give UITargetedPreview the UIScrollView that the target element is inside of,
so it can clean up if the user starts to scroll that view.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _createTargetedPreviewIfPossible]):

6:10 PM Changeset in webkit [248454] by Devin Rousso
  • 24 edits in trunk

Web Inspector: Page: don't allow the domain to be disabled
https://bugs.webkit.org/show_bug.cgi?id=200109

Reviewed by Brian Burg.

Source/JavaScriptCore:

The PageAgent is relied on by many of the other agents, so much so that it doesn't make
sense to support the ability to "disable" (as well as "enable") the agent.

When the first frontend connects, we should treat the PageAgent as active and available.

  • inspector/protocol/Page.json:

Remove enable/disable.

Source/WebCore:

The PageAgent is relied on by many of the other agents, so much so that it doesn't make
sense to support the ability to "disable" (as well as "enable") the agent.

When the first frontend connects, we should treat the PageAgent as active and available.

  • inspector/agents/InspectorPageAgent.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorPageAgent::timestamp):
(WebCore::InspectorPageAgent::enable): Deleted.
(WebCore::InspectorPageAgent::disable): Deleted.

  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createStyleSheet):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::highlightSelector):
(WebCore::InspectorDOMAgent::highlightFrame):
(WebCore::InspectorDOMAgent::buildObjectForNode):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::setFrameIdentifier):

  • inspector/agents/page/PageNetworkAgent.cpp:

(WebCore::PageNetworkAgent::loaderIdentifier):
(WebCore::PageNetworkAgent::frameIdentifier):
(WebCore::PageNetworkAgent::scriptExecutionContext):

  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::InspectorStubFrontend):
(WebCore::InspectorStubFrontend::frontendLoaded): Added.
(WebCore::InspectorStubFrontend::closeWindow):
(WebCore::InspectorStubFrontend::sendMessageToFrontend):
(WebCore::InspectorStubFrontend::frontendPage): Deleted.
Ensure that the backend always gets notified via InspectorFrontendHost.loaded so that
messages being sent to the frontend are batched.

Source/WebInspectorUI:

The PageAgent is relied on by many of the other agents, so much so that it doesn't make
sense to support the ability to "disable" (as well as "enable") the agent.

When the first frontend connects, we should treat the PageAgent as active and available.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):

  • Test/Test.js:

(WI.loaded):
(WI.initializeBackendTarget):
(WI.contentLoaded):
(WI.targetsAvailable): Added.
(WI.whenTargetsAvailable): Added.

  • Test/TestStub.js:

Ensure that the backend always gets notified via InspectorFrontendHost.loaded so that
messages being sent to the frontend are batched.

LayoutTests:

  • http/tests/inspector/page/loading-iframe-document-node.html:
  • inspector/page/archive.html:
  • inspector/page/frameScheduledNavigation.html:
  • inspector/page/frameScheduledNavigation-async-delegates.html:
  • inspector/page/frameStartedLoading.html:
  • inspector/page/media-query-list-listener-exception.html:
  • inspector/timeline/line-column.html:
6:05 PM Changeset in webkit [248453] by jonlee@apple.com
  • 1 edit in trunk/Tools/ChangeLog

Unreviewed. Get rid of extraneous whitespace in ChangeLog.

5:08 PM Changeset in webkit [248452] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Add threading assertions to WebStorage code
https://bugs.webkit.org/show_bug.cgi?id=200550

Reviewed by Geoffrey Garen.

Add threading assertions to WebStorage code for extra safety.

  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::LocalStorageNamespace::~LocalStorageNamespace):
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::LocalStorageNamespace::clearAllStorageAreas):
(WebKit::LocalStorageNamespace::ephemeralOrigins const):
(WebKit::LocalStorageNamespace::cloneTo):

  • NetworkProcess/WebStorage/SessionStorageNamespace.cpp:

(WebKit::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::SessionStorageNamespace::addAllowedConnection):
(WebKit::SessionStorageNamespace::removeAllowedConnection):
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::SessionStorageNamespace::cloneTo):
(WebKit::SessionStorageNamespace::origins const):
(WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::SessionStorageNamespace::clearAllStorageAreas):

  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::~StorageArea):
(WebKit::StorageArea::addListener):
(WebKit::StorageArea::removeListener):
(WebKit::StorageArea::hasListener const):
(WebKit::StorageArea::clone const):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::setItems):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::items const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
(WebKit::StorageArea::dispatchEvents const):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::waitUntilTasksFinished):
(WebKit::StorageManager::suspend):
(WebKit::StorageManager::resume):
(WebKit::StorageManager::findStorageArea const):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:

(WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::TransientLocalStorageNamespace::origins const):
(WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::TransientLocalStorageNamespace::clearAllStorageAreas):

4:31 PM Changeset in webkit [248451] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Disable shared clipboard between Simulators
https://bugs.webkit.org/show_bug.cgi?id=200546

Reviewed by Aakash Jain.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager.initialize_devices): Disable PasteboardAutomaticSync in Simulator.app
managed by run-webkit-tests.

4:25 PM Changeset in webkit [248450] by Alan Coon
  • 1 copy in tags/Safari-608.1.45

Tag Safari-608.1.45.

4:25 PM Changeset in webkit [248449] by Alan Coon
  • 7 edits in branches/safari-608.1-branch/Source

Versioning.

4:25 PM Changeset in webkit [248448] by commit-queue@webkit.org
  • 5 edits in trunk

Short-cut WebGLRenderingContext::getParameter() for ALPHA_BITS when alpha channel is disabled
https://bugs.webkit.org/show_bug.cgi?id=200499

Source/WebCore:

Patch by Chris Lord <Chris Lord> on 2019-08-08
Reviewed by Darin Adler.

This patch adds a shortcut when a framebuffer isn't bound on WebGL
canvases when retrieving ALPHA_BITS.

No new tests, covered by existing tests.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):
Return 0 for ALPHA_BITS if canvas has no alpha component.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter):
Return 0 for ALPHA_BITS if canvas has no alpha component.

LayoutTests:

Patch by Chris Lord <chrislord.net@gmail.com> on 2019-08-08
Reviewed by Darin Adler.

  • platform/ios-simulator/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt:

1 more passing test.

4:01 PM Changeset in webkit [248447] by Simon Fraser
  • 16 edits in trunk/Source

Add to InteractionInformationAtPosition information about whether the element is in a subscrollable region
https://bugs.webkit.org/show_bug.cgi?id=200374
rdar://problem/54095519

Reviewed by Tim Horton.
Source/WebCore:

Add to InteractionInformationAtPosition a ScrollingNodeID which represents the enclosing scrolling
node that affects the targeted element's position. We use this to find a UIScrollView in the UI process.

The entrypoint to finding the enclosing scrolling node is ScrollingCoordinator::scrollableContainerNodeID(),
which calls RenderLayerCompositor::asyncScrollableContainerNodeID() to look for a scrolling ancestor in
the current frame, and then looks for an enclosing scrollable frame, or a scrolling ancestor in
the enclosing frame.

There's a bit of subtlety in RenderLayerCompositor::asyncScrollableContainerNodeID() because if you're asking
for the node that scrolls the renderer, if the renderer itself has a layer and is scrollable, you want
its enclosing scroller.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollableContainerNodeID const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::scrollableContainerNodeID const):

  • page/scrolling/ScrollingCoordinator.h:
  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::asyncScrollableContainerNodeID):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Add InteractionInformationAtPosition.containerScrollingNodeID and initialize it in elementPositionInformation()
by asking the scrolling coordinator.

Also add a way to get from a ScrollingNodeID to a UIScrollView to RemoteScrollingCoordinatorProxy,
which gets the scrolling node and asks the delegate for the UIView.

  • Shared/ios/InteractionInformationAtPosition.h:
  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::scrollViewForScrollingNodeID const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::scrollView const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::elementPositionInformation):

3:57 PM Changeset in webkit [248446] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Fix thread safety issue in AudioSampleDataSource() constructor
https://bugs.webkit.org/show_bug.cgi?id=200547

Reviewed by Alex Christensen.

Make Logger ThreadSafeRefCounted as it is ref'd / deref'd from various
threads (including the main thread and the WebKitWebRTCAudioModule thread).

  • wtf/Logger.h:
3:10 PM Changeset in webkit [248445] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

ScrollingStateNode is not ThreadSafeRefCounted but is ref'd / deref'd from several threads
https://bugs.webkit.org/show_bug.cgi?id=200545

Reviewed by Antti Koivisto.

The ScrollingStateTree and its ScrollingStateNodes are being passed to the scrolling thread.
ScrollingStateNode is not ThreadSafeRefCounted, which is potentially unsafe. Make it
ThreadSafeRefCounted for safety in this patch given that using RefCounted here is either
wrong or fragile.

  • page/scrolling/ScrollingStateNode.h:
3:03 PM Changeset in webkit [248444] by Brent Fulgham
  • 61 edits
    6 adds in trunk

[FTW] Get WebKit, WebKit2, and MiniBrowser building and executing
https://bugs.webkit.org/show_bug.cgi?id=200539
.:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • Source/cmake/OptionsFTW.cmake:

Source/ThirdParty/ANGLE:

Reviewed by Dean Jackson.

  • PlatformFTW.cmake: Added.

Source/WebCore:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • platform/graphics/win/BackingStoreBackendDirect2D.h:

(WebCore::BackingStoreBackendDirect2D::renderTarget const):
(WebCore::BackingStoreBackendDirect2D::surface const):
(): Deleted.

  • platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp:

(WebCore::BackingStoreBackendDirect2DImpl::~BackingStoreBackendDirect2DImpl):
(WebCore::BackingStoreBackendDirect2DImpl::scroll):
(WebCore::createDirect2DImageSurfaceWithFastMalloc): Deleted.

  • platform/graphics/win/BackingStoreBackendDirect2DImpl.h:
  • platform/graphics/win/DIBPixelData.cpp:

(WebCore::DIBPixelData::DIBPixelData):

  • platform/graphics/win/DIBPixelData.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::fillRectWithRoundedHole):
(WebCore::Direct2D::fillRectWithGradient):
(WebCore::Direct2D::drawGlyphs):
(WebCore::Direct2D::PlatformContextStateSaver::PlatformContextStateSaver): Deleted.
(WebCore::Direct2D::PlatformContextStateSaver::~PlatformContextStateSaver): Deleted.
(WebCore::Direct2D::PlatformContextStateSaver::save): Deleted.
(WebCore::Direct2D::PlatformContextStateSaver::restore): Deleted.
(WebCore::Direct2D::PlatformContextStateSaver::didSave const): Deleted.

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::bitmapSize):
(WebCore::Direct2D::bitmapResolution):
(WebCore::Direct2D::createWicBitmap):
(WebCore::Direct2D::createBitmap):
(WebCore::Direct2D::createGDIRenderTarget):
(WebCore::Direct2D::copyRectFromOneSurfaceToAnother):

  • platform/graphics/win/Direct2DUtilities.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformContext const):
(WebCore::GraphicsContextPlatformPrivate::setAlpha):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::beginDraw):
(WebCore::GraphicsContextPlatformPrivate::endDraw):
(WebCore::GraphicsContext::beginDraw):
(WebCore::GraphicsContext::endDraw):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::isAcceleratedContext const):

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::fillRect):
(WebCore::GraphicsContextImplDirect2D::fillRectWithRoundedHole):
(WebCore::GraphicsContextImplDirect2D::drawGlyphs):

  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:

(WebCore::GraphicsContextPlatformPrivate::platformContext):

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::Path::transform):

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::beginDraw):
(WebCore::PlatformContextDirect2D::endDraw):

  • platform/graphics/win/PlatformContextDirect2D.h:

(WebCore::PlatformContextStateSaver::PlatformContextStateSaver):
(WebCore::PlatformContextStateSaver::~PlatformContextStateSaver):
(WebCore::PlatformContextStateSaver::save):
(WebCore::PlatformContextStateSaver::restore):
(WebCore::PlatformContextStateSaver::didSave const):

Source/WebKit:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • PlatformFTW.cmake: Added.
  • Shared/ShareableBitmap.h:
  • Shared/win/ShareableBitmapDirect2D.cpp: Added.
  • UIProcess/BackingStore.cpp:
  • UIProcess/BackingStore.h:

(WebKit::BackingStore::renderTarget):

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h:
  • UIProcess/win/BackingStoreDirect2D.cpp: Added.
  • UIProcess/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint):

  • UIProcess/win/WebView.h:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::display):

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
  • WebProcess/WebPage/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):

  • WebProcess/win/WebProcessMainWin.cpp:

(WebKit::WebProcessMainWin):

Source/WebKitLegacy:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • CMakeLists.txt:
  • PlatformFTW.cmake: Added.

Source/WebKitLegacy/win:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • AccessibleBase.cpp:

(AccessibleBase::get_locale):

  • CFDictionaryPropertyBag.cpp:

(ConvertCFTypeToVariant):
(CFDictionaryPropertyBag::Read):
(CFDictionaryPropertyBag::Write):

  • CFDictionaryPropertyBag.h:
  • COMPropertyBag.h:

(HashType>::Read):
(HashType>::GetPropertyInfo):

  • MarshallingHelpers.cpp:
  • MarshallingHelpers.h:
  • WebApplicationCache.cpp:
  • WebArchive.cpp:
  • WebArchive.h:
  • WebCache.cpp:
  • WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebDatabaseManager.cpp:
  • WebHistory.cpp:
  • WebHistoryItem.cpp:
  • WebKitCOMAPI.cpp:
  • WebKitCOMAPI.h:
  • WebKitDLL.cpp:
  • WebLocalizableStrings.cpp:
  • WebLocalizableStrings.h:
  • WebMutableURLRequest.cpp:
  • WebPreferences.cpp:
  • WebPreferences.h:
  • WebView.cpp:
  • WebView.h:

Tools:

<rdar://problem/54082550>

Reviewed by Dean Jackson.

  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
  • PlatformFTW.cmake: Added.
2:57 PM Changeset in webkit [248443] by Kocsen Chung
  • 7 edits in branches/safari-608.1.42-branch/Source

Versioning.

1:50 PM Changeset in webkit [248442] by Kocsen Chung
  • 1 copy in branches/safari-608.1.42-branch

New branch.

1:48 PM Changeset in webkit [248441] by msaboff@apple.com
  • 4 edits
    1 add in trunk/Source

OpenSource MemoryFootprint API for JSC command line tool
https://bugs.webkit.org/show_bug.cgi?id=200541

Reviewed by Saam Barati.

Source/JavaScriptCore:

Use wtf/spi/darwin/ProcessMemoryFootprint.h instead of WebKitAdditions/MemoryFootprint.h
for process memory stats.

  • jsc.cpp:

(MemoryFootprint::MemoryFootprint):

Source/WTF:

OpenSource version of WebKitAdditions/MemoryFootprint.h.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/ProcessMemoryFootprint.h: Added.

(ProcessMemoryFootprint::now):
(ProcessMemoryFootprint::resetPeak):

1:32 PM Changeset in webkit [248440] by pvollan@apple.com
  • 7 edits in trunk/Source

[Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=200543
Source/WebKit:

Reviewed by Brent Fulgham.

Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process
identifier of the WebContent process.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::sandboxExtensionForType):
(WebKit::SandboxExtension::createHandleForReadByPid):

  • Shared/SandboxExtension.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

Source/WTF:

<rdar://problem/49394015>

Reviewed by Brent Fulgham.

Add new SPI.

  • wtf/Platform.h:
  • wtf/spi/darwin/SandboxSPI.h:
12:58 PM Changeset in webkit [248439] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, address post-landing review comments for r248431.

  • Modules/indexeddb/IDBRequest.h:
12:13 PM Changeset in webkit [248438] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

[iOS] Position image information should respect the image orientation
https://bugs.webkit.org/show_bug.cgi?id=200487

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-08
Reviewed by Simon Fraser.

Source/WebCore:

Re-factor CachedImage::imageSizeForRenderer() into another overriding
function which does not scale the imageSize. Therefore the new function
returns FloatSize while the original function returns LayoutSize.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::imageSizeForRenderer const):

  • loader/cache/CachedImage.h:
  • rendering/RenderElement.h:

Source/WebKit:

imagePositionInformation() should respect the image orientation when
drawing an Image to a ShareableBitmap context.

boundsPositionInformation() already takes care of the image orientation
because it gets RenderImage::enclosingBoundingBox().

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

Tools:

Add an API test to verify the position image information is drawn rotated
because of respecting its image orientation.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/exif-orientation-8-llo.jpg: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/img-with-rotated-image.html: Added.
12:07 PM Changeset in webkit [248437] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GTK] Fix WebContext languages test
https://bugs.webkit.org/show_bug.cgi?id=200538

Reviewed by Alex Christensen.

This test broke after the format of Accepted-Languages
was changed in r238236, update.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebContext.cpp:

(testWebContextLanguages):

12:04 PM Changeset in webkit [248436] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit

Set WKWebView opaque based on drawsBackground in PageConfiguration.
https://bugs.webkit.org/show_bug.cgi?id=200528

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Set self.opaque = NO when !self.opaque
!pageConfiguration->drawsBackground().

It is almost impossible to have !self.opaque be NO at this point, since we are still inside initWithFrame:. A subclass could
override opaque and return NO, but checking pageConfiguration's drawsBackground is a good alternative.

  • WebProcess/WebPage/WebPage.h: Remove unused m_drawsBackground member.
12:04 PM Changeset in webkit [248435] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GTK] Fix /webkit/WebKitWebsiteData/databases failure
https://bugs.webkit.org/show_bug.cgi?id=200536

Reviewed by Carlos Alberto Lopez Perez.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataDatabases): Databases take a moment to be written,
wait before fetching the data as it's done in other tests.

11:59 AM Changeset in webkit [248434] by Devin Rousso
  • 11 edits
    1 move
    1 add
    1 delete in trunk

Web Inspector: rename queryObjects to queryInstances for clarity
https://bugs.webkit.org/show_bug.cgi?id=200520

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(queryInstances): Added.
(queryObjects):

  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::queryInstances): Added.
(Inspector::JSInjectedScriptHost::queryObjects): Deleted.

  • inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeFunctionQueryInstances): Added.
(Inspector::jsInjectedScriptHostPrototypeFunctionQueryObjects): Deleted.

Source/WebCore:

Test: inspector/console/queryInstances.html

  • inspector/CommandLineAPIModuleSource.js:

(CommandLineAPIImpl.prototype.queryInstances): Added.
(CommandLineAPIImpl.prototype.queryObjects):

Source/WebInspectorUI:

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

LayoutTests:

  • inspector/console/queryInstances.html: Renamed from LayoutTests/inspector/console/queryObjects.html.
  • inspector/console/queryInstances-expected.txt: Renamed from LayoutTests/inspector/console/queryObjects-expected.txt.
  • http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt:
11:54 AM Changeset in webkit [248433] by Wenson Hsieh
  • 6 edits
    6 adds in trunk

[iOS 13] Taps that interrupt momentum scrolling are recognized as clicks
https://bugs.webkit.org/show_bug.cgi?id=200516
<rdar://problem/53889373>

Reviewed by Tim Horton.

Source/WebKit:

After <https://trac.webkit.org/r247656>, the -tracksImmediatelyWhileDecelerating property of WKScrollView and
WKChildScrollView is set to NO. This means that if a user interacts with the page while the scroll view is
decelerating (e.g. after momentum scrolling), the pan gesture recognizer will not be immediately recognized.
This gives other gesture recognizers, such as the synthetic click (single tap) gesture a chance to instead
recognize first. In this particular bug, this causes taps on the web view that are intended to only stop
momentum scrolling to instead activate clickable elements beneath the touch, such as links and buttons.

To mitigate this, we add some logic to prevent the click gesture recognizer from firing in the case where the
tap also causes the scroll view to decelerate. This heuristic is similar to the one introduced in r219310, which
has the same purpose of hiding gestures that stop momentum scrolling from the page, and also consults
-[UIScrollView _isInterruptingDeceleration].

Tests: fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html

fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html
fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerShouldBegin:]):

Return NO in the case of the single tap gesture if the UIScrollView most recently touched by the single tap
gesture (or one of its enclosing scroll views, up to the main WKScrollView) is being interrupted while
decelerating.

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

(-[WKSyntheticTapGestureRecognizer reset]):
(-[WKSyntheticTapGestureRecognizer touchesBegan:withEvent:]):

Teach WKSyntheticTapGestureRecognizer to keep track of the last WKScrollView that was touched, for later use in
-gestureRecognizerShouldBegin:. To do this, we keep a weak reference to the first UIScrollView we find in the
set of touches.

(-[WKSyntheticTapGestureRecognizer lastTouchedScrollView]):

LayoutTests:

Add new layout tests. See below for details.

  • fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame-expected.txt: Added.
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html: Added.

Add a test to verify that interrupting scrolling in the main frame using a tap doesn't fire a click event.

  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body-expected.txt: Added.
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html: Added.

Add a test to verify that after triggering momentum scrolling in a fast subscrollable region, tapping outside of
the scroller will still fire a click event.

  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-expected.txt: Added.
  • fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html: Added.

Add a test to verify that interrupting scrolling in a fast subscrollable region using a tap doesn't fire a
click event.

  • resources/ui-helper.js:

(window.UIHelper.dragFromPointToPoint):
(window.UIHelper):

11:42 AM Changeset in webkit [248432] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix thread safety bug in AudioSourceProviderAVFObjC::prepare()
https://bugs.webkit.org/show_bug.cgi?id=200542

Reviewed by Jer Noble.

Fix thread safety bug in AudioSourceProviderAVFObjC::prepare(). It calls callOnMainThread()
from a background thread and captures makeRef(*this) in the lambda, even though |this| is a
AudioSourceProviderAVFObjC, which subclasses RefCounted, not ThreadSafeRefCounted.

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h:
11:41 AM Changeset in webkit [248431] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Make IDBRequest ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200540

Reviewed by Alex Christensen.

Make IDBRequest ThreadSafeRefCounted, as it looks like it is being ref'd / deref'd
from several threads, in IDBConnectionProxy::notifyOpenDBRequestBlocked() for
example.

  • Modules/indexeddb/IDBRequest.h:
11:40 AM Changeset in webkit [248430] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Use "safari" glyph for "Show Link Previews" contextual menu
https://bugs.webkit.org/show_bug.cgi?id=200544
<rdar://problem/54087842>

Reviewed by Tim Horton.

Use the system image for the compass.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction imageForElementActionType:]):

11:27 AM Changeset in webkit [248429] by Alan Coon
  • 5 edits in branches/safari-608.1-branch

Revert r248039. rdar://problem/54087592

11:24 AM Changeset in webkit [248428] by Alan Coon
  • 6 edits
    1 add in branches/safari-608.1-branch

Cherry-pick r248410. rdar://problem/54084738

Do not allow navigations of frames about to get replaced by the result of evaluating javascript: URLs
<rdar://problem/53788893> and https://bugs.webkit.org/show_bug.cgi?id=198786

Reviewed by Geoff Garen.

Source/WebCore:

Covered by API Test

Add a "willReplaceWithResultOfExecutingJavascriptURL" flag which is respected inside FrameLoader::isNavigationAllowed

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeIfJavaScriptURL):
  • bindings/js/ScriptController.h: (WebCore::ScriptController::willReplaceWithResultOfExecutingJavascriptURL const):
  • loader/FrameLoader.cpp: (WebCore::FrameLoader::isNavigationAllowed const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/JavascriptURLNavigation.mm: Added.

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

11:24 AM Changeset in webkit [248427] by Alan Coon
  • 5 edits in branches/safari-608.1-branch

Cherry-pick r248039. rdar://problem/54087592

[iOS 13] Safari crashes when closing a tab with a focused element if the unified field has focus
https://bugs.webkit.org/show_bug.cgi?id=200291
<rdar://problem/53717946>

Reviewed by Megan Gardner.

Source/WebKit:

Makes -requestAutocorrectionContextWithCompletionHandler: robust in the case where the web page has been closed,
and there is no Connection object to use when waiting for a sync IPC response.

Test: AutocorrectionTests.RequestAutocorrectionContextAfterClosingPage

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Tools:

Add an API test to exercise the scenario of synchronously requesting the autocorrection context immediately
after closing the web view, while the web view's content view isn't the first responder.

  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
  • TestWebKitAPI/ios/UIKitSPI.h:

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

11:23 AM Changeset in webkit [248426] by Ross Kirsling
  • 17 edits in trunk

[JSC] Add "jump if (not) undefined or null" bytecode ops
https://bugs.webkit.org/show_bug.cgi?id=200480

Reviewed by Saam Barati.

JSTests:

  • stress/destructuring-assignment-require-object-coercible.js:
  • stress/nullish-coalescing.js:

Source/JavaScriptCore:

This patch introduces fused jumps for op_is_undefined_or_null, which ignores "masquerade as undefined" behavior.

This lets us fix a edge-case bug in RequireObjectCoercible (where ({ length } = document.all) was a TypeError)
and moreover provides a very useful optimization for the new ?. and ?? operators, which have semantics centered
around op_jundefined_or_null and op_jnundefined_or_null, respectively.

  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/Opcode.h:

(JSC::isBranch):

  • bytecode/PreciseJumpTargetsInlines.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::Label::setLocation):
(JSC::BytecodeGenerator::emitJumpIfTrue):
(JSC::BytecodeGenerator::emitJumpIfFalse):
(JSC::BytecodeGenerator::emitRequireObjectCoercible):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jundefined_or_null): Added.
(JSC::JIT::emit_op_jnundefined_or_null): Added.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jundefined_or_null): Added.
(JSC::JIT::emit_op_jnundefined_or_null): Added.

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
10:53 AM Changeset in webkit [248425] by Jonathan Bedard
  • 5 edits in trunk/Tools

results.webkit.org: Use canvas for timeline
https://bugs.webkit.org/show_bug.cgi?id=200172

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/commit.js:

(Commit.constructor): Make uuid a member variable instead of a member function for efficiency.
(Commit.compare): Ditto.
(_CommitBank.commitByUuid): Ditto.
(_CommitBank._loadSiblings): Ditto.
(_CommitBank._load): Ditto.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(tickForCommit): Deleted.
(minimumUuidForResults): Given a dictionary of result lists, determine the minimum UUID
which encompasses all results. Crucially, this function must exclude an UUIDs which may
refer to results excluded because of the limit argument.
(renderTimeline): Deleted.
(commitsForResults): Given a dictionary of result lists, return a list of commits associated
with those results.
(scaleForCommits): Given a list of commits, generate a scale to be consumed by the canvas Timeline.
(repositoriesForCommits): Given a list of commits, return a sorted list of associated repository ids.
(xAxisFromScale): Create a canvas-based x-axis based on the provided scale and a repository id.
(inPlaceCombine): Combine result objects together.
(statsForSingleResult): Turn a single result into a stat object.
(combineResults): Given lists of results, combine these lists while keeping the original lists unchanged.
(Dot): Deleted.
(TimelineFromEndpoint): Renamed from Timeline.
(TimelineFromEndpoint.constructor): Canvas Timeline manages expansion and collapsing of nested timelines.
(TimelineFromEndpoint.teardown): Detach callbacks from CommitBank.
(TimelineFromEndpoint.update): Update with any new commit information, force a re-draw of the current
cache contents.
(TimelineFromEndpoint.reload): Remove management of nested timelines.
(TimelineFromEndpoint.render): Use canvas Timeline instead of html timeline to visualize results.

  • resultsdbpy/resultsdbpy/view/templates/search.html: Use TimelineFromEndpoint class.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Ditto.
10:27 AM Changeset in webkit [248424] by russell_e@apple.com
  • 26 edits
    25 copies
    19 adds in trunk/LayoutTests

Add Catalina Baselines for Font-related Tests.
rdar://53836015

Unreviewed Test Gardening.

  • platform/mac-mojave/css1/basic/inheritance-expected.txt: Copied from LayoutTests/platform/mac/css1/basic/inheritance-expected.txt.
  • platform/mac-mojave/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt.
  • platform/mac-mojave/css2.1/t0805-c5522-brdr-02-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt.
  • platform/mac-mojave/css3/selectors3/html/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt.
  • platform/mac-mojave/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt.
  • platform/mac-mojave/css3/selectors3/xml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt.
  • platform/mac-mojave/fast/block/basic/001-expected.txt: Copied from LayoutTests/platform/mac/fast/block/basic/001-expected.txt.
  • platform/mac-mojave/fast/css/css3-nth-child-expected.txt: Copied from LayoutTests/platform/mac/fast/css/css3-nth-child-expected.txt.
  • platform/mac-mojave/fast/dom/34176-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/34176-expected.txt.
  • platform/mac-mojave/fast/dom/clone-node-dynamic-style-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/clone-node-dynamic-style-expected.txt.
  • platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/plaintext-mode-2-expected.txt.
  • platform/mac-mojave/fast/invalid/003-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/003-expected.txt.
  • platform/mac-mojave/fast/invalid/004-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/004-expected.txt.
  • platform/mac-mojave/fast/invalid/nestedh3s-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/nestedh3s-expected.txt.
  • platform/mac-mojave/fast/selectors/018-expected.txt: Copied from LayoutTests/platform/mac/fast/selectors/018-expected.txt.
  • platform/mac-mojave/fast/table/frame-and-rules-expected.txt: Copied from LayoutTests/platform/mac/fast/table/frame-and-rules-expected.txt.
  • platform/mac-mojave/fast/text/atsui-multiple-renderers-expected.txt: Copied from LayoutTests/platform/mac/fast/text/atsui-multiple-renderers-expected.txt.
  • platform/mac-mojave/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Copied from LayoutTests/platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt.
  • platform/mac-mojave/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
  • platform/mac-mojave/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
  • platform/mac-mojave/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt.
  • platform/mac-mojave/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt.
  • platform/mac-mojave/svg/batik/text/textStyles-expected.txt: Copied from LayoutTests/platform/mac/svg/batik/text/textStyles-expected.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt.
  • platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt.
  • platform/mac/css1/basic/inheritance-expected.txt:
  • platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt:
  • platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt:
  • platform/mac/fast/block/basic/001-expected.txt:
  • platform/mac/fast/css/css3-nth-child-expected.txt:
  • platform/mac/fast/dom/34176-expected.txt:
  • platform/mac/fast/dom/clone-node-dynamic-style-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/invalid/003-expected.txt:
  • platform/mac/fast/invalid/004-expected.txt:
  • platform/mac/fast/invalid/nestedh3s-expected.txt:
  • platform/mac/fast/selectors/018-expected.txt:
  • platform/mac/fast/table/frame-and-rules-expected.txt:
  • platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
  • platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt:
  • platform/mac/fast/text/font-weights-expected.txt:
  • platform/mac/fast/text/font-weights-zh-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt:
  • platform/mac/svg/batik/text/textStyles-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
9:53 AM Changeset in webkit [248423] by Alan Coon
  • 2 edits in branches/safari-608.1-branch/Source/WebKit

Cherry-pick r248393. rdar://problem/54066685

Regression(r247784) ResourceLoadStatisticsMemoryStore / ResourceLoadStatisticsPersistentStorage may get destroyed on the wrong thread
https://bugs.webkit.org/show_bug.cgi?id=200517

Reviewed by Geoffrey Garen.

The issue is that WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore() is null checking
m_persistentStorage and m_statisticsStore on the main thread, even though those members are initialized
and destroyed on the background thread. As a result, if flushAndDestroyPersistentStore() is called *before*
the background task to initialize those members has had a chance to run, then we'd return early without
destroying those members. Later on, the background task would then initialize those data members and we
would then destroy them on the main thread when the WebResourceLoadStatisticsStore is destroyed on the
main thread.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):

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

9:46 AM Changeset in webkit [248422] by Chris Dumez
  • 6 edits
    8 adds in trunk/Source/WebKit

Move classes declared inside StorageManager.cpp into their own headers
https://bugs.webkit.org/show_bug.cgi?id=200527

Reviewed by Alex Christensen.

Move classes declared inside StorageManager.cpp into their own headers
for clarity. StorageManager.cpp was getting really big.

  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp: Added.

(WebKit::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::LocalStorageNamespace::~LocalStorageNamespace):
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::LocalStorageNamespace::clearAllStorageAreas):
(WebKit::LocalStorageNamespace::ephemeralOrigins const):
(WebKit::LocalStorageNamespace::cloneTo):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h: Added.

(WebKit::LocalStorageNamespace::create):
(WebKit::LocalStorageNamespace::storageManager const):

  • NetworkProcess/WebStorage/SessionStorageNamespace.cpp: Added.

(WebKit::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::SessionStorageNamespace::addAllowedConnection):
(WebKit::SessionStorageNamespace::removeAllowedConnection):
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::SessionStorageNamespace::cloneTo):
(WebKit::SessionStorageNamespace::origins const):
(WebKit::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::SessionStorageNamespace::clearAllStorageAreas):

  • NetworkProcess/WebStorage/SessionStorageNamespace.h: Added.

(WebKit::SessionStorageNamespace::create):
(WebKit::SessionStorageNamespace::isEmpty const):
(WebKit::SessionStorageNamespace::allowedConnections const):

  • NetworkProcess/WebStorage/StorageArea.cpp: Added.

(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::~StorageArea):
(WebKit::StorageArea::addListener):
(WebKit::StorageArea::removeListener):
(WebKit::StorageArea::hasListener const):
(WebKit::StorageArea::clone const):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::setItems):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::items const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
(WebKit::StorageArea::dispatchEvents const):

  • NetworkProcess/WebStorage/StorageArea.h: Added.

(WebKit::StorageArea::create):
(WebKit::StorageArea::securityOrigin const):
(WebKit::StorageArea::isEphemeral const):

  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::findStorageArea const):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):

  • NetworkProcess/WebStorage/StorageManager.h:

(WebKit::StorageManager::create):
(WebKit::StorageManager::localStorageDatabaseTracker const):
(WebKit::StorageManager::workQueue const):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp: Added.

(WebKit::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::TransientLocalStorageNamespace::origins const):
(WebKit::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::TransientLocalStorageNamespace::clearAllStorageAreas):

  • NetworkProcess/WebStorage/TransientLocalStorageNamespace.h: Added.

(WebKit::TransientLocalStorageNamespace::create):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
9:38 AM Changeset in webkit [248421] by Alan Coon
  • 7 edits in branches/safari-608.1-branch/Source

Versioning.

9:23 AM Changeset in webkit [248420] by Ryan Haddad
  • 3 edits in branches/safari-608.1-branch/LayoutTests

Cherry-pick r248388. rdar://problem/54049321

Updating TestExpectations for editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html.
rdar://54049321

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:23 AM Changeset in webkit [248419] by Ryan Haddad
  • 3 edits in branches/safari-608.1-branch/LayoutTests

Cherry-pick r248379. rdar://problem/53779679

Updating TestExpectations for Two Failing Layout Tests.
rdar://53779679

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:23 AM Changeset in webkit [248418] by Ryan Haddad
  • 3 edits in branches/safari-608.1-branch/LayoutTests

Cherry-pick r248312. rdar://problem/53829560

Updating Test Expectations for <rdar://53957264>, <rdar://53946482>, <rdar://53866783>

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:23 AM Changeset in webkit [248417] by Ryan Haddad
  • 3 edits in branches/safari-608.1-branch/LayoutTests

Cherry-pick r247833. rdar://problem/53551736

rdar://53551736 (Layout Test editing/pasteboard/paste-and-sanitize.html is a Flaky Failure on iOS 13).

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations: Test is passing on iOS 12
  • platform/ios/TestExpectations: Marking test as flaky on iOS 13

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

9:23 AM Changeset in webkit [248416] by Ryan Haddad
  • 2 edits in branches/safari-608.1-branch/LayoutTests

Cherry-pick r248300. rdar://problem/53468934

[iPad] editing/selection/character-granularity-rect.html is now passing.
<rdar://53468934>

Unreviewed Test Gardening.

  • platform/ipad/TestExpectations: Removed expectation for passing test, editing/selection/character-granularity-rect.html

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

9:18 AM Changeset in webkit [248415] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248388. rdar://problem/54049321

Updating TestExpectations for editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html.
rdar://54049321

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:17 AM Changeset in webkit [248414] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248379. rdar://problem/53779679

Updating TestExpectations for Two Failing Layout Tests.
rdar://53779679

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:17 AM Changeset in webkit [248413] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248312. rdar://problem/53829560

Updating Test Expectations for <rdar://53957264>, <rdar://53946482>, <rdar://53866783>

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:

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

9:17 AM Changeset in webkit [248412] by Ryan Haddad
  • 3 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r247833. rdar://problem/53551736

rdar://53551736 (Layout Test editing/pasteboard/paste-and-sanitize.html is a Flaky Failure on iOS 13).

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations: Test is passing on iOS 12
  • platform/ios/TestExpectations: Marking test as flaky on iOS 13

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

9:17 AM Changeset in webkit [248411] by Ryan Haddad
  • 2 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r248300. rdar://problem/53468934

[iPad] editing/selection/character-granularity-rect.html is now passing.
<rdar://53468934>

Unreviewed Test Gardening.

  • platform/ipad/TestExpectations: Removed expectation for passing test, editing/selection/character-granularity-rect.html

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

8:54 AM Changeset in webkit [248410] by beidson@apple.com
  • 6 edits
    1 add in trunk

Do not allow navigations of frames about to get replaced by the result of evaluating javascript: URLs
<rdar://problem/53788893> and https://bugs.webkit.org/show_bug.cgi?id=198786

Reviewed by Geoff Garen.

Source/WebCore:

Covered by API Test

Add a "willReplaceWithResultOfExecutingJavascriptURL" flag which is respected inside FrameLoader::isNavigationAllowed

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

  • bindings/js/ScriptController.h:

(WebCore::ScriptController::willReplaceWithResultOfExecutingJavascriptURL const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::isNavigationAllowed const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/JavascriptURLNavigation.mm: Added.
7:55 AM Changeset in webkit [248409] by commit-queue@webkit.org
  • 26 edits in trunk

Add runtime flag for lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=199794

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-08
Reviewed by Darin Adler.

Source/WebCore:

Add loading attribute and expose it on HTMLImageElement.

  • html/HTMLAttributeNames.in:
  • html/HTMLImageElement.idl:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setLazyImageLoadingEnabled):
(WebCore::RuntimeEnabledFeatures::lazyImageLoadingEnabled const):

Source/WebKit:

Add LazyImageLoading preference.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetLazyImageLoadingEnabled):
(WKPreferencesGetLazyImageLoadingEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Set lazyImageLoading runtime flag if preference is set.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences lazyImageLoadingEnabled]):
(-[WebPreferences setLazyImageLoadingEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

Set lazyImageLoading runtime flag if preference is set.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::lazyImageLoadingEnabled):
(WebPreferences::setLazyImageLoadingEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Set lazyImageLoading preference as part of experimental features. Add
TestOption for lazy image loading.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(setWebPreferencesForTestOptions):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

7:53 AM Changeset in webkit [248408] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merge r248405 - [GTK] WebKitWebProcess crashes when viewing an HTML with a <video> element referencing unknown file
https://bugs.webkit.org/show_bug.cgi?id=200530

Reviewed by Xabier Rodriguez-Calvar.

Not amenable to unit testing.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):

7:20 AM Changeset in webkit [248407] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations after r248403.

  • platform/gtk/TestExpectations:
7:13 AM Changeset in webkit [248406] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK][WPE] Remove the reference to WebCore::Animation from TextureMapperAnimation
https://bugs.webkit.org/show_bug.cgi?id=200533

Reviewed by Žan Doberšek.

Pass the relevant parameters to TextureMapperAnimation instead of creating a new WebCore::Animation
inside it.

  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::timingFunctionForAnimationValue):
(WebCore::TextureMapperAnimation::TextureMapperAnimation):
(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::isActive const):

  • platform/graphics/texmap/TextureMapperAnimation.h:

(WebCore::TextureMapperAnimation::keyframes const):
(WebCore::TextureMapperAnimation::timingFunction const):
(WebCore::TextureMapperAnimation::animation const): Deleted.

5:08 AM Changeset in webkit [248405] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] WebKitWebProcess crashes when viewing an HTML with a <video> element referencing unknown file
https://bugs.webkit.org/show_bug.cgi?id=200530

Reviewed by Xabier Rodriguez-Calvar.

Not amenable to unit testing.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):

1:20 AM Changeset in webkit [248404] by commit-queue@webkit.org
  • 8 edits
    13 adds in trunk

Import lazy loading WPT tests
https://bugs.webkit.org/show_bug.cgi?id=199795

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-08
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import lazy loading WPT tests.

  • resources/import-expectations.json:
  • web-platform-tests/loading/lazyload/iframe-loading-eager.tentative-expected.txt: Added.
  • web-platform-tests/loading/lazyload/iframe-loading-eager.tentative.html: Added.
  • web-platform-tests/loading/lazyload/iframe-loading-lazy.tentative.html: Added.
  • web-platform-tests/loading/lazyload/image-loading-eager.tentative-expected.txt: Added.
  • web-platform-tests/loading/lazyload/image-loading-eager.tentative.html: Added.
  • web-platform-tests/loading/lazyload/image-loading-lazy.tentative.html: Added.
  • web-platform-tests/loading/lazyload/resources/image.png: Added.
  • web-platform-tests/loading/lazyload/resources/subframe.html: Added.
  • web-platform-tests/loading/lazyload/resources/w3c-import.log: Added.
  • web-platform-tests/loading/lazyload/w3c-import.log: Added.

Tools:

Only do loading/ exception for WebKit specific, non WPT tests.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(shouldLogFrameLoadDelegates):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::TestInvocation):

LayoutTests:

Skip the lazy tests for now.

Aug 7, 2019:

11:22 PM Changeset in webkit [248403] by sbarati@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

[WHLSL] Prune unreachable stdlib functions after the Checker runs
https://bugs.webkit.org/show_bug.cgi?id=200518

Reviewed by Robin Morisset.

We now prune unreachable stdlib functions after the checker runs. We must
do this after the checker runs because that's when we resolve all remaining
function calls. While we can't prune unreachable user code, because we must
still report errors in it, we can prune unreachable standard library code
because we know a priori that it has no errors. This is a 10ms end-to-end
speedup in compute_boids.

  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::prepareShared):

  • Modules/webgpu/WHLSL/WHLSLPruneUnreachableStandardLibraryFunctions.cpp: Added.

(WebCore::WHLSL::pruneUnreachableStandardLibraryFunctions):

  • Modules/webgpu/WHLSL/WHLSLPruneUnreachableStandardLibraryFunctions.h: Added.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
9:56 PM Changeset in webkit [248402] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 89

Added a tag for Safari Technology Preview release 89.

8:31 PM Changeset in webkit [248401] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Turn some ITP threading ASSERTs into RELEASE_ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=200521

Reviewed by Ryosuke Niwa.

Turn some ITP threading ASSERTs into RELEASE_ASSERTs to help catch more bugs.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::ResourceLoadStatisticsMemoryStore):
(WebKit::ResourceLoadStatisticsMemoryStore::isEmpty const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage):
(WebKit::ResourceLoadStatisticsPersistentStorage::~ResourceLoadStatisticsPersistentStorage):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):

7:36 PM Changeset in webkit [248400] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Fix construction of WI.EventBreakpoint after r248201

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.setBreakpointForEventListener):

6:34 PM Changeset in webkit [248399] by Fujii Hironori
  • 4 edits in trunk/Tools

[Win][MiniBrowser] Add key accelerators for reload and close window
https://bugs.webkit.org/show_bug.cgi?id=200497

Reviewed by Brent Fulgham.

Added short cuts Ctrl-W to close window, Ctrl-R to reload.

  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::WndProc): Added IDM_CLOSE_WINDOW case.

  • MiniBrowser/win/MiniBrowserLib.rc: Added "Close" menu item. Added accelerators.
  • MiniBrowser/win/MiniBrowserLibResource.h: Added IDM_CLOSE_WINDOW.
5:59 PM Changeset in webkit [248398] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.44

Tag Safari-608.1.44.

5:38 PM Changeset in webkit [248397] by Alan Coon
  • 3 edits in branches/safari-608.1-branch/Source/WebCore

Revert r248173. rdar://problem/54036774

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

Adopt non-deprecated CGColorSpace API
https://bugs.webkit.org/show_bug.cgi?id=184358

Patch by Kate Cheney <Kate Cheney> on 2019-08-07
Reviewed by Darin Adler.

Source/WebCore:

  • platform/ScreenProperties.h:

(WebCore::ScreenData::decode):

We changed the deprecated CGColorSpaceCreateWithICCProfile function to
CGColorSpaceCreateWithICCData.

Source/WebKit:

  • Shared/mac/ColorSpaceData.mm:

(WebKit::ColorSpaceData::decode):

We changed the deprecated CGColorSpaceCreateWithICCProfile function to
CGColorSpaceCreateWithICCData.

4:47 PM Changeset in webkit [248395] by weinig@apple.com
  • 11 edits
    2 adds in trunk/Source/WebCore

[WHLSL] Metal code generation takes a long time uniquing UnnamedTypes
https://bugs.webkit.org/show_bug.cgi?id=200512

Reviewed by Saam Barati.

Instead of using a trie for unnamed type uniquing, use the same technique used
in SynthesizeConstructors and use a HashMap of UnnamedTypeKeys. To make this
profitable, we also need to devirtualize the hash and equality functions on
UnnamedType, instead using an enum + switch. While this change only devirtualizes
the UnnamedType subtree, we should probably do it for the entire AST in a future
change.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:
  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.cpp: Added.

(WebCore::WHLSL::AST::UnnamedType::hash const):
(WebCore::WHLSL::AST::UnnamedType::operator== const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

Devirtualize hash, operator== and type predicates.

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedTypeHash.h: Added.

(WebCore::WHLSL::UnnamedTypeKey::UnnamedTypeKey):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::UnnamedTypeKey::UnnamedTypeKey): Deleted.
Moved UnnamedTypeKey into it's own header from WHLSLSynthesizeConstructors.cpp

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::BaseTypeNameNode::BaseTypeNameNode):
(WebCore::WHLSL::Metal::BaseTypeNameNode::kind):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isReferenceTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isPointerTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayReferenceTypeNameNode const):
(WebCore::WHLSL::Metal::BaseTypeNameNode::isArrayTypeNameNode const):
Devirtualize BaseTypeNameNode as well. In a future change, we should consider removing
this class entirely and instead mapping directly to a parent/mangled name pair.

(WebCore::WHLSL::Metal::TypeNamer::visit):
(WebCore::WHLSL::Metal::TypeNamer::find):
(WebCore::WHLSL::Metal::TypeNamer::createNameNode):
(WebCore::WHLSL::Metal::parent):
(WebCore::WHLSL::Metal::TypeNamer::insert):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDefinitions):
(WebCore::WHLSL::Metal::TypeNamer::mangledNameForType):
(WebCore::WHLSL::Metal::findInVector): Deleted.
(WebCore::WHLSL::Metal::find): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::emitAllUnnamedTypeDefinitions): Deleted.

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:

Switch from a Vector based trie to a HashMap for UnnamedType uniquing. Also
use UnnamedType::Kind where possible with switch statements to clarify code.

  • WebCore.xcodeproj/project.pbxproj:

Add new files.

4:36 PM Changeset in webkit [248394] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove speculative workaround for upload crash
https://bugs.webkit.org/show_bug.cgi?id=200514

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-07
Reviewed by Geoffrey Garen.

This workaround didn't help anyways, and the crash has been resolved. Let's clean up.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:needNewBodyStream:]):

3:29 PM Changeset in webkit [248393] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r247784) ResourceLoadStatisticsMemoryStore / ResourceLoadStatisticsPersistentStorage may get destroyed on the wrong thread
https://bugs.webkit.org/show_bug.cgi?id=200517

Reviewed by Geoffrey Garen.

The issue is that WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore() is null checking
m_persistentStorage and m_statisticsStore on the main thread, even though those members are initialized
and destroyed on the background thread. As a result, if flushAndDestroyPersistentStore() is called *before*
the background task to initialize those members has had a chance to run, then we'd return early without
destroying those members. Later on, the background task would then initialize those data members and we
would then destroy them on the main thread when the WebResourceLoadStatisticsStore is destroyed on the
main thread.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):

2:51 PM Changeset in webkit [248392] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

LayoutTest inspector/worker/debugger-scripts.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=165582

Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-08-07
Reviewed by Joseph Pecoraro.

Unflake the test. Main resource in the worker target is populated asychronously
when the script is parsed and sent to the debugger, so we need to wait for it
before performing further checks.

  • inspector/worker/debugger-scripts.html:
  • platform/mac/TestExpectations:
2:49 PM Changeset in webkit [248391] by Devin Rousso
  • 19 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: add an Engineering pane to expose useful settings for other WebKit engineers
https://bugs.webkit.org/show_bug.cgi?id=200492

Reviewed by Joseph Pecoraro.

Other WebKit engineers might find being able to see internal objects or pause in internal
scripts useful, so we should allow them to do so without having to enable Web Inspector's
debug "mode".

A new "Engineering" pane is added to the Settings Tab:

  • Debugging
    • Show WebKit-internal scripts
    • Pause in WebKit-internal scripts
  • Heap Snapshot
    • Show Internal Objects
    • Show Private Symbols
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype.initialLayout):
(WI.SettingsTabContentView.prototype._createEngineeringSettingsView): Added.
(WI.SettingsTabContentView.prototype._createDebugSettingsView):

  • UserInterface/Base/Main.js:

(WI.resolvedLayoutDirection):
(WI.setLayoutDirection):

  • UserInterface/Base/Object.js:
  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
(InspectorBackendClass.prototype.get dumpInspectorTimeStats):
(InspectorBackendClass.prototype.set filterMultiplexingBackendInspectorProtocolMessages):
(InspectorBackendClass.prototype.get filterMultiplexingBackendInspectorProtocolMessages):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype.findFunctionSourceCodeLocation):

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(handleUncaughtExceptionRecord):

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.update):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype.get knownNonResourceScripts):
(WI.DebuggerManager.prototype.debuggerDidPause):
(WI.DebuggerManager.prototype.scriptDidParse):
(WI.DebuggerManager.prototype._handleEngineeringShowInternalScriptsSettingChanged): Added.
(WI.DebuggerManager.prototype._handleEngineeringPauseForInternalScriptsSettingChanged): Added.
(WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange): Deleted.
(WI.DebuggerManager.prototype._debugUIEnabledDidChange): Deleted.

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendLocationLink):

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WI.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addScriptsForTarget):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):

  • UserInterface/Views/StackTraceView.js:

(WI.StackTraceView):

  • UserInterface/Views/View.js:

(WI.View.prototype._layoutSubtree):

2:32 PM Changeset in webkit [248390] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: content of Variables section should always be LTR
https://bugs.webkit.org/show_bug.cgi?id=200481

Reviewed by Devin Rousso.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.initialLayout):

2:17 PM Changeset in webkit [248389] by Devin Rousso
  • 5 edits in trunk/Source

Web Inspector: Uncaught Exception: TimelineAgent already enabled
https://bugs.webkit.org/show_bug.cgi?id=200513

Reviewed by Joseph Pecoraro.

Source/WebCore:

Call disable when the last frontend disconnects, so that if Web Inspector is reopened the
TimelineAgent is back to being in a disabled state.

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):

Source/WebInspectorUI:

Update some incorrect compatibility comments from r248286.

  • UserInterface/Protocol/InspectorFrontendAPI.js:
  • UserInterface/Controllers/TimelineManager.js:
2:12 PM Changeset in webkit [248388] by russell_e@apple.com
  • 3 edits in trunk/LayoutTests

Updating TestExpectations for editing/pasteboard/paste-does-not-fire-promises-while-sanitizing-web-content.html.
rdar://54049321

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:
2:12 PM Changeset in webkit [248387] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Muted <video> elements can block display from sleeping.
https://bugs.webkit.org/show_bug.cgi?id=200511

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-muted-holds-sleep-assertion.html

Modify the shouldDisableSleep() method to take muting into account.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldDisableSleep const):

LayoutTests:

  • media/video-muted-holds-sleep-assertion-expected.txt: Added.
  • media/video-muted-holds-sleep-assertion.html: Added.
1:35 PM Changeset in webkit [248386] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Tighten WeakPtr threading assertions for GC threads
https://bugs.webkit.org/show_bug.cgi?id=200451

Reviewed by Youenn Fablet.

Make sure our GC threads do not dereference WeakPtr for main thread
objects by tightening our threading assertions in WeakPtr. They are
still allowed to call WeakPtr::get() for now though.

  • wtf/WeakPtr.h:

(WTF::WeakPtrImpl::get):
(WTF::WeakPtrImpl::wasConstructedOnMainThread const):
(WTF::WeakPtr::get const):
(WTF::WeakPtr::operator-> const):
(WTF::WeakPtr::operator* const):

1:32 PM Changeset in webkit [248385] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Add WHLSL and WebGPU to the watchlist file
https://bugs.webkit.org/show_bug.cgi?id=200509

Reviewed by Robin Morisset.

  • Scripts/webkitpy/common/config/watchlist:
12:58 PM Changeset in webkit [248384] by rmorisset@apple.com
  • 2 edits in trunk/Source/WebCore

[WHLSL] Simplify and eliminate redundant work in WHLSLFunctionWriter.cpp
https://bugs.webkit.org/show_bug.cgi?id=200460

Reviewed by Myles Maxfield.

2 trivial simplifications:

  • Replace FunctionDeclarationWriter by a standalone function, there was no reason to make it a subclass of Visitor
  • Avoid an exponential blow-up in the computation of reachable functions.

I have way too much noise on my system (swings back and forth between 7 and 12ms for this phase) to measure a performance win,
but since this patch simplifies things without adding complexity I think it is worth it.

No new test as there is no functional change intended.

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::declareFunction):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::FunctionDefinitionWriter):
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::RenderFunctionDefinitionWriter):
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::ComputeFunctionDefinitionWriter):
(WebCore::WHLSL::Metal::sharedMetalFunctions):
(WebCore::WHLSL::Metal::metalFunctions):

12:50 PM Changeset in webkit [248383] by Keith Rollin
  • 2 edits in trunk/Tools

Unreviewed build fix after r248317 -- disable XCBuild because it
breaks incremental builds.

  • Scripts/webkitdirs.pm:

(canUseXCBuild):

12:48 PM Changeset in webkit [248382] by sbarati@apple.com
  • 4 edits in trunk/Source/WebCore

[WHLSL] checkRecursion, checkTextureReferences, and EscapedVariableCollector should skip stdlib functions
https://bugs.webkit.org/show_bug.cgi?id=200510

Reviewed by Myles C. Maxfield.

We can skip walking the stdlib part of the AST in various semantic checking phases:

  • checkRecursion: the stdlib does not have recursion
  • checkTextureReferences: the stdlib does not have references to textures
  • EscapedVariableCollector: this is used inside preserveVariableLifetimes, and the stdlib never escapes any variables.

This patch speeds up checkRecursion, checkTextureReferences, and preserveVariableLifetimes
by about 1ms each, leading to a 3ms compile time speedup in compute_boids.

  • Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp:

(WebCore::WHLSL::TextureReferencesChecker::visit):

  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:

(WebCore::WHLSL::preserveVariableLifetimes):
(WebCore::WHLSL::EscapedVariableCollector::escapeVariableUse): Deleted.
(WebCore::WHLSL::EscapedVariableCollector::takeEscapedVariables): Deleted.

  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp:
12:43 PM Changeset in webkit [248381] by dino@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Context menu on a universal link produces a blank preview
https://bugs.webkit.org/show_bug.cgi?id=200485
<rdar://problem/53699620>

Reviewed by Tim Horton.

Use the umbrella #import.

  • pal/spi/cocoa/LaunchServicesSPI.h:
12:05 PM Changeset in webkit [248380] by dino@apple.com
  • 4 edits in trunk/Source

Context menu on a universal link produces a blank preview
https://bugs.webkit.org/show_bug.cgi?id=200485
<rdar://problem/53699620>

Reviewed by Dean Jackson.

Source/WebCore/PAL:

Define iTunesStoreURL from CoreServices.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

If the context menu is activated on an iTunesStore URL, pass it
on to DataDetectors, who should know how to handle it.

Two drive-by fixes:

  • make it clear that early returns do not produce a value. Instead call the completion handler first, then return.
  • The new API DataDetectors case doesn't need to worry about hiding link previews as DataDetectors itself will handle that.
  • UIProcess/ios/WKContentViewInteraction.mm: If the URL is an iTunesStoreURL

(as defined by CoreServices), let DataDetectors handle it.
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]): New method to
use DataDetectors if possible.

11:23 AM Changeset in webkit [248379] by russell_e@apple.com
  • 3 edits in trunk/LayoutTests

Updating TestExpectations for Two Failing Layout Tests.
rdar://53779679

Unreviewed Test Gardening.

  • platform/ios-12/TestExpectations:
  • platform/ios/TestExpectations:
11:13 AM Changeset in webkit [248378] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

[WHLSL] cache results of argumentTypeForAndOverload inside Checker
https://bugs.webkit.org/show_bug.cgi?id=200462

Reviewed by Robin Morisset.

When I profiled the time we spent in the checker, it turned out that
argumentTypeForAndOverload is one of the most expensive functions. If
we just cache the results of that function, we can avoid 99% of the
duplicate allocations that function does in compute_boids. This patch
is a ~4ms speedup in the checker on compute_boids.

  • Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp:
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::AndOverloadTypeKey::AndOverloadTypeKey):
(WebCore::WHLSL::AndOverloadTypeKey::isEmptyValue const):
(WebCore::WHLSL::AndOverloadTypeKey::isHashTableDeletedValue const):
(WebCore::WHLSL::AndOverloadTypeKey::hash const):
(WebCore::WHLSL::AndOverloadTypeKey::operator== const):
(WebCore::WHLSL::AndOverloadTypeKey::Hash::hash):
(WebCore::WHLSL::AndOverloadTypeKey::Hash::equal):
(WebCore::WHLSL::AndOverloadTypeKey::Traits::isEmptyValue):
(WebCore::WHLSL::Checker::argumentTypeForAndOverload):
(WebCore::WHLSL::Checker::finishVisiting):
(WebCore::WHLSL::argumentTypeForAndOverload): Deleted.

11:05 AM Changeset in webkit [248377] by youenn@apple.com
  • 8 edits in trunk/Source/WebCore

Remove IDBDatabaseIdentifier::m_sessionID
https://bugs.webkit.org/show_bug.cgi?id=200489

Reviewed by Darin Adler.

IDBDatabaseIdentifier can be created without a valid session ID.
Its session ID is only used in NetworkProcess where it can be retrieved from the IDBServer.
In WebProcess, session ID is also known from the IDB connection.
Update SQLiteIDBBackingStore to store a session ID which is given from its IDBServer.
No observable change of behavior.

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isolatedCopy const):

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::hash const):
(WebCore::IDBDatabaseIdentifier::databaseName const):
(WebCore::IDBDatabaseIdentifier::encode const):
(WebCore::IDBDatabaseIdentifier::decode):
(WebCore::IDBDatabaseIdentifier::sessionID const): Deleted.

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

(WebCore::IDBServer::SQLiteIDBBackingStore::sessionID const):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

10:31 AM Changeset in webkit [248376] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Fix thread safety issue under JSHistory::visitAdditionalChildren()
https://bugs.webkit.org/show_bug.cgi?id=200504

Reviewed by Darin Adler.

JSHistory::visitAdditionalChildren() is called from a GC thread and was calling
History::cachedState() whose implementation goes deep into WebCore
(FrameLoader / HistoryController). Among other things, it null checks m_window
which is a WeakPtr and then later dereferences it to get the Frame object, which
is not safe from the non-main thread.

To address the issue, introduce a simpler cachedStateForGC() getter which is
thread safe, and use it in JSHistory::visitAdditionalChildren().

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::visitAdditionalChildren):

  • page/History.h:
10:25 AM Changeset in webkit [248375] by Alan Coon
  • 4 edits
    2 adds in branches/safari-608.1-branch

Cherry-pick r248368. rdar://problem/54037160

Extra space inserted at start of line when inserting a newline in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=200490
<rdar://problem/53501354>

Reviewed by Antti Koivisto.

Source/WebCore:

This started happening after r244494, which deferred editor state computation until the next layer tree flush
when changing selection. After inserting a paragraph, the act of computing an editor state ensured that the text
node containing the caret drops out of simple line layout, while grabbing the characters near the selection
(i.e., calling charactersAroundPosition). This meant that when we subsequently ask positionAfterSplit whether it
isRenderedCharacter() at the end of the command, we are guaranteed to have line boxes, so we get a meaningful
answer and avoid inserting an extra non-breaking space.

However, after r244494, we defer the editor state computation until the end of the edit command; this means that
we may not have line boxes for positionAfterSplit's text node renderer, due to remaining in simple line layout.
In turn, this means that we end up hitting the assertion in containsRenderedCharacterOffset in debug builds; on
release builds, we simply return false from containsRenderedCharacterOffset, which causes us to insert an extra
space.

To fix this, we educate RenderText::containsRenderedCharacterOffset about simple line layout.

Test: editing/inserting/insert-paragraph-in-designmode-document.html

  • rendering/RenderText.cpp: (WebCore::RenderText::containsRenderedCharacterOffset const): (WebCore::RenderText::containsCaretOffset const):

Changed to use SimpleLineLayout::containsOffset.

  • rendering/SimpleLineLayoutFunctions.h: (WebCore::SimpleLineLayout::containsOffset):

I first contrasted the behavior of RenderTextLineBoxes::containsOffset in the cases where the OffsetType is
CaretOffset or CharacterOffset, and found that the only interesting differences were:

  1. The caret offset type case has special handling for line breaks.
  2. Both offset types have handling for reversed text.
  3. The end offset of a line box contains a caret offset, but not a character offset.

For the purposes of OffsetType CharacterOffset, (1) is irrelevant; furthermore, (2) is already not handled by
logic in containsCaretOffset(). Thus, the only major difference in the CharacterOffset case should be (3), which
we handle by only allowing the case where the given offset is equal to the very end of a text run for caret
offsets, and not character offsets.

(WebCore::SimpleLineLayout::containsCaretOffset): Deleted.

Renamed to just containsOffset.

LayoutTests:

Add a new test to verify that inserting a newline in the middle of text in a document with designMode "on"
doesn't insert an extra space at the beginning of the newly inserted line.

  • editing/inserting/insert-paragraph-in-designmode-document-expected.txt: Added.
  • editing/inserting/insert-paragraph-in-designmode-document.html: Added.

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

10:25 AM Changeset in webkit [248374] by Devin Rousso
  • 11 edits in trunk/Source/JavaScriptCore

Rebase inspector generator tests.

Rubber-stamped by Brian Burg.

  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
10:24 AM Changeset in webkit [248373] by commit-queue@webkit.org
  • 27 edits
    8 adds in trunk

Allow clients to toggle a text input field between being viewable and having characters hidden while maintaining
a yellow auto-filled appearance
https://bugs.webkit.org/show_bug.cgi?id=200037
rdar://problem/51900961

Patch by Priyanka Agarwal <pagarwal999@apple.com> on 2019-08-07
Reviewed by Daniel Bates.

Source/WebCore:

Tests: fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset.html

fast/forms/auto-fill-button/input-strong-password-viewable.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):
Adding CSSSelector case for new pseudo class of AutofillStrongPasswordViewable.

  • css/CSSSelector.h: Added PseudoClassAutofillStrongPasswordViewable
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const): Added handling for SelectorChecker.cpp

  • css/SelectorCheckerTestFunctions.h:

(WebCore::isAutofilledStrongPasswordViewable):
Checking if the element is an input element and considered to be
AutoFilled and Viewable. Returns a boolean accordingly.

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:

Add -webkit-autofill-strong-password-viewable css class.

  • css/html.css:

(input:-webkit-autofill, input:-webkit-autofill-strong-password, input:-webkit-autofill-strong-password-viewable):
(input:-webkit-autofill-strong-password-viewable):
(input:-webkit-autofill, input:-webkit-autofill-strong-password): Deleted. Updated to include viewable pseudo class.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
Add case handling for PseudoClassAutofillStrongPasswordViewable.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::HTMLInputElement):
Add boolean m_isAutoFilledAndViewable for representing if the
input element is both AutoFilled and should be viewable.
Don't update the viewable treatment in setValueFromRenderer() because even if the user makes edits to the input field
the visual treatment should still be applied.

(WebCore::HTMLInputElement::resignStrongPasswordAppearance):
Updates boolean representing if input element is autofilled and viewable to false.

(WebCore::HTMLInputElement::reset):
Updates boolean representing if input element is autofilled and viewable to false.

(WebCore::HTMLInputElement::setAutoFilledAndViewable):
Setter function for the boolean of m_isAutoFilledAndViewable.

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::isAutoFilledAndViewable const):
Creating boolean value for m_isAutoFilledAndViewable.

  • testing/Internals.cpp:

(WebCore::Internals::setAutoFilledAndViewable): Adding for testing purposes.

  • testing/Internals.h: Adding for testing purposes.
  • testing/Internals.idl:

Source/WebKit:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle HTMLInputElementIsAutoFilledAndViewable]):
Accessor function for boolean which represents if the input element is autofilled and viewable.

(-[WKWebProcessPlugInNodeHandle setHTMLInputElementIsAutoFilledAndViewable:]):
Setter function for boolean which represents if the input element is autofilled and viewable.

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(WKBundleNodeHandleSetHTMLInputElementAutoFilledAndViewable):
Accessor function for boolean which represents if the input element is autofilled and viewable.

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:

Creating function declaration for boolean setter.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

Accessor function for boolean which represents if the input element is autofilled and viewable.

(WebKit::InjectedBundleNodeHandle::isHTMLInputElementAutoFilledAndViewable const):
Setter function for boolean which represents if the input element is autofilled and viewable.

(WebKit::InjectedBundleNodeHandle::setHTMLInputElementAutoFilledAndViewable):
Setter function for boolean which represents if the input element is autofilled and viewable.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:

Adding setter and getter functions for the boolean which represents if the input element is autofilled
and viewable.

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMHTMLInputElement _isAutoFilledAndViewable]):
(-[DOMHTMLInputElement _setAutoFilledAndViewable:]):

  • DOM/WebDOMOperationsPrivate.h:

LayoutTests:

  • fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset.html: Added.

Test for when the form is reset to no longer be autofilled.

  • fast/forms/auto-fill-button/input-strong-password-viewable.html: Added.

Test for when the form is set to being autofilled and viewable.

  • fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js:

(window.onload): Javascript used by test to set the element to be autofilled and viewable added

  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt: Added.
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
10:22 AM Changeset in webkit [248372] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Add more threading assertions to ITP code
https://bugs.webkit.org/show_bug.cgi?id=200505

Reviewed by Brent Fulgham.

Add more threading assertions to ITP code to help catch bugs and protect against future bad usage.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::isEmpty const):
(WebKit::ResourceLoadStatisticsMemoryStore::setPersistentStorage):
(WebKit::ResourceLoadStatisticsMemoryStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::classifyPrevalentResources):
(WebKit::ResourceLoadStatisticsMemoryStore::syncStorageIfNeeded):
(WebKit::ResourceLoadStatisticsMemoryStore::syncStorageImmediately):
(WebKit::ResourceLoadStatisticsMemoryStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::statisticsEpirationTime const):
(WebKit::ResourceLoadStatisticsStore::mergeOperatingDates):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::hasStorageAccessForFrame):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):
(WebKit::WebResourceLoadStatisticsStore::logWebSocketLoading):
(WebKit::WebResourceLoadStatisticsStore::logSubresourceLoading):
(WebKit::WebResourceLoadStatisticsStore::logSubresourceRedirect):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::removePrevalentDomains):
(WebKit::WebResourceLoadStatisticsStore::networkSession):
(WebKit::WebResourceLoadStatisticsStore::invalidateAndCancel):
(WebKit::WebResourceLoadStatisticsStore::sendDiagnosticMessageWithValue const):
(WebKit::WebResourceLoadStatisticsStore::notifyPageStatisticsTelemetryFinished const):

10:19 AM Changeset in webkit [248371] by Ryan Haddad
  • 4 edits in trunk/Source

Unreviewed, rolling out r248330.

Breaks internal builds.

Reverted changeset:

"Context menu on a universal link produces a blank preview"
https://bugs.webkit.org/show_bug.cgi?id=200485
https://trac.webkit.org/changeset/248330

10:17 AM Changeset in webkit [248370] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Declarations and implementations of findCaret(Min|Max)imumOffset have inconsistent signatures
https://bugs.webkit.org/show_bug.cgi?id=200503

Reviewed by Darin Adler.

No change in behavior.

  • rendering/SimpleLineLayoutFunctions.h:

Update these function declarations to take "const RenderText&", which matches the signatures of their inline
implementations below.

9:41 AM Changeset in webkit [248369] by Kocsen Chung
  • 3 edits in branches/safari-608.1-branch/Source/WebCore

Cherry-pick r248173. rdar://problem/54036774

Harden NodeRareData::m_connectedFrameCount
https://bugs.webkit.org/show_bug.cgi?id=200300

Reviewed by Geoffrey Garen.

Use unsinged integer type in NodeRareData::m_connectedFrameCount since it's padded anyway.

  • dom/Node.cpp: (WebCore::Node::decrementConnectedSubframeCount): Check that hasRareNode() is true in release builds.
  • dom/NodeRareData.h:

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

9:23 AM Changeset in webkit [248368] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Extra space inserted at start of line when inserting a newline in Mail compose
https://bugs.webkit.org/show_bug.cgi?id=200490
<rdar://problem/53501354>

Reviewed by Antti Koivisto.

Source/WebCore:

This started happening after r244494, which deferred editor state computation until the next layer tree flush
when changing selection. After inserting a paragraph, the act of computing an editor state ensured that the text
node containing the caret drops out of simple line layout, while grabbing the characters near the selection
(i.e., calling charactersAroundPosition). This meant that when we subsequently ask positionAfterSplit whether it
isRenderedCharacter() at the end of the command, we are guaranteed to have line boxes, so we get a meaningful
answer and avoid inserting an extra non-breaking space.

However, after r244494, we defer the editor state computation until the end of the edit command; this means that
we may not have line boxes for positionAfterSplit's text node renderer, due to remaining in simple line layout.
In turn, this means that we end up hitting the assertion in containsRenderedCharacterOffset in debug builds; on
release builds, we simply return false from containsRenderedCharacterOffset, which causes us to insert an extra
space.

To fix this, we educate RenderText::containsRenderedCharacterOffset about simple line layout.

Test: editing/inserting/insert-paragraph-in-designmode-document.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::containsRenderedCharacterOffset const):
(WebCore::RenderText::containsCaretOffset const):

Changed to use SimpleLineLayout::containsOffset.

  • rendering/SimpleLineLayoutFunctions.h:

(WebCore::SimpleLineLayout::containsOffset):

I first contrasted the behavior of RenderTextLineBoxes::containsOffset in the cases where the OffsetType is
CaretOffset or CharacterOffset, and found that the only interesting differences were:

  1. The caret offset type case has special handling for line breaks.
  2. Both offset types have handling for reversed text.
  3. The end offset of a line box contains a caret offset, but not a character offset.

For the purposes of OffsetType CharacterOffset, (1) is irrelevant; furthermore, (2) is already not handled by
logic in containsCaretOffset(). Thus, the only major difference in the CharacterOffset case should be (3), which
we handle by only allowing the case where the given offset is equal to the very end of a text run for caret
offsets, and not character offsets.

(WebCore::SimpleLineLayout::containsCaretOffset): Deleted.

Renamed to just containsOffset.

LayoutTests:

Add a new test to verify that inserting a newline in the middle of text in a document with designMode "on"
doesn't insert an extra space at the beginning of the newly inserted line.

  • editing/inserting/insert-paragraph-in-designmode-document-expected.txt: Added.
  • editing/inserting/insert-paragraph-in-designmode-document.html: Added.
9:22 AM Changeset in webkit [248367] by Kocsen Chung
  • 3 edits in branches/safari-608.1-branch/Source/WebKit

Revert r247657. rdar://problem/54017957

9:08 AM Changeset in webkit [248366] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

ASSERT that a sessionID is valid when encoding it
https://bugs.webkit.org/show_bug.cgi?id=199302

Reviewed by Darin Adler.

Source/WebCore:

For IDBValue, instead of encoding an invalid session ID, encode a boolean that tells there is no sessionID.
For IDBRequestData, keep track of whether there is an IDBDatabaseIdentifier
and encode/decode accordingly to not encode an invalid sessionID.
No observable change of behavior.

  • Modules/indexeddb/IDBValue.h:

(WebCore::IDBValue::sessionID const):
(WebCore::IDBValue::encode const):
(WebCore::IDBValue::decode):

  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::isolatedCopy):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::databaseIdentifier const):
(WebCore::IDBRequestData::decode):

Source/WebCore/PAL:

ASSERT that a sessionID is valid at encoding/decoding time.

  • pal/SessionID.h:

(PAL::SessionID::encode const):
(PAL::SessionID::decode):

8:32 AM Changeset in webkit [248365] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] Rename FormattingContext::layoutOutOfFlowDescendants to layoutOutOfFlowContent
https://bugs.webkit.org/show_bug.cgi?id=200502
<rdar://problem/54032534>

Reviewed by Antti Koivisto.

The layoutOutOfFlowDescendants name is not entirely accurate. In a formatting context we only
lay out the out-of-flow boxes that actually belong to the current formatting context.

<div style="float: left">

<div id=outer style="position: absolute">

<div id=inner style="position: absolute"></div>

</div>

</div>

The float's formatting context only lays out the outer absolutely positioned box. The inner box
(which is also an out-of-flow descendant of the float box) is taken care of by the outer box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const): Deleted.

  • layout/FormattingContext.h:
  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const):

7:23 AM Changeset in webkit [248364] by Alan Bujtas
  • 9 edits
    2 adds in trunk/Source/WebCore

[LFC] Introduce Layout::Phase class
https://bugs.webkit.org/show_bug.cgi?id=200473
<rdar://problem/53996061>

Reviewed by Antti Koivisto.

It helps to check whether we could run certain actions like layout while constructing the tree.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutState.h:
  • layout/floats/FloatingContext.cpp:
  • layout/inlineformatting/InlineLine.cpp:
  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesFormattingContext const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutTree):

5:41 AM Changeset in webkit [248363] by Caio Lima
  • 4 edits in trunk/Source/JavaScriptCore

High number of cache miss on localTimeOffset
https://bugs.webkit.org/show_bug.cgi?id=200444

Reviewed by Darin Adler.

This patch is separating the LocalTimeOffsetCache for each
WTF::TimeType to avoid constant cache miss on pathological cases
where gregorianDateTimeToMS and msToGregorianDateTime are
intercaleted with inputTimeType == WTF::LocalTime. Such case
happens during execution of Facebook Messenger
(https://www.messenger.com).

  • runtime/JSDateMath.cpp:

(JSC::localTimeOffset):
(JSC::gregorianDateTimeToMS):

  • runtime/VM.cpp:

(JSC::VM::resetDateCache):

  • runtime/VM.h:

(JSC::LocalTimeOffsetCache::LocalTimeOffsetCache):
(JSC::LocalTimeOffsetCache::reset):

3:44 AM Changeset in webkit [248362] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

context-attributes-alpha-depth-stencil-antialias fails on WPE WebKit
https://bugs.webkit.org/show_bug.cgi?id=200434

Patch by Chris Lord <Chris Lord> on 2019-08-07
Reviewed by Žan Doberšek.

This patch fixes 16-bit surfaces being used for FBOs with no
alpha component when using the GLES implementation of GraphicsContext3D.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Use GL_UNSIGNED_BYTE instead of GL_UNSIGNED_SHORT_5_6_5 for surfaces with no alpha.

Note: See TracTimeline for information about the timeline view.