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

Timeline



Feb 28, 2018:

11:35 PM Changeset in webkit [229125] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[ARM] Fix compile error in debug builds by invoking unpoisoned().

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-02-28
Reviewed by Mark Lam.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): Fix compile error.
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress()): Ditto.
(JSC::MacroAssemblerCodePtr::dataLocation()): Ditto.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::dumpDisjunction): use %zu for printf'ing size_t.

10:47 PM Changeset in webkit [229124] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Push WTF_PLATFORM_IOS down into preprocessor.pm instead of trying to determine it inside
https://bugs.webkit.org/show_bug.cgi?id=183193

Reviewed by Andy Estes.

  • DerivedSources.make:
  • bindings/scripts/preprocessor.pm:

(applyPreprocessor):
Instead of trying to discern WTF_PLATFORM_IOS inside preprocessor.pm,
push it down from DerivedSources.make. Also clean up DerivedSources.make
a tiny bit by adding a variable, FEATURE_AND_PLATFORM_DEFINES, which
contains both FEATURE_DEFINES and WTF_PLATFORM macros if needed.

7:55 PM Changeset in webkit [229123] by jmarcell@apple.com
  • 2 edits in branches/safari-605.1.33.0-branch/Source/JavaScriptCore

Cherry-pick r229109. rdar://problem/38005929

7:51 PM Changeset in webkit [229122] by jmarcell@apple.com
  • 2 edits in tags/Safari-605.1.32.0.1/Source/JavaScriptCore

Cherry-pick r229109. rdar://problem/38005929

7:49 PM Changeset in webkit [229121] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.32.0.1/Source

Versioning.

7:40 PM Changeset in webkit [229120] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.32.0.1

New tag.

6:18 PM Changeset in webkit [229119] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

Make LayoutTests wait_for_state fail after a given period of time
https://bugs.webkit.org/show_bug.cgi?id=183039

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-28
Reviewed by Chris Dumez.

This will allow further investigating why some tests are timing out.

  • web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js:

(wait_for_state):

6:15 PM Changeset in webkit [229118] by n_wang@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test accessibility/mac/accessibility-make-first-responder.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=183232

Reviewed by Chris Fleizach.

The test is flaky because that the UIProcess might have received the IPC message
to set the first responder after we check the current state. Added a delay
in the test to fix that.

  • accessibility/mac/accessibility-make-first-responder.html:
6:12 PM Changeset in webkit [229117] by BJ Burg
  • 4 edits in trunk/Source/WebKit

[Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog
https://bugs.webkit.org/show_bug.cgi?id=182660
<rdar://problem/37408183>

Reviewed by Tim Horton and Carlos Garcia Campos.

Add another delegate method to ask what type of dialog is being shown.
This is used to implement §18.4 Step 5, where sending text to a dialog
without a prompt will return several different kinds of errors.

No new tests, covered by web platform tests once Safari side has landed.

  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers.
  • UIProcess/Cocoa/AutomationSessionClient.h:
  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::AutomationSessionClient):
(WebKit::toImpl):
(WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage):
If there is no current dialog to be checked, the client can return the 'None'
type. This gets converted into a std::nullopt and causes a command error later.

6:09 PM Changeset in webkit [229116] by Jonathan Bedard
  • 4 edits in trunk/Tools

[webkitpy] Remove concept of 'future' versions (Follow-up fix 2)
https://bugs.webkit.org/show_bug.cgi?id=183184
<rdar://problem/37958594>

Reviewed by Aakash Jain.

Unlisted Apple versions can't run webkitpy tests because they don't
have specified port names.

  • Scripts/webkitpy/port/apple.py:

(ApplePort.determine_full_port_name): Return valid port name for unnamed
versions.

  • Scripts/webkitpy/port/base.py:

(Port.version_name): Check both public and internal version mapping
when returning a version name.

  • Scripts/webkitpy/port/mac.py:

(MacPort.init): If no os version is defined, use the current version.

4:54 PM Changeset in webkit [229115] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Remove assertion from ResourceLoadStatisticsClassifier::calculateResourcePrevalence() which causes crashes when domains are explicitly set as prevalent without the associated statistics
https://bugs.webkit.org/show_bug.cgi?id=183233

Unreviewed removal of an assertion that's causing layout test crashes.

  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:

(WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):

Removed ASSERT(currentPrevalence == Low).

4:37 PM Changeset in webkit [229114] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.1-branch/Source

Versioning.

4:33 PM Changeset in webkit [229113] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.0-branch/Source

Versioning.

4:30 PM Changeset in webkit [229112] by n_wang@apple.com
  • 17 edits
    5 adds in trunk

AX: AOM: Dispatch accessiblesetvalue event
https://bugs.webkit.org/show_bug.cgi?id=183021
<rdar://problem/37764242>

Reviewed by Chris Fleizach.

Source/WebCore:

Accessibility events.
Spec: https://wicg.github.io/aom/spec/phase2.html

Added a new event type AccessibleSetValueEvent.

Test: accessibility/mac/AOM-event-accessiblesetvalue.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityAllInOne.cpp:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent):
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::setValue):

  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::setValue):

  • accessibility/AccessibleSetValueEvent.cpp: Added.

(WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):

  • accessibility/AccessibleSetValueEvent.h: Added.

(WebCore::AccessibleSetValueEvent::create):
(WebCore::AccessibleSetValueEvent::value const):

  • accessibility/AccessibleSetValueEvent.idl: Added.
  • dom/Element.idl:
  • dom/EventNames.h:
  • dom/EventNames.in:

LayoutTests:

  • accessibility/mac/AOM-event-accessiblesetvalue-expected.txt: Added.
  • accessibility/mac/AOM-event-accessiblesetvalue.html: Added.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
4:12 PM Changeset in webkit [229111] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.33.0.1

Tag Safari-605.1.33.0.1.

4:11 PM Changeset in webkit [229110] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.33.1.1

Tag Safari-605.1.33.1.1.

4:00 PM Changeset in webkit [229109] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

GC should sweep code block before deleting
https://bugs.webkit.org/show_bug.cgi?id=183229
<rdar://problem/32767615>

Reviewed by Saam Barati, Fil Pizlo.

Stub routines shouldn't get deleted before codeblocks have been
swept, otherwise there's a small race window where the codeblock
thinks it's still reachable.

  • heap/Heap.cpp:

(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):

3:58 PM Changeset in webkit [229108] by Chris Dumez
  • 4 edits
    8 adds in trunk

html/browsers/browsing-the-web/navigating-across-documents/006.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183168
<rdar://problem/37951341>

Reviewed by Alex Christensen.

Source/WebCore:

The test has an anchor element with both a 'click' event handler which submits a form
and an href attribute. When clicking the link, as per specification, things happen in
this order:

  1. We fire the click event at the anchor, which will execute the event handler and submit the form. Submitting the form *schedules* a navigation to 'click.html'.
  2. We execute the anchor activation code which *navigates* to 'href.html'. The navigation to 'href' is supposed to cancel the pending navigation to 'click.html' and we should navigate to 'href.html', which is what the test asserts.

The issue for us is that we do not cancel pending navigations until after the navigation
policy decision is made, when the provisional loads actually starts, in FrameLoader::provisionalLoadStarted().
Because the policy decision for the navigation can now be made asynchronously, the NavigationScheduler
timer can now fire while the decision is made and we'll submit the form, thus navigating to
'click.html'.

To address the issue, we now cancel any pending navigations in FrameLoader::loadWithDocumentLoader(),
*before* doing the policy check for the navigation.

Test: http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader):

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006-expected.txt: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href.html: Added.
3:23 PM Changeset in webkit [229107] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

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

Patch by Alicia Boya García <aboya@igalia.com> on 2018-02-28

  • platform/gtk/TestExpectations:
2:25 PM Changeset in webkit [229106] by wilander@apple.com
  • 27 edits
    2 adds in trunk

Add a second tier of prevalence to facilitate telemetry on very prevalent domains
https://bugs.webkit.org/show_bug.cgi?id=183218
<rdar://problem/37992388>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode const):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):

Handling of the new boolean field isVeryPrevalentResource.

  • loader/ResourceLoadStatistics.h:

Added the new boolean field isVeryPrevalentResource.

Source/WebKit:

  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:

(WebKit::vectorLength):

New convenience function.

(WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence):

Renamed from ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics().
Now returns a value from the enum ResourceLoadPrevalence.

(WebKit::ResourceLoadStatisticsClassifier::classifyWithVectorThreshold):

Now uses the new vectorLength() convenience function.

(WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): Deleted.

Renamed to ResourceLoadStatisticsClassifier::calculateResourcePrevalence().

  • Platform/classifier/ResourceLoadStatisticsClassifier.h:

Added enum ResourceLoadPrevalence.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):

Handling of the new boolean field isVeryPrevalentResource.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsVeryPrevalentResource):
(WKWebsiteDataStoreIsStatisticsVeryPrevalentResource):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):

All of these are for handling of the two-tier classification.
Also bumped the statisticsModelVersion to 12.

  • UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

Added two new testRunner functions:

  • setStatisticsVeryPrevalentResource()
  • isStatisticsVeryPrevalentResource()
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsVeryPrevalentResource):
(WTR::TestRunner::isStatisticsVeryPrevalentResource):

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

(WTR::TestController::setStatisticsVeryPrevalentResource):
(WTR::TestController::isStatisticsVeryPrevalentResource):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html:
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html:
  • http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html: Added.
  • platform/wk2/TestExpectations:

New test marked as [ Pass ].

2:01 PM Changeset in webkit [229105] by jmarcell@apple.com
  • 7 edits
    5 adds in branches/safari-605.1.33.1-branch

Cherry-pick r229086. rdar://problem/37991718

2:01 PM Changeset in webkit [229104] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.1-branch/Source

Cherry-pick r229028. rdar://problem/37992270

1:57 PM Changeset in webkit [229103] by jmarcell@apple.com
  • 7 edits
    5 adds in branches/safari-605.1.33.0-branch

Cherry-pick r229086. rdar://problem/37991818

1:57 PM Changeset in webkit [229102] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.0-branch/Source

Cherry-pick r229028. rdar://problem/37947990

1:54 PM Changeset in webkit [229101] by aakash_jain@apple.com
  • 2 edits in trunk/Websites/perf.webkit.org

Rename samplePendingBuild to samplePendingBuildRequest
https://bugs.webkit.org/show_bug.cgi?id=183171

Reviewed by Ryosuke Niwa.

  • unit-tests/buildbot-syncer-tests.js:

(samplePendingBuildRequests): Renamed from samplePendingBuild.
(samplePendingBuildRequestDeprecated): Renamed from samplePendingBuildDeprecated.
(samplePendingBuild): Deleted.
(samplePendingBuildDeprecated): Deleted.

11:53 AM Changeset in webkit [229100] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Reduce use of NetworkingContext in WebKit
https://bugs.webkit.org/show_bug.cgi?id=183213

Patch by Alex Christensen <achristensen@webkit.org> on 2018-02-28
Reviewed by Brady Eidson.

Source/WebCore:

NetworkingContext is intended to be used only with ResourceHandle, which is now only used in WebKitLegacy.
Now that we don't use ResourceHandle in the WebProcess, everything that was done through the NetworkingContext
can now be done a cleaner way with no change in behavior.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLink):

  • loader/LoaderStrategy.h:
  • platform/network/ProxyServer.h:
  • platform/network/cf/ProxyServerCFNet.cpp:

(WebCore::proxyServersForURL):

  • platform/network/curl/ProxyServerCurl.cpp:

(WebCore::proxyServersForURL):

  • platform/network/soup/ProxyServerSoup.cpp:

(WebCore::proxyServersForURL):

Source/WebKit:

  • NetworkProcess/RemoteNetworkingContext.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::proxiesForURL):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
  • WebProcess/WebPage/WebFrame.cpp:

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResourceSynchronously):
(WebResourceLoadScheduler::preconnectTo):

  • WebCoreSupport/WebResourceLoadScheduler.h:

Source/WebKitLegacy/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::getProxy):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView getVariable:forURL:value:length:]):

Source/WebKitLegacy/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::getValueForURL):

11:34 AM Changeset in webkit [229099] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitpy] Remove concept of 'future' versions (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=183184
<rdar://problem/37958594>

Reviewed by David Kilzer.

The factory also relies on future in a non-obvious way.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.os_version_name): Check both public and internal version mapping
when returning a version name.

  • Scripts/webkitpy/common/system/platforminfo_mock.py:

(MockPlatformInfo.os_version_name): Ditto.

11:14 AM Changeset in webkit [229098] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Disable three resourceLoadStatistics tests on iOS Simulator Debug because they frequently time out.
https://bugs.webkit.org/show_bug.cgi?id=183216

Unreviewed test gardening.

  • platform/ios/TestExpectations:
10:25 AM Changeset in webkit [229097] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Unreviewed WPE fixup after r229080.

Add empty definitions for two AccessibilityUIElement methods,
avoiding undefined symbols in the WKTR injected bundle.

  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:

(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

10:15 AM Changeset in webkit [229096] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.4.4/Source

Versioning.

10:08 AM Changeset in webkit [229095] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=182983

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
10:01 AM WebKitGTK/Gardening/Calendar edited by aboya@igalia.com
(diff)
9:47 AM Changeset in webkit [229094] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.4.4

New tag.

9:17 AM Changeset in webkit [229093] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Remove network access from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=183192
<rdar://problem/35369115>

Reviewed by Alex Christensen.

Remove the 'system-network', 'allow-network-common', and 'network-client' access from the WebContent process.
That's why we have a Network Process!

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
8:38 AM Changeset in webkit [229092] by Yusuke Suzuki
  • 3 edits
    1 add in trunk

JSC crash with import("")
https://bugs.webkit.org/show_bug.cgi?id=183175

Reviewed by Saam Barati.

JSTests:

  • stress/import-with-empty-string.js: Added.

Source/JavaScriptCore:

Add file existence and file type check for module loader implementation in jsc.cpp.
This is not safe for TOCTOU, but it is OK since this functionality is used for the
JSC shell (jsc.cpp): testing purpose.

  • jsc.cpp:

(fillBufferWithContentsOfFile):
(fetchModuleFromLocalFileSystem):

8:31 AM Changeset in webkit [229091] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Remove RenderElement::s_affectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183187
<rdar://problem/37961079>

Reviewed by Antti Koivisto.

Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.

Covered by existing tests.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):

  • rendering/RenderElement.h:
7:50 AM Changeset in webkit [229090] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Filter attribute selectors with selector filter
https://bugs.webkit.org/show_bug.cgi?id=183200

Reviewed by Zalan Bujtas.

Currently selector filtering is done based on tags, classes and ids. We should include attributes too.

This patch adds filtering based on attribute name (but not content).

  • css/SelectorFilter.cpp:

(WebCore::isExcludedAttribute):

Ignore id, class and style attributes. First two are already handled and the last is common but is rarely
used in selectors.

(WebCore::collectElementIdentifierHashes):

Collect attributes.
Remove the unnecessary StyledElement casting.

(WebCore::collectSimpleSelectorHash):

Collect attribute selectors.

(WebCore::chooseSelectorHashesForFilter):

Pick attributes with high priority for the filter as it is likely a good signal.

12:45 AM Changeset in webkit [229089] by svillar@igalia.com
  • 6 edits
    1 delete in trunk/Source/WebCore

[WebVR] Convert VRPlatformDisplayInfo into a class
https://bugs.webkit.org/show_bug.cgi?id=183162

Reviewed by Žan Doberšek.

In preparation for further changes we're transforming the
VRPlatformDisplayInfo into a class. All the members are now private
and the class provides the needed getters/setters.

Apart from that VRDisplayCapabilityFlags is now just an unsigned and
the different flags are defined in VRDisplayCapabilityFlag enum.
Another cleanup was the removal of VRDisplayCapabilities.cpp as
everything can be implemented in the header.

  • Modules/webvr/VRDisplay.cpp:

(WebCore::VRDisplay::VRDisplay):
(WebCore::VRDisplay::isConnected const):
(WebCore::VRDisplay::stageParameters const):

  • Modules/webvr/VRDisplayCapabilities.cpp: Removed.
  • Modules/webvr/VRDisplayCapabilities.h:

(WebCore::VRDisplayCapabilities::hasPosition const):
(WebCore::VRDisplayCapabilities::hasOrientation const):
(WebCore::VRDisplayCapabilities::hasExternalDisplay const):
(WebCore::VRDisplayCapabilities::canPresent const):
(WebCore::VRDisplayCapabilities::maxLayer const):
(WebCore::VRDisplayCapabilities::VRDisplayCapabilities):

  • Sources.txt:
  • platform/vr/VRPlatformDisplay.h:

(WebCore::VRPlatformDisplayInfo::displayName const):
(WebCore::VRPlatformDisplayInfo::setDisplayName):
(WebCore::VRPlatformDisplayInfo::isConnected const):
(WebCore::VRPlatformDisplayInfo::setIsConnected):
(WebCore::VRPlatformDisplayInfo::isMounted const):
(WebCore::VRPlatformDisplayInfo::setIsMounted):
(WebCore::VRPlatformDisplayInfo::capabilityFlags const):
(WebCore::VRPlatformDisplayInfo::setCapabilityFlags):
(WebCore::VRPlatformDisplayInfo::displayIdentifier const):
(WebCore::VRPlatformDisplayInfo::setDisplayIdentifier):
(WebCore::VRPlatformDisplayInfo::eyeTranslation const):
(WebCore::VRPlatformDisplayInfo::setEyeTranslation):
(WebCore::VRPlatformDisplayInfo::eyeFieldOfView const):
(WebCore::VRPlatformDisplayInfo::setEyeFieldOfView):
(WebCore::VRPlatformDisplayInfo::renderSize const):
(WebCore::VRPlatformDisplayInfo::setRenderSize):
(WebCore::VRPlatformDisplayInfo::setPlayAreaBounds):
(WebCore::VRPlatformDisplayInfo::playAreaBounds const):
(WebCore::VRPlatformDisplayInfo::setSittingToStandingTransform):
(WebCore::VRPlatformDisplayInfo::sittingToStandingTransform const):

  • platform/vr/openvr/VRPlatformDisplayOpenVR.cpp:

(WebCore::VRPlatformDisplayOpenVR::VRPlatformDisplayOpenVR):
(WebCore::VRPlatformDisplayOpenVR::updateEyeParameters):
(WebCore::VRPlatformDisplayOpenVR::updateStageParameters):

Feb 27, 2018:

11:49 PM Changeset in webkit [229088] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

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

This patch causes crashes on two SVG tests (Requested by fredw
on #webkit).

Reverted changeset:

"Relayout frames after AsyncFrameScrolling or FrameFlattening
option is changed"
https://bugs.webkit.org/show_bug.cgi?id=183081
https://trac.webkit.org/changeset/229060

9:41 PM Changeset in webkit [229087] by keith_miller@apple.com
  • 24 edits in trunk/Source/JavaScriptCore

Replace TrustedImmPtr(0) with TrustedImmPtr(nullptr)
https://bugs.webkit.org/show_bug.cgi?id=183195

Reviewed by Mark Lam.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranchPtr):
(JSC::MacroAssembler::patchableBranchPtrWithPatch):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchPtrWithPatch):
(JSC::MacroAssemblerARM::storePtrWithPatch):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::branchPtrWithPatch):
(JSC::MacroAssemblerARM64::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARM64::storePtrWithPatch):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchPtrWithPatch):
(JSC::MacroAssemblerARMv7::patchableBranchPtr):
(JSC::MacroAssemblerARMv7::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARMv7::storePtrWithPatch):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchPtrWithPatch):
(JSC::MacroAssemblerMIPS::storePtrWithPatch):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::branchPtrWithPatch):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::tailRecursiveCall):
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
(JSC::MacroAssemblerX86_64::branchPtrWithPatch):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::TrustedImmPtr):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::debugCall):
(JSC::AssemblyHelpers::sanitizeStackInline):

  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/ScratchRegisterAllocator.cpp:

(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBufferForCall):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
(JSC::Yarr::YarrGenerator::generate):

6:28 PM Changeset in webkit [229086] by commit-queue@webkit.org
  • 7 edits
    5 adds in trunk

Do not trigger a service worker match in case of document redirection if it will be already served by AppCache
https://bugs.webkit.org/show_bug.cgi?id=183185
<rdar://problem/37693796>

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-27
Reviewed by Chris Dumez.

Source/WebCore:

Disabling service worker matching in case there is a substitute data.
Otherwise there is a risk for a double load, substitute data first and the new load
triggered if matching a new registration.
A future fix should first do service worker registration matching and if there is no registration query appcache.

Test: http/tests/appcache/main-resource-redirect-with-sw.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::redirectReceived):

LayoutTests:

  • http/tests/appcache/main-resource-redirect-with-sw-expected.txt: Added.
  • http/tests/appcache/main-resource-redirect-with-sw.html: Added.
  • http/tests/appcache/resources/main-resource-redirect-with-sw.manifest: Added.
  • http/tests/appcache/resources/register-resources-service-worker.html: Added.
  • http/tests/appcache/service-worker-proxy.js: Added.
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
6:05 PM Changeset in webkit [229085] by Jonathan Bedard
  • 8 edits in trunk/Tools

Remove concept of 'future'
https://bugs.webkit.org/show_bug.cgi?id=183184
<rdar://problem/37958594>

Reviewed by Aakash Jain.

Remove concept of 'future' from expectations and instead
use a system of inheritance centered around the current version
of an OS for Mac and iOS.

Inheritance works like so:

| ....
V Future

High Sierra (mac)

mac-sierra
| mac-elcapitan
| ....

This does not change expectation inheritance for any currently running
configurations, it generalizes the logic already used.

  • Scripts/webkitpy/common/version_name_map.py:

(VersionNameMap.init): Remove all future versions.
(VersionNameMap.mapping_for_platform): Return empty dicts instead of
asserting.

  • Scripts/webkitpy/port/apple.py:

(ApplePort):
(ApplePort._allowed_versions): Return all available versions.
(ApplePort._generate_all_test_configurations): Instead of picking from a set
of allowed versions, assume that every specified version is allowed.
(ApplePort._port_name_with_version): Deleted.

  • Scripts/webkitpy/port/darwin.py: Add CURRENT_VERSION overridden by subclasses.

(DarwinPort):

  • Scripts/webkitpy/port/ios.py:

(IOSPort):
(IOSPort.default_baseline_search_path): Use system of inheritance centered around
the current version.

  • Scripts/webkitpy/port/mac.py:

(MacPort):
(MacPort.init): Use current version by default.
(MacPort.default_baseline_search_path): Use system of inheritance centered around
the current version.
(MacPort.configuration_specifier_macros): Use the same set of version names
supported in default_baseline_search_path.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest.test_versions): Remove 'future' tests.

5:32 PM Changeset in webkit [229084] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183094

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:24 PM Changeset in webkit [229083] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/dom/Window/window-focus-self.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183164

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:46 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
3:46 PM Changeset in webkit [229082] by Michael Catanzaro
  • 5 edits in trunk

Unreviewed GTK test gardening

Tools:

  • TestWebKitAPI/glib/TestExpectations.json:

LayoutTests:

3:45 PM Changeset in webkit [229081] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Ensure target triple is propagated correctly to DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=183189
<rdar://problem/37959694>

Reviewed by Dan Bernstein.

If we don't propagate the target triple, we can sometimes build with
the wrong options enabled.

  • Configurations/Base.xcconfig:

Mentioning LLVM_TARGET_TRIPLE_SUFFIX here is required to get it to be available to scripts.

  • DerivedSources.make:

Propagate the target triple into our compiler invocations.

2:57 PM Changeset in webkit [229080] by commit-queue@webkit.org
  • 14 edits
    5 adds in trunk

AX: Spell check and style attributes should be optional when fetching attributed string
https://bugs.webkit.org/show_bug.cgi?id=160744

Patch by Doug Russell <doug@getitdownonpaper.com> on 2018-02-27
Reviewed by Chris Fleizach.

The overhead of fetching a spell checked attributed string via AX API is substantial.
In some cases on the order of 7/8 of the total time spent fetching the string.

This change introduces the new attribute AXAttributedStringForTextMarkerRangeWithOptions which accepts an NSDictionary as it's parameter with keys "AXTextMarkerRange" (AXTextMarkerRangeRef) and "AXSpellCheck" (NSNumber(BOOL)).

AXAttributedStringForTextMarkerRange will remain unchanged.

Source/WebCore:

Tests: accessibility/mac/attributed-string/attributed-string-for-range-with-options.html

accessibility/mac/attributed-string/attributed-string-for-range.html

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Deleted.

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(attributedStringForTextMarkerRangeCallback):
(attributedStringForTextMarkerRangeWithOptionsCallback):
(AccessibilityUIElement::attributedStringForTextMarkerRange):
(AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::attributedStringForTextMarkerRange):
(AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(createJSStringRef):
(AccessibilityUIElement::attributedStringForTextMarkerRange):
(AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::createJSStringRef):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRange):
(WTR::AccessibilityUIElement::attributedStringForTextMarkerRangeWithOptions):

LayoutTests:

  • accessibility/mac/attributed-string: Added.
  • accessibility/mac/attributed-string/attributed-string-for-range-expected.txt: Added.
  • accessibility/mac/attributed-string/attributed-string-for-range-with-options-expected.txt: Added.
  • accessibility/mac/attributed-string/attributed-string-for-range-with-options.html: Added.
  • accessibility/mac/attributed-string/attributed-string-for-range.html: Added.
  • accessibility/mac/bounds-for-range-expected.txt:
2:35 PM Changeset in webkit [229079] by dbates@webkit.org
  • 7 edits
    2 moves
    1 add
    1 delete in trunk

Standardize terminology for marked text
https://bugs.webkit.org/show_bug.cgi?id=180999

Reviewed by Zalan Bujtas.

The name MarkerSubrange is a misnomer for a data structure that associates a text subrange with a type
and optional document marker. In particular, a MarkerSubrange may not always correspond to a document
marker. For instance, selected text is represented using a MarkerSubrange that does not have a
corresponding document marker. Let's standardize on the phrase "marked text" as the canonical way to
describe these tagged text subranges.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::localSelectionRect const):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText):
(WebCore::createMarkedTextFromSelectionInBox):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintPlatformDocumentMarkers):
(WebCore::InlineTextBox::paintPlatformDocumentMarker):
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const):
(WebCore::InlineTextBox::resolveStyleForMarkedText):
(WebCore::InlineTextBox::subdivideAndResolveStyle):
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts):
(WebCore::InlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers):
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::MarkerSubrangeStyle::areBackgroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areForegroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areDecorationMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkerSubrange::StyledMarkerSubrange): Deleted.
(WebCore::createMarkerSubrangeFromSelectionInBox): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkerSubrange const): Deleted.
(WebCore::InlineTextBox::resolveStyleForSubrange): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentSubranges): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDraggedContent): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers): Deleted.
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeBackground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeForeground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeDecoration): Deleted.

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.

  • rendering/MarkedText.cpp: Renamed from Source/WebCore/rendering/MarkerSubrange.cpp.

(WebCore::subdivide):

  • rendering/MarkedText.h: Renamed from Source/WebCore/rendering/MarkerSubrange.h.

(WebCore::MarkedText::MarkedText):
(WebCore::MarkedText::isEmpty const):
(WebCore::MarkedText::operator!= const):
(WebCore::MarkedText::operator== const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp: Added.

(WebCore::operator<<):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Removed.
2:23 PM Changeset in webkit [229078] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

2:21 PM Changeset in webkit [229077] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.0-branch/Source

Versioning.

2:19 PM Changeset in webkit [229076] by jmarcell@apple.com
  • 7 edits in branches/safari-605.1.33.1-branch/Source

Versioning.

2:12 PM Changeset in webkit [229075] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[Win64] JSCOnly compile error using VS2017 and cmake
https://bugs.webkit.org/show_bug.cgi?id=183176

Patch by Karlen Simonyan <szkarlen@gmail.com> on 2018-02-27
Reviewed by Alex Christensen.

  • wtf/PlatformJSCOnly.cmake:
2:12 PM Changeset in webkit [229074] by jmarcell@apple.com
  • 1 copy in branches/safari-605.1.33.1-branch

New branch.

2:12 PM Changeset in webkit [229073] by jmarcell@apple.com
  • 1 copy in branches/safari-605.1.33.0-branch

New branch.

2:11 PM Changeset in webkit [229072] by jmarcell@apple.com
  • 1 edit in branches/safari-605-branch/Source/WebCore/dom/EventTarget.cpp

Revert r229068. rdar://problem/37156477

1:47 PM Changeset in webkit [229071] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, roll out r228430.

Roll out r228430 now that it is no longer needed after r228852.

No new tests, initial fix is still covered by WebKit.RespondToPolicyForNavigationResponseAsynchronously
API test.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::schedule):

1:08 PM Changeset in webkit [229070] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, marking a number of Web Animations WPT tests non-flaky.

1:05 PM Changeset in webkit [229069] by graouts@webkit.org
  • 19 edits in trunk

[Web Animations] Correct implementation of pending tasks and promises
https://bugs.webkit.org/show_bug.cgi?id=183161

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with progressions (+32 WPT PASS).

  • web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/finish-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/finished-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/onfinish-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/pause-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/pending-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/startTime-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/canceling-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/play-states-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/reversing-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:

Source/WebCore:

We had an incorrect implementation of the spec due to two misinterpretations.

The first one is about pending tasks (play and pause) which the spec says should
be performed by "scheduling a task". In WebCore, this means using postTask() on a
ScriptExecutionContext, such as Document. One of the big practical changes is that
calling play() on an animation correctly sets its startTime to null (unresolved)
immediately after the call to play() returns before setting it to a resolved value
when the task is performed asynchronously. As a result, the playState is now always
accurate.

The second one is about promises where new promises need to be created in certain
situations called out by the spec. We used to call clear() on them, but this merely
resets the fulfillment or rejection state of the promise, while the spec requires
a different object to be returned for the promise. We now create our promises using
makeUniqueRef<> when new promise objects are expected to be created.

This patch also corrects a few smaller bugs and spec compliant issues, called out
below, related to pending tasks and promises uncovered while looking at relevant
WPT tests.

  • animation/DocumentTimeline.h: Expose the Document used to create this timeline such

that it may be used by WebAnimation objects registered for this timeline when scheduling
a task is required via postTask().

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::setCurrentTime):
(WebCore::WebAnimation::cancel): Ensure the finished promise has not already been fulfilled
before rejecting it. While the spec does not specifically call this out, a promise may not
be rejected after being fulfilled, and we would hit an ASSERT if we didn't also check that
it was in the correct pending state before attemping to reject it.
(WebCore::WebAnimation::resetPendingTasks):
(WebCore::WebAnimation::finish):
(WebCore::WebAnimation::updateFinishedState):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::play): We used to only check for a pending pause task before canceling
that task, but the spec says to check for either a pending pause or play task (ie. pending())
and to cancel whichever is scheduled.
(WebCore::WebAnimation::runPendingPlayTask): We were missing an assertion called out by the
spec when running a pending task.
(WebCore::WebAnimation::pause):
(WebCore::WebAnimation::runPendingPauseTask):
(WebCore::WebAnimation::updatePendingTasks): We now use postTask() on the animation's associated
timeline's document to schedule pending tasks for which the criteria to run are met, ie. there
is an associated timeline.

  • animation/WebAnimation.h:
12:33 PM Changeset in webkit [229068] by jmarcell@apple.com
  • 1 edit in branches/safari-605-branch/Source/WebCore/dom/EventTarget.cpp

Apply patch. rdar://problem/37156477

12:14 PM Changeset in webkit [229067] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Make it possible to set suggestions in extra zoom mode.
https://bugs.webkit.org/show_bug.cgi?id=183154
<rdar://problem/35227450>

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2018-02-27
Reviewed by Tim Horton.

In extra zoom mode, when presenting WKFocusedFormControlViewController, make it the inputDelegate for
WKContentView. This is needed to ensure we can capture/cache the suggestions when _WKInputSession's
suggestions is updated. Later, when we present WKTextInputViewController, we can pass the cached
suggestions.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentFocusedFormControlViewController:]): Set _focusedFormControlViewController as

the inputDelegate for WKContentView.

(-[WKContentView dismissFocusedFormControlViewController:]): Null the inputDelegate on dismissal.
(-[WKContentView presentTextInputViewController:]): Pass the suggestions from WKFocusedFormControlViewController to

WKTextInputViewController when the latter is presented.

(-[WKContentView textInputController:didCommitText:]): Call the new delegate method textInputController:didCommitText:withSuggestion:.
(-[WKContentView textInputController:didCommitText:withSuggestion:]): When a suggestions is selected, insert the

suggestion which will notify the client.

(-[WKContentView focusedFormControllerDidUpdateSuggestions:]): Called when the suggestion is updated after the input

view controller is presented.

10:21 AM Changeset in webkit [229066] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk/Source

Stop using deprecated CADisplay SPI
https://bugs.webkit.org/show_bug.cgi?id=183150
<rdar://problem/37918297>

Reviewed by Simon Fraser.

  • pal/spi/cocoa/QuartzCoreSPI.h:

Switch to the more modern way of getting the display name.

  • Platform/spi/ios/FrontBoardServicesSPI.h: Added.
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

  • WebKit.xcodeproj/project.pbxproj:

Switch to the more modern way of getting the display name.

10:04 AM Changeset in webkit [229065] by Ryan Haddad
  • 6 edits
    1 delete in trunk/Source

Unreviewed, rolling out r229055.

Breaks internal builds.

Reverted changeset:

"Stop using deprecated CADisplay SPI"
https://bugs.webkit.org/show_bug.cgi?id=183150
https://trac.webkit.org/changeset/229055

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

webkitpy Bugzilla transactions should retry on URLError
https://bugs.webkit.org/show_bug.cgi?id=183156

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla): Use NetworkTransaction.
(Bugzilla._fetch_bug_page_by_url):
(Bugzilla.bug_id_for_attachment_id):
(Bugzilla.get_bug_id_for_attachment_id):

9:16 AM Changeset in webkit [229063] by Wenson Hsieh
  • 20 edits
    1 add in trunk

[Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior
https://bugs.webkit.org/show_bug.cgi?id=183100
<rdar://problem/37840987>

Reviewed by Tim Horton.

Source/WebCore:

Introduce new customization options to ViewportConfiguration. The first is m_forceHorizontalShrinkToFit, which
(when set to true) forces the viewport to scale using shrink-to-fit heuristics, regardless of whether
"shrink-to-fit=no" is specified via viewport parameters or if content width did not exceed minimum layout size.
The second is m_viewSize, which reflects the true size of the viewport. See WebKit ChangeLog for more details.

Tests: ViewportSizingTests.ForceShrinkToFitViewportOverridesViewportParameters

ViewportSizingTests.ShrinkToFitViewportWithMinimumAllowedLayoutWidth

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::ViewportConfiguration):
(WebCore::ViewportConfiguration::setMinimumLayoutSize):

Plumb the real size of the view alongside the minimum layout size when updating the minimum layout size.

(WebCore::ViewportConfiguration::setForceHorizontalShrinkToFit):
(WebCore::ViewportConfiguration::shouldIgnoreHorizontalScalingConstraints const):

Bail early and return true if forceHorizontalShrinkToFit is set. This forces shrink-to-fit even in cases where
"shrink-to-fit" is set to "no", or content dimensions don't exceed layout dimensions.

(WebCore::ViewportConfiguration::initialScaleFromSize const):

Use view dimensions rather than minimum layout dimensions when computing the initial scale. Minimum layout size
is no longer always equal to the size of the view if the client has specified a minimum allowed layout width. As
such, when computing the initial scale, to ensure that the content (which was laid out using the minimum layout
size) fits within the real viewport, we need to divide real viewport dimensions by content dimensions.

(WebCore::ViewportConfiguration::minimumScale const):

Similarly, use view size instead of minimum layout size to compute minimum scale.

(WebCore::ViewportConfiguration::description const):

  • page/ViewportConfiguration.h:

Source/WebKit:

Add new SPI hooks to provide finer control over certain aspects of the shrink-to-fit viewport heuristic.
Currently, in certain cases of iPad multitasking, Safari allows shrinking content to fit by default. This means
that even when "width=device-width" is used, if the contents of the page are too wide to fit within the
viewport's width, we'll adjust the initial scale such that the viewport can fit all of the content.

However, in certain viewport dimensions, this heuristic is insufficient to ensure that pages are laid out and
displayed properly within the viewport. Namely, one could imagine that an element with a hard-coded width that
is larger than the real viewport width would cause all other elements with dimensions relative to the body to be
excessively shrunk down once shrink-to-fit is applied, so the page would still look broken even if the contents
of the page all fit within the viewport.

To mitigate this, we decouple the notions of minimum layout size from the size of the actual viewport (which we
simply refer to as "view size"). This allows us to introduce a mechanism where we lay out the page at a given
minimum layout size that is larger than the size of the view; later, when we determine the initial scale, we
then apply shrink-to-fit scaling using the view size rather than the minimum layout size. This grants us the
ability to lay out content as if our view were large, but still ensure that the contents of the page fit within
the actual view.

  • Shared/VisibleContentRectUpdateInfo.cpp:

(WebKit::VisibleContentRectUpdateInfo::encode const):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const):
(WebKit::operator==):

Plumb the forceHorizontalShrinkToFit flag through VisibleContentRectUpdateInfo.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

Plumb viewSize through IPC to WebPage.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

Start off WKWebView flags at their initial values.

(-[WKWebView _minimumAllowedLayoutWidth]):
(-[WKWebView _setMinimumAllowedLayoutWidth:]):

This provides the minimum width at which the page will lay out, such that if the view width dips below this
value, we'll use this minimum allowed layout width instead. 0 by default.

(-[WKWebView activeMinimumLayoutSizes:]):

Refactor this from a static function to a helper method on WKWebView that computes both the minimum layout size
(which takes minimum allowed layout width into account) as well as the real view size. Refactor all call sites
to use this new method, and also propagate the view size down via IPC, alongside the minimum layout size.

(-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _setMinimumLayoutSizeOverride:]):
(-[WKWebView _setForceHorizontalViewportShrinkToFit:]):
(-[WKWebView _forceHorizontalViewportShrinkToFit]):

Setting this flag to YES forces us to always shrink-to-fit in the horizontal axis. NO by default.

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(activeMinimumLayoutSize): Deleted.

More refactoring to replace activeMinimumLayoutSize() with -activeMinimumLayoutSizes:.

(-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

Pass _forceHorizontalViewportShrinkToFit into the visible content rect update.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):

Plumb viewSize alongside the existing minimumLayoutSize.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):

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

(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):

Set forceHorizontalShrinkToFit on the viewport configuration here.

Tools:

Add API tests that exercise -_setMinimumAllowedLayoutWidth: and -_setForceHorizontalViewportShrinkToFit:. See
WebKit ChangeLog for more detail.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ViewportSizingTests.mm: Added.

(TestWebKitAPI::while):
(viewportTestPageMarkup):
(TestWebKitAPI::TEST):

8:55 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:43 AM Changeset in webkit [229062] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the debug build after r228877.

In the case where CAN_DISALLOW_USER_INSTALLED_FONTS is enabled, this function doesn't return anything when
allowUserInstalledFonts != AllowUserInstalledFonts::No. Fix the build by moving return nullptr; back out of
the #else.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::installedFontMandatoryAttributes):

8:39 AM Changeset in webkit [229061] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Potential privacy issue: DNS prefetching can be re-enabled
https://bugs.webkit.org/show_bug.cgi?id=182924

Patch by Milan Crha <mcrha@redhat.com> on 2018-02-27
Reviewed by Michael Catanzaro.

  • dom/Document.cpp:

(WebCore::Document::parseDNSPrefetchControlHeader):

6:00 AM Changeset in webkit [229060] by fred.wang@free.fr
  • 5 edits
    2 adds in trunk

Relayout frames after AsyncFrameScrolling or FrameFlattening option is changed
https://bugs.webkit.org/show_bug.cgi?id=183081

Patch by Frederic Wang <fwang@igalia.com> on 2018-02-27
Reviewed by Antonio Gomes.

Add a test to check whether an iframe changes its flattening status after one of the option
AsyncFrameScrolling/FrameFlattening is enabled/disabled.

  • platform/ios-simulator/TestExpectations: Remove failure.
  • platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic-expected.txt: Added.
  • platform/ios/fast/frames/flattening/iframe-flattening-async-frame-scrolling-dynamic.html: Added.
5:03 AM Changeset in webkit [229059] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Implement the procedure to set the target effect of an animation
https://bugs.webkit.org/show_bug.cgi?id=183146

Reviewed by Dean Jackson.

We only had a partial implementation of setEffect() and we now update it to cover the entire
implementation as mandated by the spec. While this doesn't yield any WPT results changes, this
patch will help getting a significant number of new PASS results when we get around to implement
correct support for async procedures (pending pause/play tasks and promises) in the next patch.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setEffect):

5:00 AM Changeset in webkit [229058] by graouts@webkit.org
  • 6 edits in trunk

[Web Animations] Update the playState implementation
https://bugs.webkit.org/show_bug.cgi?id=183145

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations with slightly different failures later on in a couple of tests.

  • web-platform-tests/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:

Source/WebCore:

The Web Animations spec has changed since we first implemented the playState property and the "pending"
enum value has been dropped since then (there is a separate "pending" property which we also implement).
We update our implementation to match the latest spec text. This does not change WPT test results a lot,
but this patch will help getting a significant number of new PASS results when we get around to implementing
correct support for async procedures (pending pause/play tasks and promises) in a couple of patches.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::playState const):

  • animation/WebAnimation.h:
  • animation/WebAnimation.idl:
1:36 AM Changeset in webkit [229057] by Yusuke Suzuki
  • 5 edits in trunk

Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

JSTests:

  • stress/has-indexed-property-array-storage-ftl.js:
  • stress/has-indexed-property-slow-put-array-storage-ftl.js:

Tools:

  • Scripts/run-jsc-stress-tests:
12:06 AM Changeset in webkit [229056] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Address post-review comment after r229049.
https://bugs.webkit.org/show_bug.cgi?id=183142

Reviewed by Tim Horton.

Wrap a newly added string literal with ASCIILiteral.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::extraDefaultStyleSheet):

12:00 AM Changeset in webkit [229055] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk/Source

Stop using deprecated CADisplay SPI
https://bugs.webkit.org/show_bug.cgi?id=183150
<rdar://problem/37918297>

Reviewed by Simon Fraser.

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h:

Switch to the more modern way of getting the display name.

Source/WebKit:

  • Platform/spi/ios/FrontBoardServicesSPI.h: Added.
  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

  • WebKit.xcodeproj/project.pbxproj:

Switch to the more modern way of getting the display name.

Note: See TracTimeline for information about the timeline view.