Timeline



Apr 20, 2019:

5:03 PM Changeset in webkit [244491] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

REGRESSION (r243137): SVGViewElement.viewTarget should not return a new object
https://bugs.webkit.org/show_bug.cgi?id=197137

Reviewed by Darin Adler.

Source/WebCore:

All the DOM objects accessing the viewTarget of the same SVGViewElement
should hold a Ref pointer to the same SVGStringList property.

Test: svg/dom/SVGViewElement-viewTarget.html

  • svg/SVGViewElement.idl:

LayoutTests:

  • svg/dom/SVGViewElement-viewTarget-expected.txt: Added.
  • svg/dom/SVGViewElement-viewTarget.html: Added.
4:46 PM Changeset in webkit [244490] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r243958): Unnecessary deactivation of AudioSession (PLT Regression)
https://bugs.webkit.org/show_bug.cgi?id=197123
<rdar://problem/49783264>

Reviewed by Per Arne Vollan.

Only set m_becameActive if we actually activated the AudioSession before starting playback. This
avoids unnecessarily deactivating the AudioSession in processWillSuspend().

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):

12:16 PM Changeset in webkit [244489] by rniwa@webkit.org
  • 2 edits in trunk/Source/WTF

HashTable::removeIf always shrinks the hash table by half even if there is nothing left
https://bugs.webkit.org/show_bug.cgi?id=196681
<rdar://problem/49917764>

Reviewed by Darin Adler.

Address Darin's comments by removing the explicit type from std::max.

  • wtf/HashTable.h:

(WTF::KeyTraits>::computeBestTableSize):
(WTF::KeyTraits>::shrinkToBestSize):

12:00 PM Changeset in webkit [244488] by don.olmstead@sony.com
  • 12 edits in trunk

[CMake][Win] Use target oriented design for WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=197112

Reviewed by Konstantin Tokarev.

.:

Override WebKitLegacy_DERIVED_SOURCES_DIR within WinCairo in support of a target
oriented design.

  • Source/cmake/OptionsWinCairo.cmake:

Source/WebKitLegacy:

Enumerate the public framework headers for WebKitLegacy and copy them. Include
directories should be PRIVATE. Migrate to using WebKitLegacy_DERIVED_SOURCES_DIR.

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy/win:

Fix an include directory.

  • WebKitQuartzCoreAdditions/CMakeLists.txt:

Tools:

Fix includes and libraries for DumpRenderTree after changes to WebKitLegacy targets.

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/EventSender.cpp:
11:44 AM Changeset in webkit [244487] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Update text for old EWS submit button
https://bugs.webkit.org/show_bug.cgi?id=197140

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/templates/statusbubble.html:
11:31 AM Changeset in webkit [244486] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] New EWS should poll bugzilla more frequently
https://bugs.webkit.org/show_bug.cgi?id=197138

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-app/ews/fetcher.py:

(FetchLoop.init):

11:30 AM Changeset in webkit [244485] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-app] Submit to EWS buttons are not aligned properly with status-bubbles
https://bugs.webkit.org/show_bug.cgi?id=197139

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-app/ews/templates/statusbubble.html:
  • QueueStatusServer/templates/statusbubble.html:
9:44 AM Changeset in webkit [244484] by Chris Dumez
  • 5 edits in trunk

Unreviewed, fix iOS build with recent SDKs.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(deviceOrientation):

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]):
(-[WKFullScreenViewController _statusBarFrameDidChange:]):

Tools:

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
12:08 AM Changeset in webkit [244483] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress warnings in non Darwin environments

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

Apr 19, 2019:

8:57 PM Changeset in webkit [244482] by Megan Gardner
  • 3 edits in trunk/LayoutTests

Fix Long Press Image Test
https://bugs.webkit.org/show_bug.cgi?id=197130
<rdar://problem/50058818>

Reviewed by Wenson Hsieh.

Fixing up test to reflect changes in https://bugs.webkit.org/show_bug.cgi?id=196833

  • fast/events/touch/ios/long-press-on-image-expected.txt:
  • fast/events/touch/ios/long-press-on-image.html:
8:29 PM Changeset in webkit [244481] by ysuzuki@apple.com
  • 19 edits
    5 copies
    2 adds in trunk/Source/bmalloc

[bmalloc] IsoHeap should have lower tier using shared IsoPage
https://bugs.webkit.org/show_bug.cgi?id=196837

Reviewed by Filip Pizlo.

IsoHeap had a scalability problem. Once one instance is allocated from IsoHeap, it immediately allocates 16KB page for this type.
But some types allocate only a few instances. It leads to memory wastage, and it also limits the scalability of IsoHeap since
we need to carefully select classes which will be confined in IsoHeap due to this characteristics. If we can remove this wastage,
we can apply IsoHeap more aggressively without causing memory regression, this is the goal of this patch.

In this patch, we introduce a slow tier to IsoHeap allocation. Initially, the allocator for a certain type allocates instances from
a shared page with the other allocators, and eventually, the allocator tiers up and gets dedicated pages if instances of the type
are allocated a lot. This "shared" tier is slow, but it is totally OK because we will tier up to the normal fast tier if allocation
frequently happens. Even the instance is allocated from pages shared with the other allocators, we still make the allocated memory
region dedicated to the specific type: once a memory region is allocated for a certain type from a shared page, this region continues
being used only for this type even after this memory is freed. To summarize the changes:

  1. We introduce "shared" tier to IsoHeap allocation. Up to N (N = 8 for now, but we can pick any power-of-two numbers up to 32) allocations, we continue using this tier. We allocate memory from shared pages so that we do not waste 16KB pages for types which only allocates a few instances.
  1. We eventually tier up to the "fast" tier, and eventually tier down to the "shared" tier too. We measure the period between slow paths, and switch the appropriate tier for the type. Currently, we use 1 seconds as heuristics. We also count # of allocations per cycle to avoid pathological slow downs.
  1. Shared page mechanism must keep the characteristics of IsoHeap. Once a memory region is allocated for a certain type, this memory region must be dedicated to this type. We keep track the allocated memory regions from shared pages in IsoHeapImpl, and ensure that we never reuse a memory region for a different type.

This patch improves PLUM2 by 1.4% (128.4MB v.s. 126.62MB), and early Speedometer2 results are performance-neutral.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Algorithm.h:

(bmalloc::roundUpToMultipleOfImpl):
(bmalloc::roundUpToMultipleOf):

  • bmalloc/BCompiler.h:
  • bmalloc/BExport.h:
  • bmalloc/FreeList.h:
  • bmalloc/IsoAllocator.h:
  • bmalloc/IsoAllocatorInlines.h:

(bmalloc::IsoAllocator<Config>::allocateSlow):

  • bmalloc/IsoDeallocator.h:
  • bmalloc/IsoDeallocatorInlines.h:

(bmalloc::IsoDeallocator<Config>::deallocate):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::forEachLiveObject):
(bmalloc::IsoHeapImpl<Config>::updateAllocationMode):
(bmalloc::IsoHeapImpl<Config>::allocateFromShared):

  • bmalloc/IsoPage.h:

(bmalloc::IsoPageBase::IsoPageBase):
(bmalloc::IsoPageBase::isShared const):

  • bmalloc/IsoPageInlines.h:

(bmalloc::IsoPage<Config>::IsoPage):
(bmalloc::IsoPageBase::pageFor):
(bmalloc::IsoPage<Config>::pageFor):
(bmalloc::IsoPage<Config>::free):

  • bmalloc/IsoSharedConfig.h: Copied from Source/bmalloc/bmalloc/BExport.h.
  • bmalloc/IsoSharedHeap.cpp: Copied from Source/bmalloc/bmalloc/BExport.h.
  • bmalloc/IsoSharedHeap.h: Copied from Source/bmalloc/bmalloc/IsoAllocator.h.

(bmalloc::VariadicBumpAllocator::VariadicBumpAllocator):
(bmalloc::IsoSharedHeap::IsoSharedHeap):

  • bmalloc/IsoSharedHeapInlines.h: Added.

(bmalloc::VariadicBumpAllocator::allocate):
(bmalloc::IsoSharedHeap::allocateNew):
(bmalloc::IsoSharedHeap::allocateSlow):

  • bmalloc/IsoSharedPage.cpp: Copied from Source/bmalloc/bmalloc/BExport.h.

(bmalloc::IsoSharedPage::tryCreate):

  • bmalloc/IsoSharedPage.h: Copied from Source/bmalloc/bmalloc/IsoDeallocator.h.

(bmalloc::IsoSharedPage::IsoSharedPage):
(bmalloc::indexSlotFor):

  • bmalloc/IsoSharedPageInlines.h: Added.

(bmalloc::IsoSharedPage::free):
(bmalloc::IsoSharedPage::startAllocating):
(bmalloc::IsoSharedPage::stopAllocating):

  • bmalloc/IsoTLS.h:
  • bmalloc/IsoTLSInlines.h:

(bmalloc::IsoTLS::deallocateImpl):
(bmalloc::IsoTLS::deallocateFast):
(bmalloc::IsoTLS::deallocateSlow):

  • bmalloc/StdLibExtras.h:

(bmalloc::bitwise_cast):

  • test/testbmalloc.cpp:

(testIsoMallocAndFreeFast):
(run):

5:37 PM Changeset in webkit [244480] by sbarati@apple.com
  • 5 edits
    1 add in trunk

AbstractValue can represent more than int52
https://bugs.webkit.org/show_bug.cgi?id=197118
<rdar://problem/49969960>

Reviewed by Michael Saboff.

JSTests:

  • stress/abstract-value-can-include-int52.js: Added.

(foo):
(index.index.8.index.60.index.65.index.1234.index.1234.parseInt.string_appeared_here.String.fromCharCode):

Source/JavaScriptCore:

Let's analyze this control flow diamond:

#0
branch #1, #2

#1:
PutStack(JSValue, loc42)
Jump #3

#2:
PutStack(Int52, loc42)
Jump #3

#3:
...

Our abstract value for loc42 at the head of #3 will contain an abstract
value that us the union of Int52 with other things. Obviously in the
above program, a GetStack for loc42 would be inavlid, since it might
be loading either JSValue or Int52. However, the abstract interpreter
just tracks what the value could be, and it could be Int52 or JSValue.

When I did the Int52 refactoring, I expected such things to never happen,
but it turns out it does. We should just allow for this instead of asserting
against it since it's valid IR to do the above.

  • bytecode/SpeculatedType.cpp:

(JSC::dumpSpeculation):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::checkConsistency const):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::validateTypeAcceptingBoxedInt52 const):

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

Web Inspector: Timelines: CPU: remove extra border under last section
https://bugs.webkit.org/show_bug.cgi?id=197120

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CPUTimelineView.css:

(.timeline-view.cpu > .content > .overview):
(.timeline-view.cpu > .content > .overview:not(:last-child)): Added.

5:33 PM Changeset in webkit [244478] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: Timelines: CPU: ensure that tracking stops when disconnecting Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=197115
<rdar://problem/49877875>

Reviewed by Joseph Pecoraro.

  • inspector/agents/InspectorCPUProfilerAgent.cpp:

(WebCore::InspectorCPUProfilerAgent::willDestroyFrontendAndBackend):

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

Web Inspector: Timelines: adjust default Media timeline column widths
https://bugs.webkit.org/show_bug.cgi?id=197114

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/MediaTimelineView.js:

(WI.MediaTimelineView):

5:30 PM Changeset in webkit [244476] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: REGRESSION: Elements: "Inspect Element" context menu often doesn't select that element
https://bugs.webkit.org/show_bug.cgi?id=197091
<rdar://problem/49953728>

Reviewed by Joseph Pecoraro.

Delay the inspect event fron firing with the focued node until the frontend has had a
chance to request the document. Otherwise, requesting the document clears the mapping of
node-to-id, so the focused node's id would no longer be valid.

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::getDocument):
(WebCore::InspectorDOMAgent::focusNode):
(WebCore::InspectorDOMAgent::didCommitLoad):

5:00 PM Changeset in webkit [244475] by Chris Dumez
  • 26 edits
    2 copies
    3 adds in trunk

Disable Ad Click Attribution in ephemeral sessions and make sure conversion requests use an ephemeral, stateless session
https://bugs.webkit.org/show_bug.cgi?id=197108
<rdar://problem/49918702>

Patch by John Wilander <wilander@apple.com> on 2019-04-19
Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html

http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAdClickAttribution const):

Early return for ephemeral sessions.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::shouldUseCredentialStorage):

Now returns false for StoredCredentialsPolicy:EphemeralStatelessCookieless.

  • platform/network/StoredCredentialsPolicy.h:

Added enum value EphemeralStatelessCookieless.

Source/WebKit:

This patch introduces a new NSURLSession in WebKit::NetworkSessionCocoa called
m_ephemeralStatelessCookielessSession. As its name implies, it's ephemeral,
stateless, and has a NSHTTPCookieAcceptPolicyNever cookie policy.

The new session can be invoked with the new enum value of
WebCore::StoredCredentialsPolicy called EphemeralStatelessCookieless.

WebKit::AdClickAttributionManager::fireConversionRequest() makes use of
the new session for its conversion requests.

This patch also makes sure that Ad Click Attributions cannot be stored in
ephemeral sessions and already stored attributions cannot be converted in
ephemeral sessions.

  • NetworkProcess/AdClickAttributionManager.cpp:

(WebKit::AdClickAttributionManager::fireConversionRequest):
(WebKit::AdClickAttributionManager::toString const):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::willSendRedirectedRequest):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

Calls NetworkSessionCocoa::initializeEphemeralStatelessCookielessSession() lazily.

(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::initializeEphemeralStatelessCookielessSession):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):

  • Shared/WebCoreArgumentCoders.h:

LayoutTests:

Except for the details below, this patch introduces the utility functions
prepareTest() and tearDownAndFinish() and all applicable tests now make use
of them.

  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session-expected.txt: Added.
  • http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html: Copied from LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html.
  • http/tests/adClickAttribution/resources/conversionReport.php:

Now tries to set a cookie in the response.

  • http/tests/adClickAttribution/resources/util.js: Added.

(prepareTest):
(tearDownAndFinish):

  • http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html:
  • http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html:
  • http/tests/adClickAttribution/second-conversion-with-higher-priority.html:
  • http/tests/adClickAttribution/second-conversion-with-lower-priority.html:
  • http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
  • http/tests/adClickAttribution/send-attribution-conversion-request.html:
  • http/tests/adClickAttribution/store-ad-click-attribution.html:

Now sets a cookie which is checked for it in the conversion report.

  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session-expected.txt: Added.
  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html: Copied from LayoutTests/http/tests/adClickAttribution/store-ad-click-attribution.html.
4:49 PM Changeset in webkit [244474] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Use RetainPtr and rename +autocorrectionRectsWithRects:lastRect: to +autocorrectionRectsWithFirstCGRect:lastCGRect:
https://bugs.webkit.org/show_bug.cgi?id=197122

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): Renamed; formerly named +autocorrectionRectsWithRects:lastRect:.
While I am here use else-branch to initialize firstRect and lastRect just to make the code closer to the optimal
assembly. Also use Vector::{isEmpty, first, last}() instead of using the index operator overload and size() for
emptiness checks. The code is more readable at the cost being ever so slightly slower (due to the overflow checks
in first() and last()), but this code is likely not hot enough for it to matter.
(-[WKContentView applyAutocorrection:toString:withCompletionHandler:]): Update for renaming.
(+[WKAutocorrectionRects autocorrectionRectsWithFirstCGRect:lastCGRect:]): Ditto.
(+[WKAutocorrectionRects autocorrectionRectsWithRects:lastRect:]): Deleted.

4:48 PM Changeset in webkit [244473] by dbates@webkit.org
  • 4 edits in trunk/Source/WebKit

-[WKAutocorrectionContext emptyAutocorrectionContext:] generates invalid empty context
https://bugs.webkit.org/show_bug.cgi?id=197119

Reviewed by Wenson Hsieh.

Use the existing EditingRange type to represent the location and length of the marked text
range for an autocorrection instead of managing integers. This type avoid the need to handle
the special case for an empty range represented as NSMakeRange(NSNotFound, 0). Currently
WKAutocorrectionContext incorrectly represents the empty range as NSMakeRange(WTF::notFound, 0).

While I am here, simplify the existing WebAutocorrectionContext encoder/decoder code and rename
+[WKAutocorrectionContext autocorrectionContextWithContext:] to +autocorrectionContextWithWebContext
to better reflect the expected source of the conversion: a Web-type.

  • Shared/ios/WebAutocorrectionContext.h:

(WebKit::WebAutocorrectionContext::encode const): Reformat while I am here to make this logic easy
to amend without losing SVN history.
(WebKit::WebAutocorrectionContext::decode): Simplify the code while I am here.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleAutocorrectionContext:]): Update for renaming.
(+[WKAutocorrectionContext emptyAutocorrectionContext]): Update for renaming.
(+[WKAutocorrectionContext autocorrectionContextWithWebContext:]): Renamed; formerly named autocorrectionContextWithContext.
(+[WKAutocorrectionContext autocorrectionContextWithContext:]): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::autocorrectionContext): Update to make use of EditingRange. Also instantiate
the struct and return it, initializing its fields individually instead of using the constructor to
make this code less error prone. It's easy to introduce an error with the constructor notation when
amending the the struct because so many of the arguments are of the same data type. Individually
initializing the struct fields makes it less likely for an ordering mistake to be introduced.

3:24 PM Changeset in webkit [244472] by dino@apple.com
  • 3 edits in trunk/Source/WebKit

Add more _WKElementActionTypes and provide API to create with custom types
https://bugs.webkit.org/show_bug.cgi?id=197117
<rdar://problem/50059548>

Reviewed by Tim Horton.

We were missing a few obvious types that are well-known
browser actions, and/or should be visible in share sheets.
Also, clean up the API for constructing new types.

  • UIProcess/API/Cocoa/_WKElementAction.h: Add new types for opening

in new tabs, windows and downloading.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction elementActionWithType:title:actionHandler:]): New constructor
with type, title and action.
(+[_WKElementAction elementActionWithType:]): Call new method.

2:53 PM Changeset in webkit [244471] by dbates@webkit.org
  • 4 edits in trunk/Source

Use existing KeyEventCodesIOS constants instead of duplicating them
https://bugs.webkit.org/show_bug.cgi?id=197081

Rubber-stamped by Wenson Hsieh.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]): While I am here, remove the case for the space key
as it is identical to the default switch case.

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

2:47 PM Changeset in webkit [244470] by Tadeu Zagallo
  • 5 edits in trunk/Source/JavaScriptCore

Add option to dump JIT memory
https://bugs.webkit.org/show_bug.cgi?id=197062
<rdar://problem/49744332>

Reviewed by Saam Barati.

Dump all writes into JIT memory to the specified file. The format is:

  • 64-bit destination address for the write
  • 64-bit size of the content written
  • Copy of the data that was written to JIT memory
  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • runtime/Options.h:
2:35 PM Changeset in webkit [244469] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Tools

Add script to merge run_benchmark jsons
https://bugs.webkit.org/show_bug.cgi?id=197107

Reviewed by Michael Saboff.

The script basically recursively decends through all json objects until it gets
to an array or JSON primitive and concats or takes the first value, respectively.

This patch also adds +x bits to the compare-results script so it
can be run directly from the command line. I had to add a new line so that svn
will accept the change... yay svn!

  • Scripts/compare-results:
  • Scripts/merge-result-jsons: Added.

(readJSONFile):
(deepAppend):
(mergeJSONs):
(main):

2:23 PM Changeset in webkit [244468] by Kocsen Chung
  • 1 copy in tags/Safari-607.2.6

Tag Safari-607.2.6.

2:19 PM Changeset in webkit [244467] by timothy@apple.com
  • 5 edits in trunk

Source/WebCore:
Standardize the <meta name="color-scheme"> separator.
https://bugs.webkit.org/show_bug.cgi?id=193931
rdar://problem/49995929

Reviewed by Darin Adler.

Tests: css-dark-mode/color-scheme-meta.html

  • dom/Document.cpp:

(WebCore::processColorSchemeString): Use isHTMLSpace insead of isColorSchemeSeparator and isASCIISpace.
(WebCore::isColorSchemeSeparator): Deleted.

LayoutTests:
Standardize the <meta name="color-scheme"> separator.
https://bugs.webkit.org/show_bug.cgi?id=193931
rdar://problem/49995929

Reviewed by Darin Adler.

  • css-dark-mode/color-scheme-meta-expected.txt:
  • css-dark-mode/color-scheme-meta.html: Test other types of spaces like tab, newline and vertical tab.
2:07 PM Changeset in webkit [244466] by Keith Rollin
  • 6 edits
    3 adds in trunk/Source

Add postprocess-header-rule scripts
https://bugs.webkit.org/show_bug.cgi?id=197072
<rdar://problem/50027299>

Reviewed by Brent Fulgham.

Several projects have post-processing build phases where exported
headers are tweaked after they've been copied. This post-processing is
performed via scripts called postprocess-headers.sh. For reasons
related to XCBuild, we are now transitioning to a build process where
the post-processing is performed at the same time as the
exporting/copying. To support this process, add similar scripts named
postprocess-header-rule, which are geared towards processing a single
file at a time rather than all exported files at once. Also add a
build rule that makes use of these scripts. These scripts and build
rules are not used at the moment; they will come into use in an
imminent patch.

Note that I've named these postprocess-header-rule rather than
postprocess-header-rule.sh. Scripts in Tools/Scripts do not have
suffixes indicating how the tool is implemented. Scripts in
per-project Scripts folders appear to be mixed regarding the use of
suffixes. I'm opting here to follow the Tools/Scripts convention, with
the expectation that over time we completely standardize on that.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/postprocess-header-rule: Added.

Source/WebKit:

  • Scripts/postprocess-header-rule: Added.
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:
  • scripts/postprocess-header-rule: Added.
2:04 PM Changeset in webkit [244465] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Deprecate WebKit2 plug-in support.
<rdar://problem/43812306> and https://bugs.webkit.org/show_bug.cgi?id=197080

Reviewed by Andy Estes.

  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences javaEnabled]):
(-[WKPreferences setJavaEnabled:]):
(-[WKPreferences plugInsEnabled]):
(-[WKPreferences setPlugInsEnabled:]):

1:09 PM Changeset in webkit [244464] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Minor PSON release logging improvements
https://bugs.webkit.org/show_bug.cgi?id=197104

Reviewed by Darin Adler.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::didProcessRequestToSuspend):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):

1:03 PM Changeset in webkit [244463] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r244458. rdar://problem/50041560

YouTube and Twitter embeds don't load in News
https://bugs.webkit.org/show_bug.cgi?id=197111
<rdar://problem/50010081>

Reviewed by Timothy Hatcher.

  • WebProcess/com.apple.WebProcess.sb.in: Adjust this sandbox exception to include both platforms.

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

12:55 PM Changeset in webkit [244462] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

[Mac WK2] REGRESSION (r244182) editing/execCommand/change-list-type.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=197065
<rdar://problem/50021964>

Reviewed by Wenson Hsieh.

Like r244461, this test was errornosuly assuming that rAF would be enough to close the undo group
in the UI process. Fixed the test by explicitly waiting for the runloop in the ui process to run
by executing a UI script.

  • editing/execCommand/change-list-type.html:
12:33 PM Changeset in webkit [244461] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION: (r244182) Layout Test editing/execCommand/insert-nested-lists.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=196985

Reviewed by Wenson Hsieh.

The flakiness was caused by the test incorrectly assuming that rAF would
be enough to close the undo group in the UI process.

Fixed the test by explicitly waiting for the runloop in the ui process to run
by executing a UI script.

  • editing/execCommand/insert-nested-lists.html:
12:13 PM Changeset in webkit [244460] by graouts@webkit.org
  • 2 edits
    8 adds in trunk/LayoutTests/imported/w3c

[Pointer Events WPT] Provide iOS testdriver
https://bugs.webkit.org/show_bug.cgi?id=197101
<rdar://problem/50044834>

Reviewed by Dean Jackson.

Add support for the "none" action source and for the "touch" pointer type. This allows us to run the touch-specific
WPT tests for Pointer Events and add some baseline expectations for those tests.

  • web-platform-tests/pointerevents/pointerevent_change-touch-action-onpointerdown_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointercancel_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_after_pointercancel_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerout_after_pointercancel_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch-expected.txt: Added.
  • web-platform-tests/resources/testdriver-vendor.js:

(logDebug): Take a callback so that we don't run code for the purpose of logging unless we're in debug mode.
(dispatchMouseActions):
(dispatchTouchActions): Use testRunner.runUIScript() to compile an event stream based on the input from the WPT tests.
(window.test_driver_internal.action_sequence): Handle the "none" source to insert "pause" commands in the pointer source.

12:01 PM Changeset in webkit [244459] by rniwa@webkit.org
  • 4 edits
    1 add in trunk

Crash in FrameLoader::stopAllLoaders via [WebView dealloc] inside ~ObjCEventListener
https://bugs.webkit.org/show_bug.cgi?id=197079

Reviewed by Darin Adler.

Source/WebKitLegacy/mac:

The crash was caused by the fact deleting a node could end up deleting Objective-C event listeners
some of which may be the last object holding onto WebView itself in the middle of running GC.

It's not generally safe to delete Objective-C objects defiend by client applications since
dealloc could execute arbitrary code, and for instance, try to execute JavaScript or load new page.

Fixed the bug by delaying the dealloc'ing of Objective event listeners via autorelease pool.

  • DOM/ObjCEventListener.mm:

(WebCore::ObjCEventListener::~ObjCEventListener):

Tools:

Added a regression test. It hits a slightly different backtrace but of the same class of issues.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitLegacy/mac/DeallocWebViewInEventListener.mm: Added.
11:54 AM Changeset in webkit [244458] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

YouTube and Twitter embeds don't load in News
https://bugs.webkit.org/show_bug.cgi?id=197111
<rdar://problem/50010081>

Reviewed by Timothy Hatcher.

  • WebProcess/com.apple.WebProcess.sb.in:

Adjust this sandbox exception to include both platforms.

11:17 AM Changeset in webkit [244457] by Wenson Hsieh
  • 5 edits in trunk/Source

[iOS] Add quirks to disable autocorrection and autocapitalization in hidden editable areas on some websites
https://bugs.webkit.org/show_bug.cgi?id=197102
<rdar://problem/49864669>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add a quirk to disable autocorrection and autocapitalization in hidden editable areas.

  • page/Quirks.cpp:

(WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost):
(WebCore::Quirks::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreas const):

  • page/Quirks.h:

Source/WebKit:

If the quirk for disabling autocorrection and autocapitalization in hidden editable areas is active, then check
whether the focused element is hidden, and turn off autocorrection and autocapitalization if needed.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

11:03 AM Changeset in webkit [244456] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.24.1

WPE WebKit 2.24.1

11:03 AM Changeset in webkit [244455] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.24

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.24.1 release

build-wpe-releng/..:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

build-wpe-releng/../Source/WebKit:

  • wpe/NEWS: Add release notes for 2.24.1.
10:48 AM Changeset in webkit [244454] by Alan Coon
  • 7 edits in tags/Safari-608.1.17.1/Source

Versioning.

10:41 AM Changeset in webkit [244453] by Alan Coon
  • 1 copy in tags/Safari-608.1.17.1

New tag.

9:40 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
9:39 AM Changeset in webkit [244452] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WTF

Merged r244108 - [WPE] Avoid async IO starving timers
https://bugs.webkit.org/show_bug.cgi?id=196733

Reviewed by Carlos Garcia Campos.

If AsyncIONetwork and DiskCacheRead priorities are higher than
MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
to accumulate MB of data instead of handing it down to the WebProcess (done
using a Timer). This eventually causes an Out Of Memory kill on the
NetworkProcess on some embedded platforms with low memory limits.

This patch levels the three priorities to the same value, while still leaving
DiskCacheWrite with less priority than DiskCacheRead.

  • wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.
8:41 AM Changeset in webkit [244451] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

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

Caused build failures with Internal and Opensource builders
(Requested by ShawnRoberts on #webkit).

Reverted changeset:

"Deprecate WebKit2 plug-in support."
https://bugs.webkit.org/show_bug.cgi?id=197080
https://trac.webkit.org/changeset/244447

Apr 18, 2019:

9:26 PM Changeset in webkit [244450] by Fujii Hironori
  • 6 edits in trunk/Source/WebCore

Implement KeyedDecoderGeneric and KeyedEncoderGeneric
https://bugs.webkit.org/show_bug.cgi?id=186410

Reviewed by Don Olmstead.

Implemented KeyedDecoderGeneric and KeyedEncoderGeneric by using
WTF::Persistence::Decoder and WTF::Persistence::Encoder.

No new tests. Covered by existing tests.

  • PlatformWin.cmake: Added KeyedDecoderGeneric.cpp and

KeyedEncoderGeneric.cpp, and removed KeyedDecoderCF.cpp and
KeyedEncoderCF.cpp for WinCairo port.

  • platform/generic/KeyedDecoderGeneric.cpp:
  • platform/generic/KeyedDecoderGeneric.h:
  • platform/generic/KeyedEncoderGeneric.cpp:
  • platform/generic/KeyedEncoderGeneric.h:
9:18 PM Changeset in webkit [244449] by Megan Gardner
  • 2 edits in trunk/LayoutTests

Update autoscroll test to lift at the end and be less flakey
https://bugs.webkit.org/show_bug.cgi?id=197084

Test not lifting at the end caused issues for other tests.
Also the positions were a bit too exact and caused the
test to be flakey. These new positions should result in more consistent
behaviour.

Reviewed by Tim Horton.

  • fast/events/touch/ios/drag-to-autoscroll-in-single-line-editable.html:
8:28 PM Changeset in webkit [244448] by Ross Kirsling
  • 4 edits in trunk

[WinCairo] Non-unified build fails to link Tools
https://bugs.webkit.org/show_bug.cgi?id=196866

Reviewed by Fujii Hironori.

.:

  • Source/cmake/OptionsWin.cmake:

Build WebCore as an object library when unified builds are disabled
(and we haven't explicitly asked to build it as a shared library).
This is necessary for two reasons:

  • Non-unified WebCore.lib is too large for the MSVC linker to create (>4GB).
  • Some WebCore object files are not actually used, but DumpRenderTree and TestRunnerInjectedBundle still expect that their symbols will be re-exported via WebKit[Legacy].

Source/WebCore:

  • CMakeLists.txt:

Drive-by fix -- don't disable string pooling when building WebCoreTestSupport.
(This should have been part of r235203.)

7:36 PM Changeset in webkit [244447] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Deprecate WebKit2 plug-in support.
<rdar://problem/43812306> and https://bugs.webkit.org/show_bug.cgi?id=197080

Reviewed by Andy Estes.

  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences javaEnabled]):
(-[WKPreferences setJavaEnabled:]):
(-[WKPreferences plugInsEnabled]):
(-[WKPreferences setPlugInsEnabled:]):

7:25 PM Changeset in webkit [244446] by commit-queue@webkit.org
  • 18 edits in trunk

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

caused 1 API test failure (Requested by zalan on #webkit).

Reverted changeset:

"Regression (r244291): Broken API Test
AutoLayoutRenderingProgressRelativeOrdering"
https://bugs.webkit.org/show_bug.cgi?id=196948
https://trac.webkit.org/changeset/244434

5:12 PM Changeset in webkit [244445] by don.olmstead@sony.com
  • 2 edits in trunk/Source/WebCore

[CMake] Make WebCore headers copies
https://bugs.webkit.org/show_bug.cgi?id=182512
<rdar://problem/37510435>

Unreviewed build fix.

Add new header from r244440.

  • Headers.cmake:
4:52 PM WikiStart edited by wilander@apple.com
Added link to the Ad Click Attribution draft spec under Planning. (diff)
4:48 PM ad-click-attribution-draft-spec created by wilander@apple.com
Initial commit.
4:38 PM Changeset in webkit [244444] by Wenson Hsieh
  • 12 edits in trunk

Add new compatibility mode API on WKNavigation
https://bugs.webkit.org/show_bug.cgi?id=197069
<rdar://problem/50025800>

Reviewed by Tim Horton.

Source/WebKit:

Adds a new property on WKNavigation.

  • Shared/WebCompatibilityMode.h:

Drive-by fix: make this enum class 8 bits wide.

  • UIProcess/API/APINavigation.h:

(API::Navigation::setEffectiveCompatibilityMode):
(API::Navigation::effectiveCompatibilityMode const):

Add a new member variable to API::Navigation.

  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigation.mm:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:
  • UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:

Add various hooks into WebKitAdditions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Set API::Navigation's effective compatibility mode.

(WebKit::WebPageProxy::effectiveCompatibilityModeAfterAdjustingPolicies):

Renamed and refactored this method to return the effective compatibility mode, chosen while adjusting website
policies.

(WebKit::WebPageProxy::adjustPoliciesForCompatibilityMode): Deleted.

  • UIProcess/WebPageProxy.h:

Tools:

Add a block property for -didCommitNavigation to TestNavigationDelegate.

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:didCommitNavigation:]):

4:20 PM Changeset in webkit [244443] by don.olmstead@sony.com
  • 39 edits
    2 adds in trunk

[CMake] Make WebCore headers copies
https://bugs.webkit.org/show_bug.cgi?id=182512
<rdar://problem/37510435>

Reviewed by Alex Christensen.

Source/WebCore:

The header copying is moved to a target WebCorePrivateFrameworkHeaders. This target was
originally Windows only but now this is enabled for all CMake based ports.

Enumerated all headers within WebCore that are used for WebKit(Legacy), tools and
tests. Shared headers are within Headers.cmake while port and platform specific headers
are in their respective CMake files. Listing out all headers is preferred because globbing
will break the build whenever a file is added.

All include directories within the WebCore source tree are now PRIVATE. They were
modified to use WebCore_PRIVATE_INCLUDE_DIRECTORIES. They will not propagate to other targets
which will prevent erroneous includes in targets dependent on WebCore.

  • CMakeLists.txt:
  • Headers.cmake: Added.
  • PlatformAppleWin.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformPlayStation.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:
  • platform/Cairo.cmake:
  • platform/Curl.cmake:
  • platform/FreeType.cmake:
  • platform/GStreamer.cmake:
  • platform/HolePunch.cmake:
  • platform/ImageDecoders.cmake:
  • platform/Soup.cmake: Added.
  • platform/TextureMapper.cmake:

Source/WebKit:

WebCore now uses WebCore_PRIVATE_INCLUDE_DIRECTORIES for all ports. This revealed
problems with WebKit's usage of WebCore headers. All include directories directly
referencing the WebCore source tree we're removed from the CMake files. Any includes
of WebCore headers using "*.h" were modified to <WebCore/*.h>

Removed generation of forwarding headers for WebCore using the perl script.

  • CMakeLists.txt:
  • NetworkProcess/curl/NetworkDataTaskCurl.h:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • Scripts/generate-forwarding-headers.pl:
  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp:
  • UIProcess/API/wpe/WebKitColorPrivate.h:
  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp:
  • UIProcess/win/PageClientImpl.cpp:

Source/WebKitLegacy:

Added WebCorePrivateFrameworkHeaders as a dependency of WebKitLegacy for all
ports.

WebCore now uses WebCore_PRIVATE_INCLUDE_DIRECTORIES for all ports. This revealed
problems with WebKit's usage of WebCore headers. All include directories directly
referencing the WebCore source tree we're removed from the CMake files.

  • CMakeLists.txt:
  • PlatformWin.cmake:

Tools:

Added WebCorePrivateFrameworkHeaders as a dependency of TestWebKitAPI for all
ports.

WebCore now uses WebCore_PRIVATE_INCLUDE_DIRECTORIES for all ports. Any includes
of WebCore headers using "*.h" were modified to <WebCore/*.h>

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npapi.h:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npfunctions.h:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npruntime.h:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp:
  • TestWebKitAPI/Tests/WebCore/gstreamer/GstMappedBuffer.cpp:
  • WebKitTestRunner/win/PlatformWebViewWin.cpp:
3:42 PM Changeset in webkit [244442] by Justin Fan
  • 48 edits in trunk

Source/WebCore:
[Web GPU] Implement API default values
https://bugs.webkit.org/show_bug.cgi?id=197032

Reviewed by Myles C. Maxfield.

Add default values and 'required' qualifiers recently merged to the WebGPU API.

WebGPU tests specifying these default values have been updated to rely on them for functionality.

  • Modules/webgpu/GPUBindGroupLayoutBinding.idl:
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.idl:
  • Modules/webgpu/GPUBlendDescriptor.idl:
  • Modules/webgpu/GPUBufferDescriptor.idl:
  • Modules/webgpu/GPUColor.idl:
  • Modules/webgpu/GPUColorStateDescriptor.idl:
  • Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
  • Modules/webgpu/GPUExtent3D.idl:
  • Modules/webgpu/GPUInputStateDescriptor.idl:
  • Modules/webgpu/GPUOrigin3D.h:
  • Modules/webgpu/GPUOrigin3D.idl:
  • Modules/webgpu/GPURequestAdapterOptions.idl:
  • Modules/webgpu/GPUTextureDescriptor.idl:
  • Modules/webgpu/GPUVertexAttributeDescriptor.idl:
  • Modules/webgpu/GPUVertexInputDescriptor.idl:
  • Modules/webgpu/WebGPUBindGroupBinding.idl:
  • Modules/webgpu/WebGPUBindGroupDescriptor.idl:
  • Modules/webgpu/WebGPUBufferBinding.h:
  • Modules/webgpu/WebGPUBufferBinding.idl:
  • Modules/webgpu/WebGPUCommandEncoder.idl:
  • Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl:
  • Modules/webgpu/WebGPUPipelineStageDescriptor.idl:
  • Modules/webgpu/WebGPURenderPassDescriptor.idl:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.cpp:

(WebCore::WebGPURenderPipelineDescriptor::tryCreateGPURenderPipelineDescriptor const):

  • Modules/webgpu/WebGPURenderPipelineDescriptor.h:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
  • Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
  • platform/graphics/gpu/GPUBlendDescriptor.h:
  • platform/graphics/gpu/GPUColorStateDescriptor.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:
  • platform/graphics/gpu/GPUDepthStencilStateDescriptor.h:
  • platform/graphics/gpu/GPURenderPassDescriptor.h:
  • platform/graphics/gpu/GPURenderPipelineDescriptor.h:

(WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor):

  • platform/graphics/gpu/GPURequestAdapterOptions.h:
  • platform/graphics/gpu/GPUTextureDescriptor.h:
  • platform/graphics/gpu/GPUVertexAttributeDescriptor.h:
  • platform/graphics/gpu/GPUVertexInputDescriptor.h:
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::convertRenderPipelineDescriptor):
(WebCore::trySetFunctionsForPipelineDescriptor):

LayoutTests:
[WebGPU] Implement API default values
https://bugs.webkit.org/show_bug.cgi?id=197032

Reviewed by Myles C. Maxfield.

Update WebGPU tests to use default values wherever applicable.

  • webgpu/bind-groups.html:
  • webgpu/blend-triangle-strip.html:
  • webgpu/blit-commands.html:
  • webgpu/buffer-command-buffer-races.html:
  • webgpu/buffer-resource-triangles.html:
  • webgpu/color-write-mask-triangle-strip.html:
  • webgpu/compute-squares.html:
  • webgpu/depth-enabled-triangle-strip.html:
  • webgpu/draw-indexed-triangles.html:
  • webgpu/js/webgpu-functions.js:

(createBasicDepthTexture):

  • webgpu/texture-triangle-strip.html:
  • webgpu/textures-textureviews.html:
  • webgpu/vertex-buffer-triangle-strip.html:
  • webgpu/whlsl.html:
3:26 PM Changeset in webkit [244441] by Chris Dumez
  • 4 edits in trunk/Source

[iOS] Improve detection of when web views go to background / foreground
https://bugs.webkit.org/show_bug.cgi?id=197035
<rdar://problem/45281182>

Reviewed by Tim Horton.

Source/WebKit:

Improve detection of when web views go to background / foreground on iOS.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker): Deleted.
(WebKit::ApplicationStateTracker::~ApplicationStateTracker): Deleted.
(WebKit::ApplicationStateTracker::applicationDidEnterBackground): Deleted.
(WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground): Deleted.
(WebKit::ApplicationStateTracker::applicationWillEnterForeground): Deleted.

Source/WTF:

Add build time flag.

  • wtf/FeatureDefines.h:
3:16 PM Changeset in webkit [244440] by jer.noble@apple.com
  • 41 edits
    2 copies
    2 adds in trunk/Source

Refactoring: Pull all fullscreen code out of Document and into its own helper class
https://bugs.webkit.org/show_bug.cgi?id=197017

Reviewed by Eric Carlson.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesFullScreenPseudoClass):
(WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
(WebCore::matchesFullScreenDocumentPseudoClass):
(WebCore::matchesFullScreenControlsHiddenPseudoClass):

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::prepareForDestruction):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::isAttributeOnAllOwners): Deleted.
(WebCore::Document::fullScreenIsAllowedForElement const): Deleted.
(WebCore::Document::requestFullScreenForElement): Deleted.
(WebCore::Document::webkitCancelFullScreen): Deleted.
(WebCore::Document::webkitExitFullscreen): Deleted.
(WebCore::Document::webkitFullscreenEnabled const): Deleted.
(WebCore::unwrapFullScreenRenderer): Deleted.
(WebCore::Document::webkitWillEnterFullScreen): Deleted.
(WebCore::Document::webkitDidEnterFullScreen): Deleted.
(WebCore::Document::webkitWillExitFullScreen): Deleted.
(WebCore::Document::webkitDidExitFullScreen): Deleted.
(WebCore::Document::setFullScreenRenderer): Deleted.
(WebCore::Document::dispatchFullScreenChangeEvents): Deleted.
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent): Deleted.
(WebCore::Document::fullScreenElementRemoved): Deleted.
(WebCore::Document::adjustFullScreenElementOnNodeRemoval): Deleted.
(WebCore::Document::isAnimatingFullScreen const): Deleted.
(WebCore::Document::setAnimatingFullScreen): Deleted.
(WebCore::Document::areFullscreenControlsHidden const): Deleted.
(WebCore::Document::setFullscreenControlsHidden): Deleted.
(WebCore::Document::clearFullscreenElementStack): Deleted.
(WebCore::Document::popFullscreenElementStack): Deleted.
(WebCore::Document::pushFullscreenElementStack): Deleted.
(WebCore::Document::addDocumentToFullScreenChangeEventQueue): Deleted.

  • dom/Document.h:

(WebCore::Document::fullscreenManager):
(WebCore::Document::webkitIsFullScreen const): Deleted.
(WebCore::Document::webkitFullScreenKeyboardInputAllowed const): Deleted.
(WebCore::Document::webkitCurrentFullScreenElement const): Deleted.
(WebCore::Document::webkitCurrentFullScreenElementForBindings const): Deleted.
(WebCore::Document::fullScreenRenderer const): Deleted.
(WebCore::Document::webkitFullscreenElement const): Deleted.
(WebCore::Document::webkitFullscreenElementForBindings const): Deleted.

  • dom/Document.idl:
  • dom/DocumentFullscreen.h:

(WebCore::DocumentFullscreen::webkitFullscreenEnabled):
(WebCore::DocumentFullscreen::webkitFullscreenElement):
(WebCore::DocumentFullscreen::webkitExitFullscreen):
(WebCore::DocumentFullscreen::webkitIsFullScreen):
(WebCore::DocumentFullscreen::webkitFullScreenKeyboardInputAllowed):
(WebCore::DocumentFullscreen::webkitCurrentFullScreenElement):
(WebCore::DocumentFullscreen::webkitCancelFullScreen):

  • dom/DocumentFullscreen.idl:
  • dom/Element.cpp:

(WebCore::Element::webkitRequestFullscreen):

  • dom/EventPath.cpp:

(WebCore::shouldEventCrossShadowBoundary):

  • dom/FullscreenManager.cpp: Added.

(WebCore::isAttributeOnAllOwners):
(WebCore::FullscreenManager::FullscreenManager):
(WebCore::FullscreenManager::fullscreenIsAllowedForElement const):
(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::cancelFullscreen):
(WebCore::FullscreenManager::requestExitFullscreen):
(WebCore::FullscreenManager::exitFullscreen):
(WebCore::FullscreenManager::isFullscreenEnabled const):
(WebCore::unwrapFullscreenRenderer):
(WebCore::FullscreenManager::willEnterFullscreen):
(WebCore::FullscreenManager::didEnterFullscreen):
(WebCore::FullscreenManager::willExitFullscreen):
(WebCore::FullscreenManager::didExitFullscreen):
(WebCore::FullscreenManager::setFullscreenRenderer):
(WebCore::FullscreenManager::dispatchFullscreenChangeEvents):
(WebCore::FullscreenManager::dispatchFullscreenChangeOrErrorEvent):
(WebCore::FullscreenManager::fullscreenElementRemoved):
(WebCore::FullscreenManager::adjustFullscreenElementOnNodeRemoval):
(WebCore::FullscreenManager::isAnimatingFullscreen const):
(WebCore::FullscreenManager::setAnimatingFullscreen):
(WebCore::FullscreenManager::areFullscreenControlsHidden const):
(WebCore::FullscreenManager::setFullscreenControlsHidden):
(WebCore::FullscreenManager::clear):
(WebCore::FullscreenManager::emptyEventQueue):
(WebCore::FullscreenManager::clearFullscreenElementStack):
(WebCore::FullscreenManager::popFullscreenElementStack):
(WebCore::FullscreenManager::pushFullscreenElementStack):
(WebCore::FullscreenManager::addDocumentToFullscreenChangeEventQueue):

  • dom/FullscreenManager.h: Added.

(WebCore::FullscreenManager::document):
(WebCore::FullscreenManager::document const):
(WebCore::FullscreenManager::topDocument const):
(WebCore::FullscreenManager::page const):
(WebCore::FullscreenManager::frame const):
(WebCore::FullscreenManager::documentElement const):
(WebCore::FullscreenManager::hasLivingRenderTree const):
(WebCore::FullscreenManager::pageCacheState const):
(WebCore::FullscreenManager::scheduleFullStyleRebuild):
(WebCore::FullscreenManager::fullscreenElement const):
(WebCore::FullscreenManager::isFullscreen const):
(WebCore::FullscreenManager::isFullscreenKeyboardInputAllowed const):
(WebCore::FullscreenManager::currentFullscreenElement const):
(WebCore::FullscreenManager::fullscreenRenderer const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isFullscreen const):
(WebCore::HTMLMediaElement::isStandardFullscreen const):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canShowControlsManager const):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):

  • inspector/agents/InspectorDOMAgent.cpp:
  • page/EventHandler.cpp:

(WebCore::EventHandler::isKeyEventAllowedInFullScreen const):
(WebCore::EventHandler::internalKeyEvent):

  • page/Page.cpp:

(WebCore::Page::setFullscreenControlsHidden):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::isDescendantOfFullScreenLayer):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::splitInlines):

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement const):

  • testing/Internals.cpp:

(WebCore::Internals::webkitWillEnterFullScreenForElement):
(WebCore::Internals::webkitDidEnterFullScreenForElement):
(WebCore::Internals::webkitWillExitFullScreenForElement):
(WebCore::Internals::webkitDidExitFullScreenForElement):
(WebCore::Internals::isAnimatingFullScreen const):

Source/WebKit:

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::willEnterFullScreen):
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
(WebKit::WebFullScreenManager::didExitFullScreen):
(WebKit::WebFullScreenManager::setAnimatingFullScreen):
(WebKit::WebFullScreenManager::requestExitFullScreen):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_webkit_cancel_fullscreen):
(webkit_dom_document_webkit_exit_fullscreen):
(webkit_dom_document_get_webkit_is_fullscreen):
(webkit_dom_document_get_webkit_fullscreen_keyboard_input_allowed):
(webkit_dom_document_get_webkit_current_fullscreen_element):
(webkit_dom_document_get_webkit_fullscreen_element):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument webkitIsFullScreen]):
(-[DOMDocument webkitFullScreenKeyboardInputAllowed]):
(-[DOMDocument webkitCurrentFullScreenElement]):
(-[DOMDocument webkitFullscreenEnabled]):
(-[DOMDocument webkitFullscreenElement]):
(-[DOMDocument webkitCancelFullScreen]):
(-[DOMDocument webkitExitFullscreen]):

  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createWindow):

  • WebCoreSupport/WebKitFullScreenListener.mm:

(-[WebKitFullScreenListener webkitWillEnterFullScreen]):
(-[WebKitFullScreenListener webkitDidEnterFullScreen]):
(-[WebKitFullScreenListener webkitWillExitFullScreen]):
(-[WebKitFullScreenListener webkitDidExitFullScreen]):

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController enterFullScreen:]):
(-[WebFullScreenController finishedEnterFullScreenAnimation:]):
(-[WebFullScreenController requestExitFullScreen]):
(-[WebFullScreenController exitFullScreen]):
(-[WebFullScreenController finishedExitFullScreenAnimation:]):
(-[WebFullScreenController _manager]):

  • WebView/WebView.mm:

(-[WebView _didStartProvisionalLoadForFrame:]):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.cpp:

(WebChromeClient::createWindow):

  • WebView.cpp:

(WebView::fullScreenClientWillEnterFullScreen):
(WebView::fullScreenClientDidEnterFullScreen):
(WebView::fullScreenClientWillExitFullScreen):
(WebView::fullScreenClientDidExitFullScreen):

3:07 PM Changeset in webkit [244439] by jer.noble@apple.com
  • 11 edits
    2 adds in trunk

Add support for parsing FairPlayStreaming PSSH boxes.
https://bugs.webkit.org/show_bug.cgi?id=197064

Reviewed by Eric Carlson.

Source/WebCore:

API Tests: ISO.ISOFairPlayStreamingPsshBox

Add a new set of ISOBox classes for parsing the contents of a FairPlayStreaming PSSH box,
and add support for this new box to CDMFairPlayStreaming.

Drive-by fix: add an explicit include for MainThread.h to LibWebRTCProviderCocoa.cpp.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/FourCC.h:
  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::cencName):
(WebCore::fairPlaySystemID):
(WebCore::extractSchemeAndKeyIdFromCenc):
(WebCore::CDMPrivateFairPlayStreaming::extractKeyIDsCenc):
(WebCore::CDMPrivateFairPlayStreaming::sanitizeCenc):
(WebCore::validInitDataTypes):
(WebCore::CDMFactory::platformRegisterFactories):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
  • platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp: Added.

(WebCore::ISOFairPlayStreamingPsshBox::fairPlaySystemID):
(WebCore::ISOFairPlayStreamingInfoBox::parse):
(WebCore::ISOFairPlayStreamingKeyRequestInfoBox::parse):
(WebCore::ISOFairPlayStreamingKeyAssetIdBox::parse):
(WebCore::ISOFairPlayStreamingKeyContextBox::parse):
(WebCore::ISOFairPlayStreamingKeyVersionListBox::parse):
(WebCore::ISOFairPlayStreamingKeyRequestBox::parse):
(WebCore::ISOFairPlayStreamingInitDataBox::parse):
(WebCore::ISOFairPlayStreamingPsshBox::parse):

  • platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h: Added.
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

Source/WTF:

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/ISOBox.cpp:

(TestWebKitAPI::TEST):

2:57 PM Changeset in webkit [244438] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Update UIKit when a cut causes a selection change
https://bugs.webkit.org/show_bug.cgi?id=197047
<rdar://problem/36311563>

Reviewed by Wenson Hsieh.

We need to let UIKit know when a cut causes a selection change (always),
so that is can appropriately update the button on the keyboard bar.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cutForWebView:]):

2:49 PM Changeset in webkit [244437] by Brent Fulgham
  • 6 edits in trunk

InjectedBundle parameters often need initialization function called before unarchiving
https://bugs.webkit.org/show_bug.cgi?id=189709
<rdar://problem/44573653>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Handle the case where the InjectedBundle parameters do not successfully decode because they contain
an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
after the bundle initialiation function runs, which gives the embedding program the opportunity to
register additional classes that are safe for serialization.

Extend WKWebProcessPlugIn with a method that returns the names of any custom classes that need
to be serialized by the InjectedBundle.

Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
Revise 'initialize' to call this new method.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize): Use the new method.
(WebKit::InjectedBundle::decodeBundleParameters): Added.
(WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
'classesForCoder' method to unarchive the passed bundle parameters, rather than the
NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
NSDictionary object may itself hold other kinds of objects.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:

(WebKit::WKWebProcessPlugIn::additionalClassesForParameterCoder): Added.

Tools:

  • TestWebKitAPI/cocoa/WebProcessPlugIn/WebProcessPlugIn.mm:

(-[WebProcessPlugIn additionalClassesForParameterCoder]): Added.

2:45 PM Changeset in webkit [244436] by sihui_liu@apple.com
  • 30 edits
    3 adds in trunk

Blob type cannot be stored correctly in IDB when IDBObjectStore has autoIncrement and keyPath options
https://bugs.webkit.org/show_bug.cgi?id=196128
<rdar://problem/49562115>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Updated test expectations to PASS.

  • web-platform-tests/IndexedDB/nested-cloning-large-expected.txt:
  • web-platform-tests/IndexedDB/nested-cloning-large-multiple-expected.txt:
  • web-platform-tests/IndexedDB/nested-cloning-small-expected.txt:

Source/WebCore:

If a key is auto-generated, it should become a property of the value object. Network process would perform the
key injection by deserializing IDBValue into script value, setting the property, serializing the result and
storing it in a database record. But network process does not have a JSDOMGlobalObject, so it would fail to
deserialize types including Blob and File.

To solve this issue, we move the key injection to web process and let network process store the original value
it gets. In this case, when web process asks for some value, network process should return key, value and key
path so that web process can decide whether it should perform a key injection before returning the result. Note
that the auto-generated key would always be stored as the key in a ObjectStore record.

Test: storage/indexeddb/modern/objectstore-autoincrement-types.html

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::primaryKeyPath):

  • Modules/indexeddb/IDBGetAllResult.cpp:

(WebCore::IDBGetAllResult::isolatedCopy):
(WebCore::IDBGetAllResult::addKey):
(WebCore::IDBGetAllResult::addValue):
(WebCore::IDBGetAllResult::keys const):
(WebCore::IDBGetAllResult::values const):
(WebCore::IDBGetAllResult::allBlobFilePaths const):
(WebCore::isolatedCopyOfVariant): Deleted.

  • Modules/indexeddb/IDBGetAllResult.h: Introduce an IDBKeyPath parameter. Also replace Variant with two Vectors,

because we only needed to store either key or value before, and now the stored value could be incomplete.
(WebCore::IDBGetAllResult::IDBGetAllResult):
(WebCore::IDBGetAllResult::keyPath const):
(WebCore::IDBGetAllResult::encode const):
(WebCore::IDBGetAllResult::decode):

  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::setValue):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::keyPath const):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::didGetAllRecordsOnServer):
(WebCore::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::getResultForKeyRange const):
(WebCore::IDBServer::MemoryIndex::getAllRecords const):

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::currentData):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
(WebCore::IDBServer::MemoryObjectStore::getAllRecords const):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatementForGetAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::currentData):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): Remove the key injection from network process.
UniqueIDBDatabase stores any value it gets from IDBClient.

  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::getResultRef):

  • Modules/indexeddb/shared/IDBResultData.h:
  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::injectIDBKeyIntoScriptValue): If property is read-only, set would fail and injectKeyIntoResult would
return null, but we expect it to return result as long as the property value is the same as target. Therefore,
we can add an early return here.

(WebCore::createKeyPathArray):
(WebCore::generateIndexKeyForValue): We used to generate IndexKey from value stored in database but now the
value gets stored does not include auto-generated key, as we remove the key injection from network process. In
this case if the IDBIndex has the same key path as the auto-generated key, IndexKey would be failed to create
for it cannot extract auto-generated key from value. Since the auto-generated key would always be the key in
database record, we could use value of that key when we find a match in key path.

(WebCore::deserializeIDBValueWithKeyInjection): If the key path in the result is single entry, the key is
probably auto-generated, so we could inject the result key into the result value unconditionally.

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSIDBCursorWithValueCustom.cpp:

(WebCore::JSIDBCursorWithValue::value const):

  • bindings/js/JSIDBRequestCustom.cpp:

(WebCore::JSIDBRequest::result const):

LayoutTests:

  • storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt: Added.
  • storage/indexeddb/modern/objectstore-autoincrement-types.html: Added.
  • storage/indexeddb/modern/resources/objectstore-autoincrement-types.js: Added.

(prepareDatabase.event.target.onsuccess):
(prepareDatabase):
(compare):
(runGetTest):
(runGetAllTest):
(get store):
(testSteps):

2:20 PM Changeset in webkit [244435] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r244155): pressing down expands folders in trees
https://bugs.webkit.org/show_bug.cgi?id=197051
<rdar://problem/50006414>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem):
(WI.TreeOutline.prototype.selectionControllerNextSelectableItem):
Skip hidden items when traversing the tree.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.ondelete):
Reveal all items about to be deleted so that the above change won't skip any siblings.

2:12 PM Changeset in webkit [244434] by Alan Bujtas
  • 18 edits in trunk

Regression (r244291): Broken API Test AutoLayoutRenderingProgressRelativeOrdering
https://bugs.webkit.org/show_bug.cgi?id=196948
<rdar://problem/49927131>

Reviewed by Tim Horton.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setContentsSize):
(WebCore::FrameView::autoSizeIfEnabled):

  • page/FrameView.h:

Source/WebKit:

Move intrinsicContentSizeDidChange out of DrawingArea. Intrinsic content size is a layout concept and
after r244291 there's no reason to have it in DrawingArea.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::didUpdateGeometry):
(WebKit::DrawingAreaProxy::intrinsicContentSizeDidChange): Deleted.

  • UIProcess/DrawingAreaProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChangeIntrinsicContentSize):
(WebKit::WebPageProxy::setViewLayoutSize):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::intrinsicContentSizeDidChange): Deleted.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::intrinsicContentSizeDidChange): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateIntrinsicContentSizeIfNeeded):
(WebKit::WebPage::dispatchDidReachLayoutMilestone):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::flushLayers):
(WebKit::TiledCoreAnimationDrawingArea::updateIntrinsicContentSizeIfNeeded): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AutoLayoutIntegration.mm:

(TEST):
The expected order of incoming events is

  1. didInvalidateIntrinsicContentSize
  2. didFirstLayout

At setRenderingProgressDidChange, we already check if didInvalidateIntrinsicContentSize comes in first.
However it's not guaranteed that the milestone event is delayed until after TestWebKitAPI::Util::run() is finished
(and remember, all we care about is ordering).

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

Remove useConcurrentBarriers option
https://bugs.webkit.org/show_bug.cgi?id=197066

Reviewed by Michael Saboff.

This isn't a helpful option as it will lead us to crash when using the
concurrent GC.

  • dfg/DFGStoreBarrierClusteringPhase.cpp:
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::barrierStoreLoadFence):

  • runtime/Options.h:
1:26 PM Changeset in webkit [244432] by Keith Rollin
  • 2 edits in trunk/Source/WebKitLegacy

Move MiG .def files into their own "Copy files" build step
https://bugs.webkit.org/show_bug.cgi?id=196982

Reviewed by Alex Christensen.

WebKitLegacy's MiG files need to be processed differently from the
other files in the "Copy Headers" build phase, so move them into their
own "Copy Files" build phase. This arrangement removes them from any
post-processing performed on the main group of headers.

  • WebKitLegacy.xcodeproj/project.pbxproj:
12:16 PM Changeset in webkit [244431] by Ryan Haddad
  • 6 edits in trunk

Unreviewed, rolling out r244299.

Breaks internal tests.

Reverted changeset:

"InjectedBundle parameters often need initialization function
called before unarchiving"
https://bugs.webkit.org/show_bug.cgi?id=189709
https://trac.webkit.org/changeset/244299

11:12 AM Changeset in webkit [244430] by timothy@apple.com
  • 4 edits
    2 deletes in trunk/LayoutTests

Unreviewed test gardening.

  • css-dark-mode/older-systems/color-scheme-css-expected.txt: Rebaselined.
  • css-dark-mode/older-systems/color-scheme-meta-expected.txt: Rebaselined.
  • fast/css/style-enumerate-properties.html: Updated count to work on Windows.
  • platform/mac-highsierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Removed.
  • platform/mac-sierra/css-dark-mode/prefers-color-scheme-picture-element-expected.txt: Removed.
10:48 AM Changeset in webkit [244429] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[WTF] StringBuilder should set correct m_is8Bit flag when merging
https://bugs.webkit.org/show_bug.cgi?id=197053

Reviewed by Saam Barati.

JSTests:

  • stress/merge-string-builder-in-dfg.js: Added.

(foo):

Source/WTF:

When appending StringBuilder to the other StringBuilder, we have a path that does not set m_is8Bit flag correctly.
This patch correctly sets this flag. And we also change 0 to nullptr when we are using 0 as a pointer.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::reserveCapacity):
(WTF::StringBuilder::appendUninitializedSlow):
(WTF::StringBuilder::append):

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::append):
(WTF::StringBuilder::characters8 const):
(WTF::StringBuilder::characters16 const):
(WTF::StringBuilder::clear):

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

9:44 AM Changeset in webkit [244428] by Shawn Roberts
  • 17 edits
    8 deletes in trunk

Unreviewed manual rollout of r244248 and r244409
Causing assertion failures on Mac WK2 Debug builds
https://bugs.webkit.org/show_bug.cgi?id=195623
Source/WebCore:

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::prefetchIfNeeded):

  • loader/ResourceLoadInfo.cpp:

(WebCore::toResourceType):

  • loader/ResourceLoadInfo.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::prefetchCache): Deleted.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::isCrossOriginPrefetch const): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/PrefetchCache.cpp: Removed.
  • NetworkProcess/cache/PrefetchCache.h: Removed.
  • Shared/WebPreferences.yaml:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • http/tests/cache/link-prefetch-main-resource-expected.txt: Removed.
  • http/tests/cache/link-prefetch-main-resource-iframe-expected.txt: Removed.
  • http/tests/cache/link-prefetch-main-resource-iframe.html: Removed.
  • http/tests/cache/link-prefetch-main-resource.html: Removed.
  • http/tests/cache/resources/prefetched-main-resource-iframe.php: Removed.
  • http/tests/cache/resources/prefetched-main-resource.php: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
9:34 AM Changeset in webkit [244427] by Devin Rousso
  • 4 edits in trunk/Source

Web Inspector: Canvas: enable WebGL2 for inspector page
https://bugs.webkit.org/show_bug.cgi?id=196932
<rdar://problem/49916213>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction._prototypeForType):
(WI.RecordingAction.prototype.process.getContent):
Add additional checks for ImageBitmapRenderingContext and WebGLRenderingContext.

Source/WebKit:

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::WebInspectorUI):

9:31 AM Changeset in webkit [244426] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Tile update problems in iframe after scrolling page too soon after load
https://bugs.webkit.org/show_bug.cgi?id=197057
<rdar://problem/49913663>

Reviewed by Simon Fraser.

We end up destroying FrameHosting scrolling node when we shouldn't.

No test, despite attempts I couldn't get this state to stick. The problem is that in
most cases the destroying scrolling node gets immediately recreated and connected again.
Getting into testably buggy state requires some very specific layer tree configuration update.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):

Test the right thing.

9:24 AM Changeset in webkit [244425] by Ryan Haddad
  • 4 edits in branches/safari-607-branch/Tools

Cherry-pick r240301. rdar://problem/49984116

[iOS] Multiple WKWebViewAutofillTests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=189165
<rdar://problem/47433765>

Reviewed by Tim Horton.

These tests are currently flaky because they expect an invocation of "Element.blur()" in the web process to
immediately dispatch an IPC message to notify the UI process that the element has been blurred. In particular,
the -textInputHasAutofillContext helper assumes that waiting for the next remote layer tree commit in the UI
process in sufficient to ensure that any previous action that blurred the focused element in the web process
would make its way to the UI process by the time the layer tree commit is finished.

However, WebPage::elementDidBlur sends its IPC message to the UI process asynchronously, using callOnMainThread.
This means that if a layer tree flush was already scheduled in the web process before the element was blurred,
the element blur IPC message to the UI process will lose the race against the layer tree commit, and the test
will fail because it asks for -_autofillContext too early.

To fix this, we tweak these tests to actually wait until the intended input session change triggered by script
is handled in the UI process.

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

Tweak some of these tests to wait for input session changes before checking for the presence of an autofill
context. The only exception is an existing test that doesn't allow programmatic focus to begin input sessions
by default; to fix this test, we simply wait for _WKInputDelegate to be invoked, instead of waiting for a new
input session.

(-[AutofillTestView textInputHasAutofillContext]):

Remove the incorrect presentation update here. This helper now assumes that the UI process is up to date.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm: (nextInputSessionChangeCount):

Monotonically increasing identifier that's incremented whenever an input session is started in the UI process.
This includes changing the focused element from one to another.

(-[TestWKWebView initWithFrame:configuration:addToWindow:]):
(-[TestWKWebView didStartFormControlInteraction]):
(-[TestWKWebView didEndFormControlInteraction]):
(-[TestWKWebView evaluateJavaScriptAndWaitForInputSessionToChange:]):

Add a helper to evaluate JavaScript and wait for this script to cause some change in the input session. This
handles three cases: (1) changing focus from an element that doesn't require an input session to one that does,
(2) changing focus between elements that require input sessions, and (3) changing focus from an input session
that doesn't require an input session to one that doesn't.

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

8:51 AM Changeset in webkit [244424] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed test gardening.

The test imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html is flaky on bots.

  • platform/mac/TestExpectations:
6:31 AM Changeset in webkit [244423] by graouts@webkit.org
  • 9 edits
    1 add in trunk

[Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html
https://bugs.webkit.org/show_bug.cgi?id=197004

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node-expected.txt: Added.

Source/WebCore:

We need to release pointer capture when an element that has pointer capture is disconnected from the DOM.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor): Notify the PointerCaptureController that an element was disconnected.

  • dom/PointerEvent.cpp:

(WebCore::PointerEvent::create): Broaden createPointerCancelEvent() to take in an event type so that we may use it to create a
lostpointercapture event as well.
(WebCore::PointerEvent::createPointerCancelEvent): Deleted.

  • dom/PointerEvent.h:
  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::elementWasRemoved): Check whether the provided element matches one of the target overrides recorded
in the map of captured pointer IDs.
(WebCore::PointerCaptureController::pointerEventWasDispatched): This block of code was actually useless in this location, the new code
added in elementWasRemoved() performs the actions that the spec text mandates.
(WebCore::PointerCaptureController::cancelPointer): Replace the call to createPointerCancelEvent() with one to create().

  • page/PointerCaptureController.h:

LayoutTests:

  • platform/mac/TestExpectations:
12:30 AM Changeset in webkit [244422] by ysuzuki@apple.com
  • 2 edits in trunk/Source/bmalloc

Unreviewed, fix build failure
https://bugs.webkit.org/show_bug.cgi?id=195938

Including <array>.

  • bmalloc/AvailableMemory.cpp:

Apr 17, 2019:

11:41 PM Changeset in webkit [244421] by graouts@webkit.org
  • 9 edits
    1 add in trunk

[Pointer Events WPT] Unskip imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
https://bugs.webkit.org/show_bug.cgi?id=197006

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt: Added.

Source/WebCore:

Add support for on* HTML attributes and JS properties for pointer events.

  • dom/GlobalEventHandlers.idl:
  • html/HTMLAttributeNames.in:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac/TestExpectations:
11:39 PM Changeset in webkit [244420] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo port

Following tests expected to fail but passed constantly.

  • css3/masking/clip-path-inset-corners.html
  • fast/box-shadow/box-shadow-with-zero-radius.html
  • storage/indexeddb/database-odd-names.html
  • storage/indexeddb/lazy-index-population.html
  • platform/wincairo/TestExpectations: Unmarked them.
10:01 PM Changeset in webkit [244419] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 80

Added a tag for Safari Technology Preview release 80.

8:43 PM Changeset in webkit [244418] by Devin Rousso
  • 5 edits in trunk/Source/WebKit

Web Inspector: InspectorFrontendHost::inspectionLevel returns wrong value for inspector3
https://bugs.webkit.org/show_bug.cgi?id=197044

Reviewed by Joseph Pecoraro.

  • UIProcess/WebInspectorUtilities.h:
  • UIProcess/WebInspectorUtilities.cpp:

(WebKit::trackInspectorPage):
(WebKit::untrackInspectorPage):
Determine the level of the inspector page by looking to see if the page being inspected is
in the inspector page map. If so, we must be inspecting an inspector page and should use
that inspector page's inspection level as the value to increment.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createFrontendPage):

  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):

6:16 PM Changeset in webkit [244417] by Kocsen Chung
  • 28 edits in tags/Safari-608.1.17

Revert r244228. rdar://problem/49999041

6:06 PM Changeset in webkit [244416] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.17

Tag Safari-608.1.17.

6:02 PM Changeset in webkit [244415] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

[iOS Sim Debug] REGRESSION (r244151) TestWebKitAPI.WebKit.OverrideViewportArguments is failing (197028)
https://bugs.webkit.org/show_bug.cgi?id=197028
<rdar://problem/49985290>

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/OverrideViewportArguments.mm:

(TEST):
Liberal application of waitForNextPresentationUpdate works around a race
where if the page rapidly changes its viewport arguments (or an API client
rapidly changes its viewport arguments), we'd get stuck thinking that the
user had intentionally zoomed the page, and stop resetting the initial scale.
This deserves a separate bug, but no need to keep the test failing while
we think about it.

5:42 PM Changeset in webkit [244414] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Adopt different scroll view flashing SPI
https://bugs.webkit.org/show_bug.cgi?id=197043
<rdar://problem/49996476>

Reviewed by Wenson Hsieh.

Source/WebKit:

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

(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):

Source/WTF:

  • wtf/Platform.h:
4:55 PM Changeset in webkit [244413] by timothy@apple.com
  • 7 edits in trunk

Standardize the <meta name="color-scheme"> separator.
https://bugs.webkit.org/show_bug.cgi?id=193931

Reviewed by Simon Fraser.

Source/WebCore:

Drop support for comma as a valid seperator in <meta name="color-scheme"> to
match the proposal being tracked by: https://github.com/whatwg/html/issues/4504

Tests: css-dark-mode/color-scheme-meta.html

css-dark-mode/older-syntax/supported-color-schemes-meta.html

  • dom/Document.cpp:

(WebCore::isColorSchemeSeparator): Drop support for comma.

LayoutTests:

  • css-dark-mode/color-scheme-meta-expected.txt:
  • css-dark-mode/color-scheme-meta.html:
  • css-dark-mode/older-syntax/supported-color-scheme-meta-expected.txt:
  • css-dark-mode/older-syntax/supported-color-schemes-meta.html:
4:47 PM Changeset in webkit [244412] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Navigating to resource sometimes shows different resource
https://bugs.webkit.org/show_bug.cgi?id=195978
<rdar://problem/49043191>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.cancelRestoringState):
Reset _pendingViewStateCookie so _checkElementsForPendingViewStateCookie could exit early.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WI.ResourceSidebarPanel.prototype.initialLayout):
(WI.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
(WI.ResourceSidebarPanel.prototype._createMainFrameTreeElement):
Don't try to change content view on initialLayout.

4:37 PM Changeset in webkit [244411] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CPU Usage Timeline - Include # of Network Requests in the Statistics section
https://bugs.webkit.org/show_bug.cgi?id=197039
<rdar://problem/49996299>

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.initialLayout):
(WI.CPUTimelineView.prototype._computeStatisticsData):
(WI.CPUTimelineView.prototype._clearStatistics):
Add the number of network requests started in the selected range.

4:33 PM Changeset in webkit [244410] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk

REGRESSION (r241988): Switching tabs is slow
https://bugs.webkit.org/show_bug.cgi?id=197037
<rdar://problem/49951473>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState):
r241988 changed to wait for a WebPageProxy message to a given DrawingArea ID,
but WebPageProxy messages are identified by their WebPageProxy ID.
Revert that one change. The rest of the patch looks OK.

Tools:

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

(TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView addToTestWindow]):
Add a test that hangs without this fix.

4:29 PM Changeset in webkit [244409] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Link prefetch not useful for top-level navigation
https://bugs.webkit.org/show_bug.cgi?id=195623

Patch by Rob Buis <rbuis@igalia.com> on 2019-04-17
Reviewed by Alex Christensen.

Fix macOS and iOS Debug WK2 bots ASSERTS after r367404, by simply
not sending the DidReceiveResponse message.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):

4:15 PM Changeset in webkit [244408] by timothy@apple.com
  • 24 edits
    4 copies
    12 moves
    4 adds
    3 deletes in trunk

Rename supported-color-schemes to color-scheme.
https://bugs.webkit.org/show_bug.cgi?id=197016
rdar://problem/49980259

Reviewed by Simon Fraser.

Source/WebCore:

Changed supported-color-schemes to color-scheme to follow the spec changes
being tracked by: https://github.com/w3c/csswg-drafts/issues/3807

The old supported-color-schemes is now an alias of color-scheme for compatibility.

Tests: css-dark-mode/color-scheme-css-parse.html

css-dark-mode/color-scheme-css.html
css-dark-mode/color-scheme-meta.html
css-dark-mode/color-scheme-priority.html
css-dark-mode/color-scheme-scrollbar.html
css-dark-mode/older-syntax/supported-color-schemes-css.html
css-dark-mode/older-syntax/supported-color-schemes-meta.html
css-dark-mode/older-systems/color-scheme-css.html
css-dark-mode/older-systems/color-scheme-meta.html

  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::updateColorScheme):
(WebCore::StyleBuilderConverter::convertColorScheme):
(WebCore::StyleBuilderConverter::updateSupportedColorSchemes): Deleted.
(WebCore::StyleBuilderConverter::convertSupportedColorSchemes): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueColorScheme):
(WebCore::StyleBuilderCustom::applyValueSupportedColorSchemes): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyMatchedProperties):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeColorScheme):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeSupportedColorSchemes): Deleted.

  • dom/Document.cpp:

(WebCore::processColorSchemeString):
(WebCore::Document::processColorScheme):
(WebCore::Document::useDarkAppearance const):
(WebCore::processColorSchemes): Deleted.
(WebCore::Document::processSupportedColorSchemes): Deleted.

  • dom/Document.h:
  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process):

  • page/FrameView.cpp:

(WebCore::FrameView::rendererForColorScheme const):
(WebCore::FrameView::useDarkAppearance const):
(WebCore::FrameView::styleColorOptions const):
(WebCore::FrameView::rendererForSupportedColorSchemes const): Deleted.

  • page/FrameView.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::rareInheritedDataChangeRequiresRepaint):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::colorScheme const):
(WebCore::RenderStyle::setHasExplicitlySetColorScheme):
(WebCore::RenderStyle::hasExplicitlySetColorScheme const):
(WebCore::RenderStyle::setColorScheme):
(WebCore::RenderStyle::initialColorScheme):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::supportedColorSchemes const): Deleted.
(WebCore::RenderStyle::setHasExplicitlySetSupportedColorSchemes): Deleted.
(WebCore::RenderStyle::hasExplicitlySetSupportedColorSchemes const): Deleted.
(WebCore::RenderStyle::setSupportedColorSchemes): Deleted.
(WebCore::RenderStyle::initialSupportedColorSchemes): Deleted.

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleColorScheme.h: Renamed from Source/WebCore/rendering/style/StyleSupportedColorSchemes.h.

(WebCore::StyleColorScheme::StyleColorScheme):
(WebCore::StyleColorScheme::operator== const):
(WebCore::StyleColorScheme::operator!= const):
(WebCore::StyleColorScheme::isAuto const):
(WebCore::StyleColorScheme::isOnly const):
(WebCore::StyleColorScheme::colorScheme const):
(WebCore::StyleColorScheme::add):
(WebCore::StyleColorScheme::contains const):
(WebCore::StyleColorScheme::setAllowsTransformations):
(WebCore::StyleColorScheme::allowsTransformations const):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):

  • rendering/style/StyleRareInheritedData.h:

Source/WebInspectorUI:

  • UserInterface/Views/Main.css:

(:root):

LayoutTests:

  • css-dark-mode/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
  • css-dark-mode/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
  • css-dark-mode/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
  • css-dark-mode/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes.html.
  • css-dark-mode/color-scheme-parse-expected.txt: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes-expected.txt.
  • css-dark-mode/color-scheme-parse.html: Renamed from LayoutTests/css-dark-mode/parse-supported-color-schemes.html.
  • css-dark-mode/color-scheme-priority-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority-expected.txt.
  • css-dark-mode/color-scheme-priority.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-priority.html.
  • css-dark-mode/color-scheme-scrollbar-expected.txt: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar-expected.txt.
  • css-dark-mode/color-scheme-scrollbar.html: Renamed from LayoutTests/css-dark-mode/supported-color-schemes-scrollbar.html.
  • css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css-expected.txt.
  • css-dark-mode/older-syntax/supported-color-schemes-css.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes-css.html.
  • css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt: Copied from LayoutTests/css-dark-mode/supported-color-schemes-expected.txt.
  • css-dark-mode/older-syntax/supported-color-schemes-meta.html: Copied from LayoutTests/css-dark-mode/supported-color-schemes.html.
  • css-dark-mode/older-systems/color-scheme-css-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt
  • css-dark-mode/older-systems/color-scheme-css.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html.
  • css-dark-mode/older-systems/color-scheme-meta-expected.txt: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt.
  • css-dark-mode/older-systems/color-scheme-meta.html: Renamed from LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html.
  • fast/css/style-enumerate-properties.html: Updated property count.
4:06 PM Changeset in webkit [244407] by Truitt Savell
  • 7 edits
    1 delete in trunk

Unreviewed, rolling out r244400.

Caused testing to exit early with assertionon Debug WK2

Reverted changeset:

"UI↔Web deadlock when printing with a JavaScript alert
visible"
https://bugs.webkit.org/show_bug.cgi?id=196839
https://trac.webkit.org/changeset/244400

3:51 PM Changeset in webkit [244406] by Justin Fan
  • 4 edits in trunk

[Web GPU] GPUComputePassEncoder::dispatch number of thread groups, not grid size
https://bugs.webkit.org/show_bug.cgi?id=196984

Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: Updated compute-squares.html.

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:

(WebCore::GPUComputePassEncoder::dispatch):

LayoutTests:

  • webgpu/compute-squares.html: One thread group is enough to process the data in a single pass.
3:47 PM Changeset in webkit [244405] by beidson@apple.com
  • 9 edits
    1 add in trunk

Link clicks in PDFs shouldn't send referrer headers.
<rdar://problem/21142581> and https://bugs.webkit.org/show_bug.cgi?id=196980

Reviewed by Tim Horton.

Source/WebKit:

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::clickedLink):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Tools:

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

(putPDFBytesCallback):
(emptyReleaseInfoCallback):
(createPDFWithLinkToURL):
(TEST):

3:41 PM Changeset in webkit [244404] by aestes@apple.com
  • 4 edits in trunk/Source

[iOS] Support multiple file selection in UIDocumentPickerViewController
https://bugs.webkit.org/show_bug.cgi?id=197014
<rdar://problem/49963514>

Reviewed by Tim Horton.

Source/WebCore:

  • platform/LocalizedStrings.h:

Exported multipleFileUploadText().

Source/WebKit:

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showDocumentPickerMenu]):
Allowed multiple file selection in our UIDocumentPickerViewController when
_allowMultipleFiles is YES.

(displayStringForDocumentsAtURLs):
(-[WKFileUploadPanel documentPicker:didPickDocumentsAtURLs:]):
Changed to support multiple file selection. When more than one file is selected, use
WebCore::multipleFileUploadText() as the display string.

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

Make WebCompiledContentRuleListData non-default-constructible, move its nonserialized member to API::ContentRuleList
https://bugs.webkit.org/show_bug.cgi?id=197033

Reviewed by Tim Horton.

This is just cleanup that makes the code nicer without changing behavior.

  • Shared/WebCompiledContentRuleListData.cpp:

(WebKit::WebCompiledContentRuleListData::encode const):
(WebKit::WebCompiledContentRuleListData::decode):

  • Shared/WebCompiledContentRuleListData.h:

(WebKit::WebCompiledContentRuleListData::WebCompiledContentRuleListData):

  • UIProcess/API/APIContentRuleList.h:
  • UIProcess/API/APIContentRuleListStore.cpp:

(API::createExtension):

2:47 PM Changeset in webkit [244402] by wilander@apple.com
  • 16 edits
    4 copies
    4 adds in trunk

Add prioritization of ad click conversions and cleaning of sent ad click conversions
https://bugs.webkit.org/show_bug.cgi?id=196934
<rdar://problem/49917773>

Reviewed by Chris Dumez.

Source/WebCore:

Tests: http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html

http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html
http/tests/adClickAttribution/second-conversion-with-higher-priority.html
http/tests/adClickAttribution/second-conversion-with-lower-priority.html

  • loader/AdClickAttribution.cpp:

(WebCore::AdClickAttribution::hasHigherPriorityThan const):

Added to facilitate priority comparison between two attributions.

  • loader/AdClickAttribution.h:

(WebCore::AdClickAttribution::Destination::Destination):

Added a WTF::HashTableDeletedValueType constructor and changed the copy constructor to
a move constructor.

(WebCore::AdClickAttribution::isEmpty const):

Source/WebKit:

In this description, by "pair" I mean { AdClickAttribution::Source, AdClickAttribution::Destination }.

This patch adds handling of prioritization of conversions according to these rules:

  • If we have a matching unconverted attribution, convert it. This consumes the conversion.
  • If we have no previously converted attribution for this pair, just store.
  • If we have a previously converted attribution for this pair, replace it if the new one has higher priority.
  • If we had no matching unconverted attribution but do have a previously converted attribution for this

pair, re-convert the previously converted attribution to make sure the highest priority gets set.

This handling is in part done by dividing the previous m_adClickAttributionMap into
m_unconvertedAdClickAttributionMap and m_convertedAdClickAttributionMap, which now use a std::pair
as key instead of a nested HashMap.

This patch also changes AdClickAttributionManager::firePendingConversionRequests() so that it now
removes attributions which have been sent out.

Finally, AdClickAttributionManager::clear() no longer clears m_conversionBaseURLForTesting and
m_isRunningTest since doing so caused test flakiness. It is now up to the test case that sets these
members to also clear them when done.

  • NetworkProcess/AdClickAttributionManager.cpp:

(WebKit::AdClickAttributionManager::storeUnconverted):
(WebKit::AdClickAttributionManager::convert):
(WebKit::AdClickAttributionManager::firePendingConversionRequests):
(WebKit::AdClickAttributionManager::clear):
(WebKit::AdClickAttributionManager::toString const):
(WebKit::AdClickAttributionManager::setConversionURLForTesting):
(WebKit::AdClickAttributionManager::ensureDestinationMapForSource): Deleted.
(WebKit::AdClickAttributionManager::store): Deleted.

  • NetworkProcess/AdClickAttributionManager.h:

(WebKit::AdClickAttributionManager::AdClickAttributionManager):
(WebKit::AdClickAttributionManager::setConversionURLForTesting): Deleted.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::storeAdClickAttribution):

LayoutTests:

  • http/tests/adClickAttribution/attribution-conversion-through-cross-site-image-redirect-expected.txt:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-with-priority-expected.txt:
  • http/tests/adClickAttribution/attribution-conversion-through-image-redirect-without-priority-expected.txt:
  • http/tests/adClickAttribution/resources/getConversionData.php:
  • http/tests/adClickAttribution/resources/redirectToConversion.php:
  • http/tests/adClickAttribution/second-attribution-converted-with-higher-priority-expected.txt: Added.
  • http/tests/adClickAttribution/second-attribution-converted-with-higher-priority.html: Added.
  • http/tests/adClickAttribution/second-attribution-converted-with-lower-priority-expected.txt: Added.
  • http/tests/adClickAttribution/second-attribution-converted-with-lower-priority.html: Added.
  • http/tests/adClickAttribution/second-conversion-with-higher-priority-expected.txt: Added.
  • http/tests/adClickAttribution/second-conversion-with-higher-priority.html: Added.
  • http/tests/adClickAttribution/second-conversion-with-lower-priority-expected.txt: Added.
  • http/tests/adClickAttribution/second-conversion-with-lower-priority.html: Added.
  • http/tests/adClickAttribution/send-attribution-conversion-request-expected.txt:
  • http/tests/adClickAttribution/send-attribution-conversion-request.html:
  • http/tests/adClickAttribution/store-ad-click-attribution-expected.txt:
2:35 PM Changeset in webkit [244401] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Remove deprecated JSScript SPI
https://bugs.webkit.org/show_bug.cgi?id=194909
<rdar://problem/48283499>

Reviewed by Keith Miller.

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderFetch):

  • API/JSScript.h:
  • API/JSScript.mm:

(+[JSScript scriptWithSource:inVirtualMachine:]): Deleted.
(fillBufferWithContentsOfFile): Deleted.
(+[JSScript scriptFromASCIIFile:inVirtualMachine:withCodeSigning:andBytecodeCache:]): Deleted.
(+[JSScript scriptFromUTF8File:inVirtualMachine:withCodeSigning:andBytecodeCache:]): Deleted.
(-[JSScript setSourceURL:]): Deleted.

  • API/JSScriptInternal.h:
  • API/tests/testapi.mm:

(testFetch):
(testFetchWithTwoCycle):
(testFetchWithThreeCycle):
(testLoaderResolvesAbsoluteScriptURL):
(testImportModuleTwice):
(-[JSContextFileLoaderDelegate context:fetchModuleForIdentifier:withResolveHandler:andRejectHandler:]):

1:20 PM Changeset in webkit [244400] by timothy_horton@apple.com
  • 7 edits
    1 add in trunk

UI↔Web deadlock when printing with a JavaScript alert visible
https://bugs.webkit.org/show_bug.cgi?id=196839
<rdar://problem/49157642>

Reviewed by Andy Estes.

Source/WebKit:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::sendSyncReply):
(IPC::Connection::dispatchSyncMessage):

  • Platform/IPC/Connection.h:

(IPC::Connection::hasOutstandingOutgoingSynchronousReplies const):
Keep track of whether we owe the other side of the connection any
delayed sync replies.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _webViewPrintFormatter]):
Most actions one can take with a _WKWebViewPrintFormatter involve
synchronously messaging the Web Content process with an infinite timeout.
Doing so while the Web Content process is awaiting a reply to a deferred-reply
synchronous message (like, say, an alert()) results in an app-destroying deadlock.
Instead of that, return a nil _WKWebViewPrintFormatter, indicating to the client
that we can't print right now.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):
(-[WKContentView _wk_printedDocument]):
The above isn't sufficient, though, because a sync message could arrive and
be handled between creation and use of the _WKWebViewPrintFormatter.
So, we also bail with a zero page count and null CGPDFDocument immediately
before we would send a sync message to the Web Content process. Clients
handle this less gracefully (e.g. showing a zero page PDF), but it is
very rare compared to the above case.

Tools:

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

(-[PrintOnAlertUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

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

Web Inspector: Canvas: imported recordings aren't processed when the navigation sidebar is collapsed
https://bugs.webkit.org/show_bug.cgi?id=196921
<rdar://problem/49910815>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype.initialLayout):

12:59 PM Changeset in webkit [244398] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Extension scripts with parse errors do not show up in Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=196996
<rdar://problem/47054804>

Reviewed by Devin Rousso.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.scriptDidFail):
Create a LocalScript that can be linked to but ignore it
if we already have a Resource for the URL.

  • UserInterface/Protocol/DebuggerObserver.js:

(WI.DebuggerObserver.prototype.scriptFailedToParse):
Let DebuggerManager potentially create a script for this.

  • UserInterface/Models/Script.js:

(WI.Script):
Local scripts provide a null id and id is not required below.

12:54 PM Changeset in webkit [244397] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

REGRESSION (r244220): fast/forms/ios/inputmode-change-update-keyboard.html times out
https://bugs.webkit.org/show_bug.cgi?id=197027
<rdar://problem/49959227>

Reviewed by Megan Gardner.

Recently, r244220 added a mechanism to disconnect or connect the hardware keyboard from layout tests; adopt this
to fix several tests that require the software keyboard to be present.

  • fast/events/autoscroll-when-input-is-offscreen.html:
  • fast/forms/ios/inputmode-change-update-keyboard.html:
12:50 PM Changeset in webkit [244396] by jer.noble@apple.com
  • 2 edits in trunk

Automatically use ccache when available for Makefile builds
https://bugs.webkit.org/show_bug.cgi?id=197020

Reviewed by Alex Christensen.

  • Makefile.shared:
12:46 PM Changeset in webkit [244395] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKitLegacy

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

Causing build failures on several internal builders (Requested
by ShawnRoberts on #webkit).

Reverted changeset:

"Move MiG .def files into their own "Copy files" build step"
https://bugs.webkit.org/show_bug.cgi?id=196982
https://trac.webkit.org/changeset/244386

12:28 PM Changeset in webkit [244394] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

AX: AccessibilityObject::parentObject() doesn't need to be pure virtual
https://bugs.webkit.org/show_bug.cgi?id=197026
<rdar://problem/49448209>

Reviewed by Timothy Hatcher.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::parentObject const):

12:13 PM Changeset in webkit [244393] by graouts@webkit.org
  • 8 edits
    127 adds
    9 deletes in trunk/LayoutTests

[Pointer Events WPT] Update WPT tests and provide macOS testdriver
https://bugs.webkit.org/show_bug.cgi?id=197011
<rdar://problem/49976553>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

We update the WPT tests from the latest state of the WPT GitHub repository and provide a testdriver to dispatch mouse events on macOS.

  • web-platform-tests/payment-request/payment-request-canmakepayment-method.https-expected.txt: Update expectations now that an (incomplete)

test driver is available.

  • web-platform-tests/pointerevents/META.yml:
  • web-platform-tests/pointerevents/compat/pointerevent_touch-action_two-finger_interaction-manual.html: Added.
  • web-platform-tests/pointerevents/extension/idlharness.window-expected.txt: Removed.
  • web-platform-tests/pointerevents/extension/idlharness.window.html: Removed.
  • web-platform-tests/pointerevents/extension/pointerevent_coalesced_events_attributes-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_constructor.html:
  • web-platform-tests/pointerevents/extension/pointerevent_getCoalescedEvents_when_pointerlocked-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_getPredictedEvents_when_pointerlocked-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_pointerrawmove_in_pointerlock-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_predicted_events_attributes-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-down-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-left-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-right-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-pan-up-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/extension/w3c-import.log: Removed.
  • web-platform-tests/pointerevents/html/pointerevent_drag_interaction-manual.html: Added.
  • web-platform-tests/pointerevents/idlharness.window-expected.txt: Removed.
  • web-platform-tests/pointerevents/idlharness.window.html: Removed.
  • web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-manual-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers-manual-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers.html: Added.
  • web-platform-tests/pointerevents/pointerevent_boundary_events_in_capturing-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_capture_mouse-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_capture_mouse.html: Added.
  • web-platform-tests/pointerevents/pointerevent_capture_suppressing_mouse-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_change-touch-action-onpointerdown_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_click_during_capture-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_click_during_capture.html: Added.
  • web-platform-tests/pointerevents/pointerevent_disabled_form_control-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_element_haspointercapture-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_element_haspointercapture_release_pending_capture-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_fractional_coordinates-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html: Added.
  • web-platform-tests/pointerevents/pointerevent_lostpointercapture_is_first.html: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover.html: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame.html: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_inactivate_pointer-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_inactivate_pointer.html: Added.
  • web-platform-tests/pointerevents/pointerevent_multiple_primary_pointers_boundary_events-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt: Removed.
  • web-platform-tests/pointerevents/pointerevent_pointerId_scope-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointercancel_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerenter_does_not_bubble-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerenter_does_not_bubble.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_descendant_over-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_descendant_over.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_descendants-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_descendants.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_does_not_bubble-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_does_not_bubble.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerleave_pen-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove_on_chorded_mouse_button-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointermove_on_chorded_mouse_button.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerout_after_pointercancel_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerout_pen.html: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerout_received_once-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_pointerout_received_once.html: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_events_to_original_target-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_invalid_pointerid-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_invalid_pointerid.html: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_onpointerup_mouse.html: Added.
  • web-platform-tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_root_computed_style-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_root_computed_style.html: Added.
  • web-platform-tests/pointerevents/pointerevent_root_hit_test-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_root_hit_test.html: Added.
  • web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_click-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_disconnected-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_disconnected.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_inactive_button_mouse.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_invalid_pointerid-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_invalid_pointerid.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_override_pending_capture_element-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget.html: Added.
  • web-platform-tests/pointerevents/pointerevent_setpointercapture_to_same_element_twice-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_support.js:
  • web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_click-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_click.html: Added.
  • web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_suppress_compat_events_on_drag_mouse.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-button-test_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-keyboard-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-mouse-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-rotated-divs_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-span-test_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-table-test_touch-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_coordinates_when_locked.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy_when_locked-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_after_pointercapture-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-manual.html: Added.
  • web-platform-tests/pointerevents/pointerlock/resources/pointerevent_pointermove_in_pointerlock-iframe.html: Added.
  • web-platform-tests/pointerevents/pointerlock/resources/w3c-import.log: Removed.
  • web-platform-tests/pointerevents/resources/pointerevent_mouse_pointercapture-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/pointerevent_mouse_pointercapture_inactivate_pointer-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/pointerevent_pointerrawmove_in_pointerlock-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/w3c-import.log: Removed.
  • web-platform-tests/pointerevents/w3c-import.log: Removed.
  • web-platform-tests/resources/testdriver-actions.js: Added.
  • web-platform-tests/resources/testdriver-vendor.js: Added.

(logDebug):
(dispatchMouseActions):
(window.test_driver_internal.action_sequence):

  • web-platform-tests/resources/testdriver.js: Added.

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_boundary_events_at_implicit_release_hoverable_pointers-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_capture_change_hover-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_mouse_pointercapture_in_frame-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/pointerevents/pointerevent_setpointercapture_relatedtarget-expected.txt: Added.
  • platform/mac/TestExpectations:
11:57 AM Changeset in webkit [244392] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[ContentChangeObserver] Use aria role as a hint whether a tap should result in a synthetic click
https://bugs.webkit.org/show_bug.cgi?id=196988
<rdar://problem/49955328>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role.html

  • accessibility/AccessibilityObject.h:

Source/WebKit:

Tapping on elements with cretain aria role attributes should trigger synthetic click the same way it does on form control elements.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::isAriaRoleForImmediateClick):
(WebKit::nodeAlwaysRequiresClick):
(WebKit::WebPage::handleSyntheticClick):

LayoutTests:

  • fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role-expected.txt: Added.
  • fast/events/touch/ios/content-observation/tap-on-input-looking-div-with-role.html: Added.
11:49 AM Changeset in webkit [244391] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

WebSocketHandshake should not know about a Document
https://bugs.webkit.org/show_bug.cgi?id=196468

Reviewed by Tim Horton.

I'll need to move WebSocketHandshake to the NetworkProcess for rdar://problem/46287028
It currently uses the Document pointer for 3 things:

  1. To get the user agent, which we can pass in as a creation parameter.
  2. To get the origin, which we can also pass in as a creation parameter.
  3. To get cookies for the web inspector. We can pass in a functor instead and have the inspector provide cookies itself.
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::clientHandshakeRequest):

  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::document):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::WebSocketHandshake):
(WebCore::WebSocketHandshake::clientHandshakeMessage const):
(WebCore::WebSocketHandshake::clientHandshakeRequest const):
(WebCore::WebSocketHandshake::clientOrigin const): Deleted.
(WebCore::WebSocketHandshake::clientHandshakeCookieRequestHeaderFieldProxy const): Deleted.
(WebCore::WebSocketHandshake::clearDocument): Deleted.

  • Modules/websockets/WebSocketHandshake.h:
  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::enable):

11:28 AM Changeset in webkit [244390] by achristensen@apple.com
  • 107 edits in trunk

WKRetainPtr's adoption constructor should be private
https://bugs.webkit.org/show_bug.cgi?id=197019

Reviewed by Tim Horton.

Source/WebKit:

RefPtr and RetainPtr have already done this. It makes us use nicer syntax.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDownloadClient):

  • UIProcess/API/cpp/WKRetainPtr.h:

(WebKit::WKRetainPtr::WKRetainPtr):
(WebKit::adoptWK):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpFramesAsText):

  • TestWebKitAPI/InjectedBundleController.cpp:

(TestWebKitAPI::InjectedBundleController::initialize):

  • TestWebKitAPI/PlatformUtilities.cpp:

(TestWebKitAPI::Util::createContextWithInjectedBundle):
(TestWebKitAPI::Util::createInitializationDictionaryForInjectedBundleTest):
(TestWebKitAPI::Util::createContextForInjectedBundleTest):
(TestWebKitAPI::Util::toWK):

  • TestWebKitAPI/Tests/CustomProtocolsSyncXHRTest.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/CloseFromWithinCreatePage.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/CloseThenTerminate.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic_Bundle.cpp:

(TestWebKitAPI::DOMWindowExtensionBasic::initialize):

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionNoCache.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DOMWindowExtensionNoCache_Bundle.cpp:

(TestWebKitAPI::DOMWindowExtensionNoCache::initialize):

  • TestWebKitAPI/Tests/WebKit/DeferredViewInWindowStateChange.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DidNotHandleKeyDown.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DidRemoveFrameFromHiearchyInPageCache_Bundle.cpp:

(TestWebKitAPI::didRemoveFrameFromHierarchyCallback):

  • TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash_Bundle.cpp:

(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize):

  • TestWebKitAPI/Tests/WebKit/EnumerateMediaDevices.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/EphemeralSessionPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/EvaluateJavaScript.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/EventModifiers.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FailedLoad.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/Find.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FindMatches.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FirstMeaningfulPaintMilestone.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ForceRepaint.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FrameHandle.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FrameMIMETypeHTML.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/FrameMIMETypePNG.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/Geolocation.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetInjectedBundleInitializationUserDataCallback.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/HitTestResultNodeHandle_Bundle.cpp:

(TestWebKitAPI::HitTestResultNodeHandleTest::getContextMenuFromDefaultMenu):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleBasic.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior_Bundle.cpp:

(TestWebKitAPI::InjectedBundleNoDisableOverrideBuiltinsBehaviorTest::initialize):
(TestWebKitAPI::InjectedBundleDisableOverrideBuiltinsBehaviorTest::initialize):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleFrameHitTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleFrameHitTest_Bundle.cpp:

(TestWebKitAPI::InjectedBundleFrameHitTestTest::frameLoadFinished):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleInitializationUserDataCallbackWins.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen_Bundle.cpp:

(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::initialize):

  • TestWebKitAPI/Tests/WebKit/LayoutMilestonesWithAllContentInFrame.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/LoadAlternateHTMLStringWithNonDirectoryURL.cpp:

(TestWebKitAPI::loadAlternateHTMLString):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/LoadCanceledNoServerRedirectCallback.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/LoadPageOnCrash.cpp:

(TestWebKitAPI::WebKit2CrashLoader::WebKit2CrashLoader):

  • TestWebKitAPI/Tests/WebKit/MenuTypesForMouseEvents.cpp:

(TestWebKitAPI::buildAndPerformTest):

  • TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/MouseMoveAfterCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayout.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFails.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutForImages.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/NewFirstVisuallyNonEmptyLayoutFrames.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PageLoadBasic.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PageLoadDidChangeLocationWithinPageForFrame.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PasteboardNotifications.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PendingAPIRequestURL.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PreventEmptyUserAgent.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ProcessDidTerminate.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ReloadPageAfterCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ResizeWindowAfterCrash.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/RestoreSessionStateContainingFormData.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ScrollPinningBehaviors.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/ShouldKeepCurrentBackForwardListItemInList.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/SpacebarScrolling.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/StopLoadingDuringDidFailProvisionalLoad.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/TerminateTwice.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/UserMedia.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKPageCopySessionStateWithFiltering.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKPageGetScaleFactorNotZero.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKPageIsPlayingAudio.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKPreferences.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WKThumbnailView.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/WillSendSubmitEvent.cpp:

(TestWebKitAPI::didReceiveMessageFromInjectedBundle):

  • TestWebKitAPI/Tests/WebKit/mac/AttributedSubstringForProposedRangeWithImage.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuDownload.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/CustomBundleParameter.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/EditorCommands.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/GetPIDAfterAbortedProcessLaunch.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/InjectedBundleAppleEvent.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/RestoreStateAfterTermination.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspendMediaBuffering.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(TEST):

  • TestWebKitAPI/Tests/mac/FirstResponderScrollingPosition.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/FullscreenZoomInitialFrame.mm:

(TestWebKitAPI::FullscreenZoomInitialFrame::initializeView):

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::getMenuItemTitleCallback):
(WTR::createMouseMessageBody):
(WTR::EventSendingController::mouseDown):
(WTR::EventSendingController::mouseUp):
(WTR::EventSendingController::mouseMoveTo):
(WTR::EventSendingController::mouseForceClick):
(WTR::EventSendingController::startAndCancelMouseForceClick):
(WTR::EventSendingController::mouseForceDown):
(WTR::EventSendingController::mouseForceUp):
(WTR::EventSendingController::mouseForceChanged):
(WTR::EventSendingController::leapForward):
(WTR::EventSendingController::scheduleAsynchronousClick):
(WTR::createKeyDownMessageBody):
(WTR::EventSendingController::keyDown):
(WTR::EventSendingController::scheduleAsynchronousKeyDown):
(WTR::EventSendingController::mouseScrollBy):
(WTR::EventSendingController::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSendingController::continuousMouseScrollBy):
(WTR::EventSendingController::addTouchPoint):
(WTR::EventSendingController::updateTouchPoint):
(WTR::EventSendingController::setTouchModifier):
(WTR::EventSendingController::setTouchPointRadius):
(WTR::EventSendingController::touchStart):
(WTR::EventSendingController::touchMove):
(WTR::EventSendingController::touchEnd):
(WTR::EventSendingController::touchCancel):
(WTR::EventSendingController::clearTouchPoints):
(WTR::EventSendingController::releaseTouchPoint):
(WTR::EventSendingController::cancelTouchPoint):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didCreatePage):
(WTR::InjectedBundle::didReceiveMessage):
(WTR::InjectedBundle::didReceiveMessageToPage):
(WTR::InjectedBundle::booleanForKey):
(WTR::InjectedBundle::done):
(WTR::InjectedBundle::dumpToStdErr):
(WTR::InjectedBundle::outputText):
(WTR::InjectedBundle::postNewBeforeUnloadReturnValue):
(WTR::InjectedBundle::postAddChromeInputField):
(WTR::InjectedBundle::postRemoveChromeInputField):
(WTR::InjectedBundle::postFocusWebView):
(WTR::InjectedBundle::postSetBackingScaleFactor):
(WTR::InjectedBundle::postSetWindowIsKey):
(WTR::InjectedBundle::postSetViewSize):
(WTR::InjectedBundle::postSimulateWebNotificationClick):
(WTR::InjectedBundle::postSetAddsVisitedLinks):
(WTR::InjectedBundle::setGeolocationPermission):
(WTR::InjectedBundle::setMockGeolocationPosition):
(WTR::InjectedBundle::setMockGeolocationPositionUnavailableError):
(WTR::InjectedBundle::isGeolocationProviderActive const):
(WTR::InjectedBundle::imageCountInGeneralPasteboard const):
(WTR::InjectedBundle::setUserMediaPersistentPermissionForOrigin):
(WTR::InjectedBundle::userMediaPermissionRequestCountForOrigin const):
(WTR::InjectedBundle::resetUserMediaPermissionRequestCountForOrigin):
(WTR::InjectedBundle::setCustomPolicyDelegate):
(WTR::InjectedBundle::setHidden):
(WTR::InjectedBundle::setCacheModel):
(WTR::InjectedBundle::shouldProcessWorkQueue const):
(WTR::InjectedBundle::processWorkQueue):
(WTR::InjectedBundle::queueBackNavigation):
(WTR::InjectedBundle::queueForwardNavigation):
(WTR::InjectedBundle::queueLoad):
(WTR::InjectedBundle::queueLoadHTMLString):
(WTR::InjectedBundle::queueReload):
(WTR::InjectedBundle::queueLoadingScript):
(WTR::InjectedBundle::queueNonLoadingScript):

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::frameToStr):
(WTR::InjectedBundlePage::InjectedBundlePage):
(WTR::dumpFrameDescriptionSuitableForTestResult):
(WTR::dumpFrameScrollPosition):
(WTR::dumpDescendantFrameScrollPositions):
(WTR::dumpFrameText):
(WTR::dumpDescendantFramesText):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::shouldDumpPixels const):
(WTR::TestRunner::setDumpPixels):
(WTR::TestRunner::whatToDump const):
(WTR::TestRunner::setWhatToDump):
(WTR::TestRunner::setWaitUntilDone):
(WTR::TestRunner::shouldWaitUntilDone const):
(WTR::TestRunner::setShouldDumpFrameLoadCallbacks):
(WTR::TestRunner::shouldDumpFrameLoadCallbacks):
(WTR::TestRunner::clearAllDatabases):
(WTR::TestRunner::setIDBPerOriginQuota):
(WTR::TestRunner::originsWithApplicationCache):
(WTR::TestRunner::setCanOpenWindows):
(WTR::TestRunner::setXSSAuditorEnabled):
(WTR::TestRunner::setMediaDevicesEnabled):
(WTR::TestRunner::setWebRTCMDNSICECandidatesEnabled):
(WTR::TestRunner::setWebRTCUnifiedPlanEnabled):
(WTR::TestRunner::setCustomUserAgent):
(WTR::TestRunner::setWebAPIStatisticsEnabled):
(WTR::TestRunner::setModernMediaControlsEnabled):
(WTR::TestRunner::setWebGL2Enabled):
(WTR::TestRunner::setWritableStreamAPIEnabled):
(WTR::TestRunner::setReadableByteStreamAPIEnabled):
(WTR::TestRunner::setEncryptedMediaAPIEnabled):
(WTR::TestRunner::setAllowsAnySSLCertificate):
(WTR::TestRunner::setPluginsEnabled):
(WTR::TestRunner::setValueForUser):
(WTR::TestRunner::setAudioResult):
(WTR::TestRunner::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestRunner::clearDidReceiveServerRedirectForProvisionalNavigation):
(WTR::TestRunner::setAlwaysAcceptCookies):
(WTR::TestRunner::setOnlyAcceptFirstPartyCookies):
(WTR::TestRunner::isDoingMediaCapture const):
(WTR::TestRunner::queueLoad):
(WTR::TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):
(WTR::TestRunner::setHandlesAuthenticationChallenges):
(WTR::TestRunner::setShouldLogCanAuthenticateAgainstProtectionSpace):
(WTR::TestRunner::setShouldLogDownloadCallbacks):
(WTR::TestRunner::setAuthenticationUsername):
(WTR::TestRunner::setAuthenticationPassword):
(WTR::TestRunner::secureEventInputIsEnabled const):
(WTR::TestRunner::setBlockAllPlugins):
(WTR::TestRunner::setPluginSupportedMode):
(WTR::TestRunner::setShouldDecideNavigationPolicyAfterDelay):
(WTR::TestRunner::setShouldDecideResponsePolicyAfterDelay):
(WTR::TestRunner::setNavigationGesturesEnabled):
(WTR::TestRunner::setIgnoresViewportScaleLimits):
(WTR::TestRunner::setShouldDownloadUndisplayableMIMETypes):
(WTR::TestRunner::setShouldAllowDeviceOrientationAndMotionAccess):
(WTR::TestRunner::terminateNetworkProcess):
(WTR::TestRunner::terminateServiceWorkerProcess):
(WTR::TestRunner::runUIScript):
(WTR::TestRunner::setStatisticsDebugMode):
(WTR::TestRunner::setStatisticsPrevalentResourceForDebugMode):
(WTR::TestRunner::setStatisticsLastSeen):
(WTR::TestRunner::setStatisticsPrevalentResource):
(WTR::TestRunner::setStatisticsVeryPrevalentResource):
(WTR::TestRunner::dumpResourceLoadStatistics):
(WTR::TestRunner::isStatisticsPrevalentResource):
(WTR::TestRunner::isStatisticsVeryPrevalentResource):
(WTR::TestRunner::isStatisticsRegisteredAsSubresourceUnder):
(WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
(WTR::TestRunner::setStatisticsHasHadUserInteraction):
(WTR::TestRunner::isStatisticsHasHadUserInteraction):
(WTR::TestRunner::setStatisticsGrandfathered):
(WTR::TestRunner::isStatisticsGrandfathered):
(WTR::TestRunner::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUniqueRedirectTo):
(WTR::TestRunner::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestRunner::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestRunner::setStatisticsTopFrameUniqueRedirectFrom):
(WTR::TestRunner::setStatisticsCrossSiteLoadWithLinkDecoration):
(WTR::TestRunner::setStatisticsTimeToLiveUserInteraction):
(WTR::TestRunner::installStatisticsDidScanDataRecordsCallback):
(WTR::TestRunner::statisticsProcessStatisticsAndDataRecords):
(WTR::TestRunner::statisticsUpdateCookieBlocking):
(WTR::TestRunner::statisticsSubmitTelemetry):
(WTR::TestRunner::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestRunner::setStatisticsIsRunningTest):
(WTR::TestRunner::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestRunner::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WTR::TestRunner::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WTR::TestRunner::setStatisticsGrandfatheringTime):
(WTR::TestRunner::setStatisticsMaxStatisticsEntries):
(WTR::TestRunner::setStatisticsPruneEntriesDownTo):
(WTR::TestRunner::statisticsClearInMemoryAndPersistentStore):
(WTR::TestRunner::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WTR::TestRunner::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestRunner::statisticsDeleteCookiesForHost):
(WTR::TestRunner::setStatisticsCacheMaxAgeCap):
(WTR::TestRunner::statisticsResetToConsistentState):
(WTR::TestRunner::setStorageAccessAPIEnabled):
(WTR::TestRunner::getAllStorageAccessEntries):
(WTR::TestRunner::addMockMediaDevice):
(WTR::TestRunner::clearMockMediaDevices):
(WTR::TestRunner::removeMockMediaDevice):
(WTR::TestRunner::resetMockMediaDevices):
(WTR::TestRunner::connectMockGamepad):
(WTR::TestRunner::disconnectMockGamepad):
(WTR::TestRunner::setMockGamepadDetails):
(WTR::TestRunner::setMockGamepadAxisValue):
(WTR::TestRunner::setMockGamepadButtonValue):
(WTR::TestRunner::removeAllSessionCredentials):
(WTR::TestRunner::clearDOMCache):
(WTR::TestRunner::clearDOMCaches):
(WTR::TestRunner::hasDOMCache):
(WTR::TestRunner::domCacheSize):
(WTR::TestRunner::setAllowStorageQuotaIncrease):
(WTR::TestRunner::getApplicationManifestThen):
(WTR::TestRunner::injectUserScript):
(WTR::TestRunner::sendDisplayConfigurationChangedMessageForTesting):
(WTR::TestRunner::setWebAuthenticationMockConfiguration):
(WTR::TestRunner::addTestKeyToKeychain):
(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::keyExistsInKeychain):
(WTR::TestRunner::setCanHandleHTTPSServerTrustEvaluation):
(WTR::TestRunner::canDoServerTrustEvaluationInNetworkProcess):
(WTR::TestRunner::serverTrustEvaluationCallbackCallsCount):
(WTR::TestRunner::setShouldDismissJavaScriptAlertsAsynchronously):
(WTR::TestRunner::setAdClickAttributionOverrideTimerForTesting):
(WTR::TestRunner::setAdClickAttributionConversionURLForTesting):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
(WTR::parseStringTestHeaderValueAsRelativePath):
(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::runTest):
(WTR::TestController::didReceiveLiveDocumentsList):
(WTR::TestController::didReceiveMessageFromInjectedBundle):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestController::didFinishNavigation):
(WTR::TestController::didReceiveAuthenticationChallenge):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::uiScriptDidComplete):
(WTR::TestInvocation::didReceiveAllStorageAccessEntries):

  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::closeWebNotification):

  • WebKitTestRunner/WorkQueueManager.cpp:

(WTR::ScriptItem::ScriptItem):
(WTR::WorkQueueManager::queueLoad):
(WTR::WorkQueueManager::queueLoadHTMLString):

11:09 AM Changeset in webkit [244389] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix crash during teardown of PingLoad
https://bugs.webkit.org/show_bug.cgi?id=197024
<rdar://problem/49973077>

Reviewed by Jer Noble.

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::initialize):
Early return if weakThis is null.

11:04 AM Changeset in webkit [244388] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

REGRESSION (r243926): [iOS] Release assertion when computing editor state during an overflow scroll triggered by layout
https://bugs.webkit.org/show_bug.cgi?id=197012
<rdar://problem/49908848>

Reviewed by Simon Fraser.

Source/WebKit:

We hit the release assertion due to the following sequence of events:

  • Dispatch a queued event (in this case, a scroll event)
  • Invoke the scroll event listener, which modifies layout in some way
  • This scrolls an overflow scrollable container under the scope of layout
  • Overflow scrolling then calls didChangeSelection and triggers an editor state update, which updates layout

In the case where the selection is in the main frame, we bail early due to the check for recursive layout (i.e.
frameView->layoutContext().isInRenderTreeLayout()). However, in the case where the selection is inside a
subframe, we end up skipping past this check, since the subframe's FrameView isn't currently laying out, and so
we end up hitting the release assertion underneath the early return.

To fix this, simply defer editor state updates due to overflow scrolling until the next remote layer tree commit
instead of computing and sending the information immediately. While this only defers editor state updates during
overflow scrolling, <rdar://problem/47258878> tracks making editor state updates deferred in the general case.

Test: editing/selection/overflow-scroll-while-selecting-text.html

  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

(WebKit::WebEditorClient::overflowScrollPositionChanged):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChangeOverflowScrollPosition):
(WebKit::WebPage::didChangeSelection):
(WebKit::WebPage::didChangeSelectionOrOverflowScrollPosition):

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

Adds a new layout test to exercise the crash.

  • editing/selection/overflow-scroll-while-selecting-text-expected.txt: Added.
  • editing/selection/overflow-scroll-while-selecting-text.html: Added.
10:59 AM Changeset in webkit [244387] by timothy@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for iOSMac after r244223.

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::routeSharingPolicy const): Add ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END
around AVAudioSessionRouteSharingPolicyLongForm use.

10:58 AM Changeset in webkit [244386] by Keith Rollin
  • 2 edits in trunk/Source/WebKitLegacy

Move MiG .def files into their own "Copy files" build step
https://bugs.webkit.org/show_bug.cgi?id=196982

Reviewed by Alex Christensen.

WebKitLegacy's MiG files need to be processed differently from the
other files in the "Copy Headers" build phase, so move them into their
own "Copy Files" build phase. This arrangement removes them from any
post-processing performed on the main group of headers.

  • WebKitLegacy.xcodeproj/project.pbxproj:
10:57 AM Changeset in webkit [244385] by Keith Rollin
  • 2 edits in trunk/Source/JavaScriptCore

Remove JSCBuiltins.cpp from Copy Headers phase
https://bugs.webkit.org/show_bug.cgi?id=196981
<rdar://problem/49952133>

Reviewed by Alex Christensen.

JSCBuiltins.cpp is not a header and so doesn't need to be in the Copy
Headers phase. Checking its history, it seems to have been added
accidentally at the same time that JSCBuiltins.h was added.

10:41 AM Changeset in webkit [244384] by achristensen@apple.com
  • 2 edits in trunk/Tools

Add a comment to make my test from r244139 less mysterious.
https://bugs.webkit.org/show_bug.cgi?id=196744

As suggested by Darin Adler.

  • TestWebKitAPI/Tests/WebKitCocoa/BundleRetainPagePlugIn.mm:

(-[BundleRetainPagePlugIn webProcessPlugIn:didCreateBrowserContextController:]):

10:28 AM Changeset in webkit [244383] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

[Mac iOS WK2] Layout Test http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=196974

Reviewed by Brady Eidson.

  • http/tests/resourceLoadStatistics/ping-to-prevalent-resource.html:

Make test do one thing at a time to avoid race conditions.
Clean up state on the server after test is finished to prevent corrupting future test state.

10:03 AM Changeset in webkit [244382] by Chris Dumez
  • 32 edits
    1 copy
    1 add in trunk

Remember device orientation permission for the duration of the browsing session
https://bugs.webkit.org/show_bug.cgi?id=196992
<rdar://problem/49946067>

Reviewed by Alex Christensen.

Source/WebCore:

Use DeviceOrientationOrMotionPermissionState type more consistently in the code base
instead of bool or Optional<bool>. Added "Prompt" value to this enumeration which is the
default state and which indicates we should ask the client.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DeviceOrientationAndMotionAccessController.cpp:

(WebCore::DeviceOrientationAndMotionAccessController::DeviceOrientationAndMotionAccessController):
(WebCore::DeviceOrientationAndMotionAccessController::shouldAllowAccess):

  • dom/DeviceOrientationAndMotionAccessController.h:

(WebCore::DeviceOrientationAndMotionAccessController::accessState const):

  • dom/DeviceOrientationOrMotionEvent.cpp:

(WebCore::DeviceOrientationOrMotionEvent::requestPermission):

  • dom/DeviceOrientationOrMotionPermissionState.h:
  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::deviceOrientationAndMotionAccessState const):
(WebCore::DocumentLoader::setDeviceOrientationAndMotionAccessState):

  • page/ChromeClient.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::isAllowedToAddDeviceMotionOrientationListener const):

Source/WebKit:

Implement caching of device orientation permission decisions on the WebDeviceOrientationAndMotionAccessController,
which is owned by the WebsiteDataStore. This way, if we already prompted the user of a given origin, we will
remember the previous decision for the duration of the session and not prompt again.

  • Shared/WebsitePoliciesData.cpp:

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

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

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

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(toDeviceOrientationOrMotionPermissionState):
(-[WKWebpagePreferences _setDeviceOrientationAndMotionAccessPolicy:]):
(toWKWebsiteDeviceOrientationAndMotionAccessPolicy):
(-[WKWebpagePreferences _deviceOrientationAndMotionAccessPolicy]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::shouldAllowDeviceOrientationAndMotionAccess):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp: Added.

(WebKit::WebDeviceOrientationAndMotionAccessController::shouldAllowDeviceOrientationAndMotionAccess):
(WebKit::WebDeviceOrientationAndMotionAccessController::deviceOrientationPermission const):

  • UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.h: Copied from Source/WebCore/dom/DeviceOrientationAndMotionAccessController.h.
  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::deviceOrientationAndMotionAccessController):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::shouldAllowDeviceOrientationAndMotionAccess):

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

(WebKit::WebPage::shouldAllowDeviceOrientationAndMotionAccess):

  • WebProcess/WebPage/WebPage.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(-[DeviceOrientationPermissionUIDelegate _webView:shouldAllowDeviceOrientationAndMotionAccessRequestedByFrame:decisionHandler:]):
(TEST):

9:47 AM Changeset in webkit [244381] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
https://bugs.webkit.org/show_bug.cgi?id=196994
<rdar://problem/44158331>

Reviewed by Alex Christensen.

  • wtf/Platform.h:
9:22 AM Changeset in webkit [244380] by Ryan Haddad
  • 2 edits in branches/safari-607-branch/Tools

Cherry-pick r242819. rdar://problem/49979209

Flaky API Test TestWebKitAPI.WebKitLegacy.ScrollingDoesNotPauseMedia
https://bugs.webkit.org/show_bug.cgi?id=195137
<rdar://problem/48810307>

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollingDoesNotPauseMedia.mm: (TestWebKitAPI::TEST):

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

9:20 AM Changeset in webkit [244379] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Clicking 'submit to new ews' doesn't reload status-bubble
https://bugs.webkit.org/show_bug.cgi?id=196675

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/views/submittoews.py:

(SubmitToEWS): Added @xframe_options_exempt similar to statusbubble.py

9:10 AM Changeset in webkit [244378] by Alan Bujtas
  • 41 edits in trunk/LayoutTests

[iOS] Unreviewed gardening.

2 single taps in fast loading subsequent tests are recognized as double tap. Turn off double taps for content observation tests.

  • fast/events/touch/ios/content-observation/0ms-delay-0ms-transition-on-mousemove.html:
  • fast/events/touch/ios/content-observation/0ms-transition-on-touch-start.html:
  • fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove.html:
  • fast/events/touch/ios/content-observation/100ms-transition-on-touch-start.html:
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-mousemove.html:
  • fast/events/touch/ios/content-observation/10ms-delay-0ms-transition-on-touch-start.html:
  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start-with-non-0px-end.html:
  • fast/events/touch/ios/content-observation/10ms-delay-transition-on-touch-start.html:
  • fast/events/touch/ios/content-observation/350ms-hover-intent.html:
  • fast/events/touch/ios/content-observation/400ms-hover-intent.html:
  • fast/events/touch/ios/content-observation/click-instead-of-hover-simple.html:
  • fast/events/touch/ios/content-observation/clickable-content-is-inside-a-container.html:
  • fast/events/touch/ios/content-observation/crash-on-anonymous-renderer.html:
  • fast/events/touch/ios/content-observation/hover-when-style-change-is-async.html:
  • fast/events/touch/ios/content-observation/hover-while-loading-subframe.html:
  • fast/events/touch/ios/content-observation/iframe-is-shown-on-hover.html:
  • fast/events/touch/ios/content-observation/mouse-out-event-should-fire-on-click.html:
  • fast/events/touch/ios/content-observation/move-content-from-offscreen.html:
  • fast/events/touch/ios/content-observation/new-content-covers-tap-target.html:
  • fast/events/touch/ios/content-observation/non-visible-becomes-visible-and-gains-new-renderer.html:
  • fast/events/touch/ios/content-observation/non-visible-content-gains-new-renderer.html:
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-opacity-and-left.html:
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove-with-transition.html:
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-mousemove.html:
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart-with-transition.html:
  • fast/events/touch/ios/content-observation/opacity-change-happens-on-touchstart.html:
  • fast/events/touch/ios/content-observation/remove-subframe-while-observing.html:
  • fast/events/touch/ios/content-observation/stuck-with-hover-state.html:
  • fast/events/touch/ios/content-observation/style-recalc-schedule-and-force-relalc.html:
  • fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html:
  • fast/events/touch/ios/content-observation/tap-on-input-type-text-element.html:
  • fast/events/touch/ios/content-observation/transition-on-touch-start-and-remove.html:
  • fast/events/touch/ios/content-observation/visibility-change-after-touch-end.html:
  • fast/events/touch/ios/content-observation/visibility-change-happens-at-the-second-timer.html:
  • fast/events/touch/ios/content-observation/visibility-change-happens-on-timer-hops.html:
  • fast/events/touch/ios/content-observation/visibility-change-happens-while-in-mousemoved.html:
  • fast/events/touch/ios/content-observation/visibility-change-is-max-height-change.html:
  • fast/events/touch/ios/content-observation/visibility-change-on-touch-start-simple.html:
  • fast/events/touch/ios/content-observation/visibility-change-with-image-content.html:
  • fast/events/touch/ios/content-observation/visible-content-gains-new-renderer.html:
5:59 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
3:11 AM Changeset in webkit [244377] by commit-queue@webkit.org
  • 6 edits
    1 copy
    2 moves
    7 adds
    2 deletes in trunk

XMLHttpRequest has the wrong fallback encoding
https://bugs.webkit.org/show_bug.cgi?id=191741

Patch by Rob Buis <rbuis@igalia.com> on 2019-04-17
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test expectations and sync unsupported-encodings.any.js and
replacement-encodings.any.js tests.

  • web-platform-tests/encoding/replacement-encodings.any-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/replacement-encodings-expected.txt.
  • web-platform-tests/encoding/replacement-encodings.any.html: Added.
  • web-platform-tests/encoding/replacement-encodings.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/replacement-encodings.html.
  • web-platform-tests/encoding/replacement-encodings.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/replacement-encodings-expected.txt.
  • web-platform-tests/encoding/replacement-encodings.any.worker.html: Added.
  • web-platform-tests/encoding/unsupported-encodings-expected.txt: Removed.
  • web-platform-tests/encoding/unsupported-encodings.any-expected.txt: Added.
  • web-platform-tests/encoding/unsupported-encodings.any.html: Added.
  • web-platform-tests/encoding/unsupported-encodings.any.js: Added.
  • web-platform-tests/encoding/unsupported-encodings.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/unsupported-encodings.any.worker.html: Added.
  • web-platform-tests/encoding/unsupported-encodings.html: Removed.
  • web-platform-tests/xhr/overridemimetype-edge-cases.window-expected.txt:
  • web-platform-tests/xhr/responsetext-decoding-expected.txt:

Source/WebCore:

Allow overriding the response charset as specified here:
https://xhr.spec.whatwg.org/#final-charset

Behavior matches Firefox and Chrome.

Tests: imported/w3c/web-platform-tests/encoding/replacement-encodings.any.html

imported/w3c/web-platform-tests/encoding/replacement-encodings.any.worker.html
imported/w3c/web-platform-tests/encoding/unsupported-encodings.any.html
imported/w3c/web-platform-tests/encoding/unsupported-encodings.any.worker.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::finalResponseCharset const):
(WebCore::XMLHttpRequest::createDecoder const):

  • xml/XMLHttpRequest.h:
2:21 AM Changeset in webkit [244376] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Update the test result of resize-observer/eventloop.html.
https://bugs.webkit.org/show_bug.cgi?id=197001

Patch by Cathie Chen <cathiechen> on 2019-04-17
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/resize-observer/eventloop-expected.txt:

LayoutTests:

Since 177484 has landed, the order of requestAnimationFrame and resizeobserver callback is right.
No need to mark eventloop.html as flaky.

12:36 AM Changeset in webkit [244375] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Opt Google Maps into simulated mouse events dispatch quirk
https://bugs.webkit.org/show_bug.cgi?id=196965
<rdar://problem/49934766>

Reviewed by Dean Jackson.

Use the correct Google Maps path.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

12:33 AM Changeset in webkit [244374] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Opt flipkart.com into simulated mouse events dispatch quirk
https://bugs.webkit.org/show_bug.cgi?id=196961
<rdar://problem/49648520>

Reviewed by Dean Jackson.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

12:30 AM Changeset in webkit [244373] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

Opt MSN.com into simulated mouse events dispatch quirk
https://bugs.webkit.org/show_bug.cgi?id=196960
<rdar://problem/49403260>

Reviewed by Dean Jackson.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):

Apr 16, 2019:

11:16 PM Changeset in webkit [244372] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

ScalableImageDecoder: don't forcefully decode image data when querying frame completeness, duration
https://bugs.webkit.org/show_bug.cgi?id=191354
<rdar://problem/46123406>

Reviewed by Michael Catanzaro.

ScalableImageDecoder::frameIsCompleteAtIndex() should only check the
index validity and, if the index is valid, check for completeness of the
corresponding frame. ScalableImageDecoder::frameDurationAtIndex() should
also only retrieve duration for already-complete frames, or expand the
default 0-second value according to the flashing-protection rule when
the target frame is not yet complete.

Both methods avoid calling ScalableImageDecoder::frameBufferAtIndex()
as that method goes on and decodes image data to determine specific
information. The ImageSource class that's querying this information
doesn't anticipate this, and doesn't handle the increased memory
consumption of the decoded data, leaving MemoryCache in the blind about
the image resource's actual amount of consumed memory. ImageSource can
instead gracefully handle any incomplete frame by marking the decoding
status for this frame as only partial.

  • platform/image-decoders/ScalableImageDecoder.cpp:

(WebCore::ScalableImageDecoder::frameIsCompleteAtIndex const):
(WebCore::ScalableImageDecoder::frameHasAlphaAtIndex const):
(WebCore::ScalableImageDecoder::frameDurationAtIndex const):

9:45 PM Changeset in webkit [244371] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[iOSMac] Use UIDocumentPickerViewController for picking files
https://bugs.webkit.org/show_bug.cgi?id=196999
<rdar://problem/49961414>

Reviewed by Tim Horton.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showDocumentPickerMenu]):
Changed to present a UIDocumentPickerViewController on iOSMac.

(-[WKFileUploadPanel documentPicker:didPickDocumentsAtURLs:]):
(-[WKFileUploadPanel documentPicker:didPickDocumentAtURL:]):
Replaced a deprecated delegate method implementation.

8:34 PM Changeset in webkit [244370] by Wenson Hsieh
  • 25 edits
    2 adds in trunk

[iOS] [WebKit2] Add support for honoring -[UIMenuItem dontDismiss]
https://bugs.webkit.org/show_bug.cgi?id=196919
<rdar://problem/41630459>

Reviewed by Tim Horton.

Source/WebKit:

Adds modern WebKit support for -dontDismiss by implementing a couple of new platform hooks. Covered by a new
layout test: editing/selection/ios/selection-after-changing-text-with-callout-menu.html.

  • Platform/spi/ios/UIKitSPI.h:

Declare the private -dontDismiss property of UIMenuItem.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView willFinishIgnoringCalloutBarFadeAfterPerformingAction]):

Additionally teach the web view (not just the content view) to respond to the hook. This matters in the case
where the WebKit client (most notably, Mail) overrides WKWebView methods to define custom actions in the menu
controller. This scenario is exercised by the new layout test.

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

(-[WKContentView willFinishIgnoringCalloutBarFadeAfterPerformingAction]):

If an action was performed where callout bar fading was ignored, then in WebKit, don't allow selection changes
to fade the callout bar until after the next remote layer tree commit.

(-[WKContentView _updateChangedSelection:]):

Stop suppressing selection updates when showing B/I/U controls, now that we can properly honor the -dontDismiss
property. This was originally introduced in <rdar://problem/15199925>, presumably to ensure that B/I/U buttons
(which have -dontDismiss set to YES) don't trigger selection change and end up dismissing themselves; however,
if triggering B/I/U actually changes the selection rects, this also means that the selection rects on-screen
would be stale after triggering these actions. This effect is most noticeable when bolding text.

(-[WKContentView shouldAllowHidingSelectionCommands]):

Tools:

Add iOS support for several new testing hooks. See below for more detail.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::isDismissingMenu const):

Add a new script controller method to query whether the platform menu (on iOS, the callout bar) is done
dismissing. We consider the menu to be dismissing in between the -WillHide and -DidHide notifications sent
by UIKit when dismissing the callout bar (i.e. UIMenuController).

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::isDismissingMenu const):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setAllowedMenuActions):

Add a new helper method to specify a list of allowed actions when bringing up the menu. On iOS, in the case of
actions supported by the platform, this matches against method selector names (for instance, "SelectAll", or
"Copy", or "Paste"). In the case of the custom actions installed via installCustomMenuAction, we instead match
against the name of the custom action.

(WTR::TestRunner::installCustomMenuAction):

Add a new helper method to install a custom action for the context menu (on iOS, this is the callout bar). This
takes the name of the action (which appears in a button in the callout bar), whether the action should cause
the callout bar to automatically dismiss, and finally, a JavaScript callback that is invoked when the action is
triggered.

(WTR::TestRunner::performCustomMenuAction):

Invoked when the custom menu action is triggered.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::installCustomMenuAction):
(WTR::TestController::setAllowedMenuActions):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::performCustomMenuAction):

Add plumbing to call back into the injected bundle when performing the custom action.

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::installCustomMenuAction):
(WTR::TestController::setAllowedMenuActions):

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView initWithFrame:configuration:]):
(-[TestRunnerWKWebView becomeFirstResponder]):
(-[TestRunnerWKWebView _addCustomItemToMenuControllerIfNecessary]):

Helper method that converts web view's current custom menu action info into a UIMenuItem, and adds it to the
shared menu controller. This is also invoked when the web view becomes first responder, which matches behavior
in the Mail app on iOS.

(-[TestRunnerWKWebView installCustomMenuAction:dismissesAutomatically:callback:]):
(-[TestRunnerWKWebView setAllowedMenuActions:]):
(-[TestRunnerWKWebView resetCustomMenuAction]):
(-[TestRunnerWKWebView performCustomAction:]):
(-[TestRunnerWKWebView canPerformAction:withSender:]):
(-[TestRunnerWKWebView _willHideMenu]):
(-[TestRunnerWKWebView _didHideMenu]):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

Reset both any custom installed actions on the shared menu controller, as well as the list of allowed actions,
if specified.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::isDismissingMenu const):

LayoutTests:

Add a new iOS layout test that installs a custom, non-dismissing action in the callout menu that enlarges text.
The test then activates this custom menu item and checks that the selection rects after triggering this custom
action are updated, and the callout bar is still showing.

  • editing/selection/ios/selection-after-changing-text-with-callout-menu-expected.txt: Added.
  • editing/selection/ios/selection-after-changing-text-with-callout-menu.html: Added.

This test additionally suppresses all callout bar menu items except for the custom "Embiggen" action, to ensure
that the "Embiggen" option can be tapped from the layout test without having to navigate callout bar items by
tapping on the "Next" and "Show styles" buttons. This latter approach is very challenging to make reliable in
automation; when navigating submenus in the callout bar, the next button can't be tapped until the current
callout bar transition animation is complete, but there's no delegate method invoked or notification posted when
this happens.

  • resources/ui-helper.js:

(window.UIHelper.isShowingMenu):
(window.UIHelper.isDismissingMenu):
(window.UIHelper.rectForMenuAction):
(window.UIHelper.async.chooseMenuAction):

Additionally add a few more UIHelper methods.

(window.UIHelper):

7:56 PM Changeset in webkit [244369] by Ross Kirsling
  • 4 edits in trunk/Source

Unreviewed non-unified build fix after r244307.

Source/WebCore:

  • page/DiagnosticLoggingClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.h:
6:41 PM Changeset in webkit [244368] by Megan Gardner
  • 9 edits in trunk

Allow sharing from imageSheet on an image document
https://bugs.webkit.org/show_bug.cgi?id=196891
<rdar://problem/25377386>

Reviewed by Tim Horton.

Source/WebKit:

Allow sharing from an image sheet generated from an image document
by storing the image URL and using it as a fallback for the URL.
Store it as an image on WKElementAction to not accidentally trigger
any actions that should actually be associated with pure URLs.

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:userInfo:]):
(-[_WKActivatedElementInfo imageURL]):
(-[_WKActivatedElementInfo _initWithType:URL:location:title:ID:rect:image:]): Deleted.
(-[_WKActivatedElementInfo _initWithType:URL:location:title:ID:rect:image:userInfo:]): Deleted.

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showImageSheet]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant showLinkSheet]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showAttachmentSheet]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):

Tools:

Test to make sure that the correct imageURL is extracted from an image element.

  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):

6:32 PM Changeset in webkit [244367] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[Cocoa] Add a way for Apple-internal clients to opt into recommended compatibility mode
https://bugs.webkit.org/show_bug.cgi?id=196977
<rdar://problem/49871194>

Reviewed by Tim Horton.

Add a helper method to query whether the navigation client should bypass policy safeguards when determining the
recommended compatibility mode. We bypass policy safeguards in Cocoa platforms if the navigation delegate
implements the new navigation delegate API.

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::shouldBypassCompatibilityModeSafeguards const):

  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::shouldBypassCompatibilityModeSafeguards const):

6:27 PM Changeset in webkit [244366] by stephan.szabo@sony.com
  • 4 edits in trunk/Source

[PlayStation] Update port for system library changes
https://bugs.webkit.org/show_bug.cgi?id=196978

Reviewed by Ross Kirsling.

Source/JavaScriptCore:

  • shell/playstation/Initializer.cpp:

Add reference to new posix compatibility library.

Source/WTF:

  • wtf/PlatformPlayStation.cmake:

Remove reference to deleted system library

5:33 PM Changeset in webkit [244365] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:] never returns _WKWebsiteDataTypeCredentials
https://bugs.webkit.org/show_bug.cgi?id=196991
<rdar://problem/45507423>

Reviewed by Brent Fulgham.

The credentials are stored in the Network process. To enable fetching credentials from the Network process,
a proper process access type needs to be set for the credential Website data type.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataFetch):

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

REGRESSION(r244162) Clearing website data from ephemeral WKWebsiteDataStore should finish instead of asserting or hanging
https://bugs.webkit.org/show_bug.cgi?id=196995

Patch by Alex Christensen <achristensen@webkit.org> on 2019-04-16
Reviewed by Brady Eidson.

Source/WebKit:

Always call CompletionHandlers. Otherwise things hang or assert.
I added an API test that asserts without this change so we don't regress this again.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TEST):

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

Web Inspector: Worker imported scripts not showing up in Open Quickly dialog if inspector open after workers exist
https://bugs.webkit.org/show_bug.cgi?id=196986

Reviewed by Devin Rousso.

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addScriptsForTarget):
We were unnecessary skipping Scripts that do not have a sourceURL but do
have a URL, which ends up being Worker populated scripts.

4:29 PM Changeset in webkit [244362] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

Enable HAVE_AVKIT on PLATFORM(IOSMAC)
https://bugs.webkit.org/show_bug.cgi?id=196987

Reviewed by Tim Horton.

  • wtf/Platform.h:
4:07 PM Changeset in webkit [244361] by Chris Dumez
  • 14 edits
    1 add in trunk

URL set by document.open() is not communicated to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=196941
<rdar://problem/49237544>

Reviewed by Geoff Garen.

Source/WebCore:

Notify the FrameLoaderClient whenever an explicit open was done and provide it with
the latest document URL.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didExplicitOpen):

  • loader/FrameLoaderClient.h:

Source/WebKit:

Whenever the UIProcess is notified of an explicit document.open() call, update the
PageLoadState to make sure the URL is up-to-date. Also make sure the page / process
knows it committed a load (i.e. It is no longer showing the initially empty document).

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::didExplicitOpen):

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

(WebKit::WebPageProxy::didExplicitOpenForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidExplicitOpen):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/open-window-then-write-to-it.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm:

(-[OpenWindowThenDocumentOpenUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(TEST):

3:43 PM Changeset in webkit [244360] by Chris Dumez
  • 4 edits
    2 adds in trunk/Source

Show prompt for device orientation access if the client does not implement the corresponding API delegate
https://bugs.webkit.org/show_bug.cgi?id=196971
<rdar://problem/49945840>

Reviewed by Alex Christensen.

Show prompt for device orientation access if the client does not implement the corresponding
API delegate, instead of rejecting access by default.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::shouldAllowDeviceOrientationAndMotionAccess):

  • UIProcess/Cocoa/WKOrientationAccessAlert.h: Added.
  • UIProcess/Cocoa/WKOrientationAccessAlert.mm: Added.

(WebKit::presentOrientationAccessAlert):

  • WebKit.xcodeproj/project.pbxproj:
2:35 PM Changeset in webkit [244359] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Set test conditions closer to conversion redirect in LayoutTests/http/tests/adClickAttribution/send-attribution-conversion-request.html
https://bugs.webkit.org/show_bug.cgi?id=196983
<rdar://problem/49952679>

Unreviewed test gardening.

  • http/tests/adClickAttribution/resources/redirectToConversion.php:
  • http/tests/adClickAttribution/send-attribution-conversion-request.html:
2:28 PM Changeset in webkit [244358] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r238168) Web Inspector: <iframe src=...> request does not show up in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=193505
<rdar://problem/47325957>

Reviewed by Devin Rousso.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._handleFrameWasAdded):
Handle new frames by adding the frame's main resource.

1:52 PM Changeset in webkit [244357] by jonlee@apple.com
  • 5 edits in trunk

[MotionMark] The text "kkkj" is causing Firefox console warning: unreachable code after return statement
https://bugs.webkit.org/show_bug.cgi?id=196814

Reviewed by Wenson Hsieh.

  • MotionMark/resources/extensions.js:

(subtract.subtract.sampleY):
Websites/browserbench.org:

  • MotionMark1.1/resources/extensions.js:

(subtract.subtract.sampleY):

1:39 PM Changeset in webkit [244356] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

REGRESSION(r243557)[ContentChangeObserver] Need to double tap text formatting elements in MS Word web app
https://bugs.webkit.org/show_bug.cgi?id=196975
<rdar://problem/49489849>

Reviewed by Simon Fraser.

This patch ensures that we always proceed with synthetic click on form elements.

Covered by existing tests.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):

1:32 PM Changeset in webkit [244355] by timothy@apple.com
  • 4 edits in trunk/Source

FrameView base background color always starts white.
https://bugs.webkit.org/show_bug.cgi?id=196976

Reviewed by Beth Dakin.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setBaseBackgroundColor): Bail early if the base background
color did not change.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Set m_backgroundColor before calling
WebFrame::createWithCoreMainFrame so the call to create the FrameView
for the empty page in transitionToCommittedForNewPage() gets
the correct color from WebPage.

12:53 PM Changeset in webkit [244354] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'this._contentViewContainer.currentContentView.selectionPathComponents')
https://bugs.webkit.org/show_bug.cgi?id=196936
<rdar://problem/49917789>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WI.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord):
(WI.HeapAllocationsTimelineView.prototype.get navigationItems):
(WI.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
Drive-by: when selecting a record, force it to be visible before selecting it, as otherwise
the selection events won't be fired.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:

(WI.HeapAllocationsTimelineOverviewGraph.prototype.layout):
Drive-by: ensure that clicking on a [S] heap snapshot record icon actually selects the record.

12:48 PM Changeset in webkit [244353] by Devin Rousso
  • 67 edits in trunk

Unprefix -webkit-sticky
https://bugs.webkit.org/show_bug.cgi?id=196962
<rdar://problem/40903458>

Reviewed by Simon Fraser.

Source/WebCore:

Updated existing tests.

This change doesn't modify functionality, only exposing a new unprefixed CSS value.

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator PositionType const):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::convertPositionStyle):

Source/WebInspectorUI:

Replace all -webkit-sticky with sticky.

  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Views/AuditTestCaseContentView.css:

(.content-view-container > .content-view.audit-test-case > header):

  • UserInterface/Views/AuditTestGroupContentView.css:

(.content-view.audit-test-group.contains-test-case > header):

  • UserInterface/Views/ChangesDetailsSidebarPanel.css:

(.changes-panel .resource-section > .header):

  • UserInterface/Views/DetailsSection.css:

(.details-section > .header):

  • UserInterface/Views/NetworkDetailView.css:

(.network-detail .navigation-bar):

  • UserInterface/Views/SettingsTabContentView.css:

(.content-view.settings .navigation-bar):

  • UserInterface/Views/Table.css:

(.table > .header):

LayoutTests:

  • compositing/layer-creation/no-compositing-for-sticky.html:
  • editing/pasteboard/copy-paste-converts-sticky.html:
  • editing/pasteboard/copy-paste-converts-sticky-expected.txt:
  • fast/block/positioning/fixed-container-with-sticky-parent.html:
  • fast/block/sticky-position-containing-block-crash.html:
  • fast/css/sticky/inflow-sticky.html:
  • fast/css/sticky/inline-sticky-abspos-child.html:
  • fast/css/sticky/inline-sticky.html:
  • fast/css/sticky/multiple-layers-sticky-crash.html:
  • fast/css/sticky/parsing-position-sticky-expected.txt:
  • fast/css/sticky/remove-inline-sticky-crash.html:
  • fast/css/sticky/remove-sticky-crash.html:
  • fast/css/sticky/replaced-sticky.html:
  • fast/css/sticky/resources/parsing-position-sticky.js:
  • fast/css/sticky/sticky-as-positioning-container.html:
  • fast/css/sticky/sticky-both-sides.html:
  • fast/css/sticky/sticky-bottom-overflow-padding.html:
  • fast/css/sticky/sticky-left-percentage.html:
  • fast/css/sticky/sticky-left.html:
  • fast/css/sticky/sticky-margins.html:
  • fast/css/sticky/sticky-overflowing.html:
  • fast/css/sticky/sticky-side-margins.html:
  • fast/css/sticky/sticky-stacking-context.html:
  • fast/css/sticky/sticky-stacking-context-expected.html:
  • fast/css/sticky/sticky-table-row-top.html:
  • fast/css/sticky/sticky-table-thead-top.html:
  • fast/css/sticky/sticky-top-margins.html:
  • fast/css/sticky/sticky-top-overflow-container-overflow.html:
  • fast/css/sticky/sticky-top-overflow.html:
  • fast/css/sticky/sticky-top-zoomed.html:
  • fast/css/sticky/sticky-top-zoomed-expected.html:
  • fast/css/sticky/sticky-top.html:
  • fast/css/sticky/sticky-writing-mode-horizontal-bt.html:
  • fast/css/sticky/sticky-writing-mode-vertical-lr.html:
  • fast/css/sticky/sticky-writing-mode-vertical-rl.html:
  • fast/multicol/newmulticol/table-section-crash.html:
  • fast/scrolling/ios/reconcile-layer-position-recursive.html:
  • fast/scrolling/rtl-scrollbars-sticky-document-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-document.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-iframe.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll-2.html:
  • fast/scrolling/rtl-scrollbars-sticky-overflow-scroll.html:
  • fast/scrolling/sticky-to-fixed.html:
  • legacy-animation-engine/fast/multicol/newmulticol/table-section-crash.html:
  • scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
  • svg/text/select-text-inside-non-static-position.html:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset.html:
  • tiled-drawing/scrolling/sticky/sticky-horizontal.html:
  • tiled-drawing/scrolling/sticky/sticky-layers.html:
  • tiled-drawing/scrolling/sticky/sticky-vertical.html:
12:46 PM Changeset in webkit [244352] by rmorisset@apple.com
  • 4 edits in trunk/Source

[WTF] holdLock should be marked WARN_UNUSED_RETURN
https://bugs.webkit.org/show_bug.cgi?id=196922

Reviewed by Keith Miller.

Source/JavaScriptCore:

There was one case where holdLock was used and the result ignored.
From a comment that was deleted in https://bugs.webkit.org/attachment.cgi?id=328438&action=prettypatch, I believe that it is on purpose.
So I brought back a variant of the comment, and made the ignoring of the return explicit.

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::isPagedOut):

Source/WTF:

  • wtf/Locker.h:
12:37 PM Changeset in webkit [244351] by Devin Rousso
  • 2 edits
    3 deletes in trunk/Source/WebInspectorUI

Web Inspector: remove unused WI.DOMTreeDataGrid
https://bugs.webkit.org/show_bug.cgi?id=196958
<rdar://problem/49931383>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DOMTreeDataGrid.css: Removed.
  • UserInterface/Views/DOMTreeDataGrid.js: Removed.
  • UserInterface/Views/DOMTreeDataGridNode.js: Removed.
  • UserInterface/Main.html:
12:02 PM Changeset in webkit [244350] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage: values truncated in Local/Session table
https://bugs.webkit.org/show_bug.cgi?id=178318
<rdar://problem/34998581>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid):
(WI.DataGrid.prototype._copyTextForDataGridNode):

  • UserInterface/Views/TimelineDataGrid.js:

(WI.TimelineDataGrid):
Refactor WI.DataGrid constructor to allow for more optional arguments.
Introduce a new optional argument copyCallback that can be used to override the text that
would be copied for any WI.DataGridNode in any column.

  • UserInterface/Views/DOMStorageContentView.js:

(WI.DOMStorageContentView):
(WI.DOMStorageContentView.prototype.itemAdded):
(WI.DOMStorageContentView.prototype.itemUpdated):
(WI.DOMStorageContentView.prototype._populate):
(WI.DOMStorageContentView.prototype._dataGridCopy): Added.
Save the full non-truncated value as part of the WI.DataGridNode's data. When copying,
use the full non-truncated value instead of what was shown in the DOM.

11:51 AM Changeset in webkit [244349] by don.olmstead@sony.com
  • 7 edits in trunk

[CMake] Set WTF_SCRIPTS_DIR
https://bugs.webkit.org/show_bug.cgi?id=196917

Reviewed by Konstantin Tokarev.

.:

Define WTF_SCRIPTS_DIR in WebKitFS.cmake and use that within the WEBKIT_COMPUTE_SOURCES
macro. This allows it to be overridden by a port such as the AppleWin internal build.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsWinCairo.cmake:
  • Source/cmake/WebKitFS.cmake:
  • Source/cmake/WebKitMacros.cmake:

Source/WTF:

Use WTF_SCRIPTS_DIR for copying the unified sources script.

  • wtf/CMakeLists.txt:
11:32 AM Changeset in webkit [244348] by Kocsen Chung
  • 8 edits
    1 add in tags/Safari-607.2.4.1/Source

Apply patch. rdar://problem/49836497

11:27 AM Changeset in webkit [244347] by Kocsen Chung
  • 7 edits in tags/Safari-607.2.4.1/Source

Versioning.

11:25 AM Changeset in webkit [244346] by wilander@apple.com
  • 2 edits in trunk/LayoutTests

Increase timeout threshold in http/tests/adClickAttribution/send-attribution-conversion-request.html to address flakiness
https://bugs.webkit.org/show_bug.cgi?id=196970
<rdar://problem/49945327>

Unreviewed test gardening.

  • http/tests/adClickAttribution/send-attribution-conversion-request.html:

Increased test timeout from 2 seconds to 4.

11:19 AM Changeset in webkit [244345] by Joseph Pecoraro
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline HAR test after r244294.

  • http/tests/inspector/network/har/har-page-expected.txt:
  • http/tests/inspector/network/har/har-page.html:

Update for stricter SameSite parsing.

11:11 AM Changeset in webkit [244344] by Shawn Roberts
  • 3 edits in trunk/LayoutTests

media/W3C/video/events/event_progress_manual.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=177663

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations: Updating test expectations
11:07 AM Changeset in webkit [244343] by Kocsen Chung
  • 1 copy in tags/Safari-607.2.4.1

New tag.

11:01 AM Changeset in webkit [244342] by Alan Coon
  • 7 edits in tags/Safari-608.1.16.100/Source

Versioning.

10:55 AM Changeset in webkit [244341] by Alan Coon
  • 1 copy in tags/Safari-608.1.16.100

New tag.

10:47 AM Changeset in webkit [244340] by Alan Coon
  • 7 edits in tags/Safari-608.1.16.200/Source

Versioning.

10:45 AM Changeset in webkit [244339] by Alan Coon
  • 1 delete in tags/Safari-608.1.16.1.200

Delete tag.

10:44 AM Changeset in webkit [244338] by Alan Coon
  • 1 copy in tags/Safari-608.1.16.200

New tag.

10:41 AM Changeset in webkit [244337] by Alan Coon
  • 1 copy in tags/Safari-608.1.16.1.200

New tag.

10:40 AM Changeset in webkit [244336] by Alan Coon
  • 1 delete in tags/Safari-608.1.16.200

Delete tag.

10:36 AM Changeset in webkit [244335] by Alan Coon
  • 1 copy in tags/Safari-608.1.16.200

New tag.

10:18 AM Changeset in webkit [244334] by Kocsen Chung
  • 7 edits in branches/safari-607-branch/Source

Versioning.

9:46 AM Changeset in webkit [244333] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the build with recent SDKs.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(WebKit::WKWebViewState::store):

9:46 AM Changeset in webkit [244332] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Correct a typo in bug URL.
9:28 AM Changeset in webkit [244331] by commit-queue@webkit.org
  • 14 edits
    1 delete in trunk

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

Causing all WK2 Debug builds to exit early after Assertion
failures. (Requested by ShawnRoberts on #webkit).

Reverted changeset:

"URL set by document.open() is not communicated to the
UIProcess"
https://bugs.webkit.org/show_bug.cgi?id=196941
https://trac.webkit.org/changeset/244321

8:58 AM Changeset in webkit [244330] by caitp@igalia.com
  • 8 edits in trunk

[JSC] Filter DontEnum properties in ProxyObject::getOwnPropertyNames()
https://bugs.webkit.org/show_bug.cgi?id=176810

Reviewed by Saam Barati.

JSTests:

Add tests for the DontEnum filtering, and variations of other tests
take the DontEnum-filtering path.

  • stress/proxy-own-keys.js:

(i.catch):
(set assert):
(set add):
(let.set new):
(get let):

Source/JavaScriptCore:

This adds conditional logic following the invariant checks, to perform
filtering in common uses of getOwnPropertyNames.

While this would ideally only be done in JSPropertyNameEnumerator, adding
the filtering to ProxyObject::performGetOwnPropertyNames maintains the
invariant that the EnumerationMode is properly followed.

This was originally rolled out in r244020, as DontEnum filtering code
in ObjectConstructor.cpp's ownPropertyKeys() had not been removed. It's
now redundant due to being handled in ProxyObject::getOwnPropertyNames().

  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::reset):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performGetOwnPropertyNames):

Source/WebCore:

Previously, there was a comment here indicating uncertainty of whether it
was necessary to filter DontEnum properties explicitly or not. It turns
out that it was necessary in the case of JSC ProxyObjects.

This patch adds DontEnum filtering for ProxyObjects, however we continue
to explicitly filter them in JSDOMConvertRecord, which needs to use the
property descriptor after filtering. This change prevents observably
fetching the property descriptor twice per property.

  • bindings/js/JSDOMConvertRecord.h:
8:16 AM EnvironmentVariables edited by Philippe Normand
(diff)
2:41 AM Changeset in webkit [244329] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK gardening

  • platform/gtk/TestExpectations:

media/media-controls-accessibility.html times out since r244182.

1:03 AM Changeset in webkit [244328] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[iOS] Redundant pointer events causes material design buttons to flush twice
https://bugs.webkit.org/show_bug.cgi?id=196914
<rdar://problem/49571860>

Reviewed by Dean Jackson.

Source/WebCore:

Test: pointerevents/ios/pointer-event-order.html

Do not dispatch pointer events for mouse events on iOS since we're already dispatching them when processing touch events.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):

LayoutTests:

Add a new test that listens to all pointer event types as well as click, which forces the dispatch of compatibility mouse events
along with the click which would trigger duplicated pointer events prior to the source changes.

To ensure the new test added runs smoothly with a preceeding test that also uses ui.tap(), we add a delay to guarantee that no
double-taps are seen rather two successive single taps.

  • pointerevents/ios/pointer-event-order-expected.txt: Added.
  • pointerevents/ios/pointer-event-order.html: Added.
  • pointerevents/utils.js:

(const.ui.new.UIController.prototype.tap):

Note: See TracTimeline for information about the timeline view.