⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



May 19, 2019:

11:08 PM Changeset in webkit [245511] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Add support for %pid in dumpJITMemoryPath
https://bugs.webkit.org/show_bug.cgi?id=198026

Reviewed by Saam Barati.

This is necessary when using dumpJITMemory with Safari. Otherwise, multiple WebContent
processes will try to write to the same file at the same time, which will crash since
the file is open with exclusive locking.

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

8:40 PM Changeset in webkit [245510] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r245508.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Don't use

an 'import' directive in a C++ file.

8:15 PM Changeset in webkit [245509] by Brent Fulgham
  • 3 edits
    2 adds in trunk

Wait to get frame until after layout has been run
https://bugs.webkit.org/show_bug.cgi?id=197999
<rdar://problem/50800345>

Reviewed by Alex Christensen.

Source/WebCore:

The current frame can change when layout runs, so don't bother retrieving
the frame until the final layout pass is complete.

Test: fast/dom/window-inner-width-crash.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::innerHeight const): Move frame access past the
layout operation.
(WebCore::DOMWindow::innerWidth const): Ditto.
(WebCore::DOMWindow::scrollX const): Ditto.
(WebCore::DOMWindow::scrollY const): Ditto.

LayoutTests:

  • fast/dom/window-inner-width-crash-expected.txt: Added.
  • fast/dom/window-inner-width-crash.html: Added.
5:48 PM Changeset in webkit [245508] by Brent Fulgham
  • 47 edits in trunk/Source/WebCore

Unreviewed build fix

Attempting to build with only Open Source sources on shipping software with
ASan enabled triggers build failures due to missing includes. This patch adds
the necessary includes to cleanly build WebCore.

  • Modules/applepay/ApplePaySession.cpp:
  • Modules/applepay/PaymentSession.cpp:
  • Modules/mediastream/UserMediaController.cpp:
  • bindings/js/ScriptController.cpp:
  • contentextensions/ContentExtensionsBackend.cpp:
  • dom/Document.cpp:
  • dom/ScriptedAnimationController.cpp:
  • editing/cocoa/EditorCocoa.mm:
  • editing/cocoa/HTMLConverter.mm:
  • editing/cocoa/WebContentReaderCocoa.mm:
  • editing/markup.cpp:
  • history/CachedFrame.cpp:
  • html/HTMLDocument.cpp:
  • html/HTMLHtmlElement.cpp:
  • html/HTMLMediaElement.cpp:
  • html/ImageDocument.cpp:
  • html/MediaDocument.cpp:
  • html/PluginDocument.cpp:
  • html/parser/HTMLDocumentParser.cpp:
  • html/parser/XSSAuditor.cpp:
  • inspector/InspectorInstrumentation.cpp:
  • inspector/agents/InspectorApplicationCacheAgent.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • inspector/agents/InspectorPageAgent.cpp:
  • inspector/agents/page/PageNetworkAgent.cpp:
  • loader/ApplicationManifestLoader.cpp:
  • loader/FrameLoader.cpp:
  • loader/LoadTiming.cpp:
  • loader/NetscapePlugInStreamLoader.cpp:
  • loader/ResourceLoader.cpp:
  • loader/SubresourceLoader.cpp:
  • loader/appcache/ApplicationCacheHost.cpp:
  • loader/archive/cf/LegacyWebArchive.cpp:
  • loader/icon/IconLoader.cpp:
  • page/ContextMenuController.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/Performance.cpp:
  • page/PerformanceNavigation.cpp:
  • page/Quirks.cpp:
  • page/UserContentProvider.cpp:
  • page/csp/ContentSecurityPolicy.cpp:
  • page/mac/PageMac.mm:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
  • svg/graphics/SVGImage.cpp:
  • testing/Internals.cpp:
2:43 PM Changeset in webkit [245507] by graouts@webkit.org
  • 5 edits
    8 adds in trunk

[Pointer Events] Listening to a "pointerover", "pointerenter", "pointerout" or "pointerleave" event alone does not fire the event on iOS
https://bugs.webkit.org/show_bug.cgi?id=197882
<rdar://problem/50769116>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: pointerevents/ios/pointerenter-alone.html

pointerevents/ios/pointerleave-alone.html
pointerevents/ios/pointerout-alone.html
pointerevents/ios/pointerover-alone.html

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):
(WebCore::EventNames::touchRelatedEventNames const):
(WebCore::EventNames::extendedTouchRelatedEventNames const):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

LayoutTests:

Add new tests that check that adding a "pointerover", "pointerenter", "pointerout" or "pointerleave" event listener alone dispatches the
event as expected.

  • pointerevents/ios/pointerenter-alone-expected.txt: Added.
  • pointerevents/ios/pointerenter-alone.html: Added.
  • pointerevents/ios/pointerleave-alone-expected.txt: Added.
  • pointerevents/ios/pointerleave-alone.html: Added.
  • pointerevents/ios/pointerout-alone-expected.txt: Added.
  • pointerevents/ios/pointerout-alone.html: Added.
  • pointerevents/ios/pointerover-alone-expected.txt: Added.
  • pointerevents/ios/pointerover-alone.html: Added.
2:37 PM Changeset in webkit [245506] by graouts@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

[Pointer Events] The pointerup, pointerout and pointerleave events may be fired twice
https://bugs.webkit.org/show_bug.cgi?id=198028
<rdar://problem/50769425>

Reviewed by Dean Jackson.

Add a new test that checks that we're firing a "pointermove" event when the touch pressure
changes, even when the touch is stationary, and that a single "pointerup" event is fired
as the touch ends and the pressure changes. The relevant code change is done in WebKitAdditions.

  • pointerevents/ios/pressure-change-expected.txt: Added.
  • pointerevents/ios/pressure-change.html: Added.
  • pointerevents/utils.js:

(prototype._handlePointerEvent):
(prototype.stationary):
(prototype._action):

2:34 PM Changeset in webkit [245505] by graouts@webkit.org
  • 8 edits in trunk

[Pointer Events] A pointer should be marked as primary for all of its events
https://bugs.webkit.org/show_bug.cgi?id=197909
<rdar://problem/50801608>

Reviewed by Dean Jackson.

Source/WebCore:

Add an ivar for EventHandler which we'll use in WebKitAdditions code to track the touch identifier
of the very first touch to start in a given sequence.

  • page/EventHandler.h:

LayoutTests:

Update tests to match expectations that only the first touch of a sequence is the primary pointer,
which applies to all of its events, even after the even is no longer touching the digitizer.

  • pointerevents/ios/over-enter-out-leave.html:
  • pointerevents/ios/pointer-event-order.html:
  • pointerevents/ios/pointer-events-implicit-capture.html:
  • pointerevents/ios/pointer-events-is-primary-expected.txt:
  • pointerevents/ios/pointer-events-is-primary.html:
11:17 AM Changeset in webkit [245504] by Darin Adler
  • 15 edits in trunk

Change String::number to use "shortest" instead of "fixed precision 6 digits"
https://bugs.webkit.org/show_bug.cgi?id=178319

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/atk/WebKitAccessibleInterfaceValue.cpp:

(webkitAccessibleSetNewValue): Use String::numberToStringFixedPrecision
instead of String::number to be explicit about the fact that it's fixed precision.

  • page/linux/ResourceUsageOverlayLinux.cpp:

(gcTimerString): Ditto.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(printTransform): Use appendFixedPrecisionNumber instead of appendNumber
to be explicit about the fact that it's fixed precision.
(printLayer): Ditto.
(WebCore::PlatformCALayerWin::layerTreeAsString const): Ditto.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(buildVariationSettings): Ditto.

  • svg/SVGNumberList.h: Use appendFixedPrecisionNumber instead of appendNumber

to be explicit about the fact that it's fixed precision. We'll consider moving
to shortest later.

  • svg/SVGPathUtilities.cpp:

(WebCore::buildStringFromPath): Use appendNumberShortest instead of
appendNumberECMAScript since these are single-precision.

  • svg/SVGPointList.h: Use appendFixedPrecisionNumber instead of appendNumber

to be explicit about the fact that it's fixed precision. We'll consider moving
to shortest later.

  • svg/SVGTransformValue.h: Ditto.

Source/WTF:

  • wtf/text/StringBuilder.h: Delete appendNumber for floating point and

appendECMAScriptNumber for single-precision.

  • wtf/text/WTFString.h: Delete String::number for floating point and

numberToStringECMAScript for single-precision.

Tools:

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::testStringNumberFixedPrecision): Use String::numberToStringFixedPrecision.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(attributesOfElement): Use appendFixedPrecisionNumber.

10:12 AM Changeset in webkit [245503] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Decrease spacing before and after tooltip paragraphs
https://bugs.webkit.org/show_bug.cgi?id=198024

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Popover.css:

(.popover p): Added.
(.popover p + p): Added.

7:01 AM Changeset in webkit [245502] by Simon Fraser
  • 4 edits
    2 adds in trunk

Layers painting into shared backing need to contribute to overlap
https://bugs.webkit.org/show_bug.cgi?id=198021

Reviewed by Zalan Bujtas.
Source/WebCore:

Layers that paint into a composited (non-root) layer get added to the overlap map so
that later layers correct overlap them; this is done via the test against currentState.compositingAncestor.

We need the same logic for layers that paint into shared backing; they need to behave
the same way in terms of how they contribute to overlap. We already had currentState.backingSharingAncestor
which was unused, but now use it for this, and correctly null it out when a layer composites.

Bug was noticed during testing, and not known to affect any websites (though it probably does).

Also move the overlap container popping into updateOverlapMap() so the two callers can
share the code, and more explicitly track whether a container was pushed.

Test: compositing/shared-backing/sharing-child-contributes-to-overlap.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::updateOverlapMap const):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • compositing/shared-backing/sharing-child-contributes-to-overlap-expected.html: Added.
  • compositing/shared-backing/sharing-child-contributes-to-overlap.html: Added.
12:46 AM Changeset in webkit [245501] by commit-queue@webkit.org
  • 4 edits
    3 deletes in trunk/Source/WebKit

Revert r240956
https://bugs.webkit.org/show_bug.cgi?id=198007
<rdar://problem/49808949>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-05-19
Reviewed by Alexey Proskuryakov.

r240956 made SafariForWebKitDevelopment crash when using WebKit nightly builds.
Since it's not needed and the binary reduction wasn't too big, just revert that revision.

  • Shared/API/Cocoa/WKMain.h: Removed.
  • Shared/API/Cocoa/WKMain.mm: Removed.
  • Shared/EntryPointUtilities/Cocoa/AuxiliaryProcessMain.cpp: Removed.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(main):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

May 18, 2019:

5:42 PM Changeset in webkit [245500] by jiewen_tan@apple.com
  • 19 edits in trunk

[WebAuthN] Allow authenticators that support both CTAP and U2F to try U2F if CTAP fails in authenticatorGetAssertion
https://bugs.webkit.org/show_bug.cgi?id=197974
<rdar://problem/50879746>

Reviewed by Brent Fulgham.

Source/WebKit:

Authenticators that support both CTAP and U2F protocols can be used in a U2F enabled browser to create a credential in
U2F format. When such authenticator is used to login in WebKit, it will be treated as a CTAP authenticator. Since the
previous credential is in U2F format, the authenticator will not consider that as a valid credential when CTAP requests
come along for that U2F credential. Therefore the previous created U2F credential will not be asked at all, and users
will not be able to login. This situation is not well documented in the CTAP/WebAuthN spec yet.

To workaround the above issue, an authenticator that supports both protocols will be downgraded to a U2F authenticator
to ask a potential U2F credential once a valid error is returned regarding to the first CTAP request.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::downgrade):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:

(WebKit::MockHidConnection::parseRequest):
(WebKit::MockHidConnection::feedReports):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:
  • UIProcess/WebAuthentication/fido/CtapHidAuthenticator.cpp:

(WebKit::CtapHidAuthenticator::makeCredential):
(WebKit::CtapHidAuthenticator::getAssertion):
(WebKit::CtapHidAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapHidAuthenticator::tryDowngrade):
(WebKit::CtapHidAuthenticator::continueGetAssertionAfterResponseReceived const): Deleted.

  • UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h:

Tools:

Add a canDowngrade option for mock hid devices to simulate the situation.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https.html:
  • http/wpt/webauthn/resources/util.js:
12:12 AM Changeset in webkit [245499] by Tadeu Zagallo
  • 7 edits in trunk

Add extra information to dumpJITMemory
https://bugs.webkit.org/show_bug.cgi?id=197998

Reviewed by Saam Barati.

Source/JavaScriptCore:

Add ktrace events around the memory dump and mach_absolute_time to link the
events with the entries in the dump. Additionally, add a background queue
to flush on a configurable interval, since the atexit callback does not work
in every situation.

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

  • runtime/Options.h:

Source/WTF:

Add a new trace point code for JSC::dumpJITMemory

  • wtf/SystemTracing.h:

Tools:

Add description for the new dumpJITMemory trace point code.

  • Tracing/SystemTracePoints.plist:
Note: See TracTimeline for information about the timeline view.