Timeline



Jun 11, 2019:

9:51 PM Changeset in webkit [246348] by Wenson Hsieh
  • 8 edits
    2 adds in trunk

[iOS] Idempotent text autosizing needs to react properly to viewport changes
https://bugs.webkit.org/show_bug.cgi?id=198736
<rdar://problem/50591911>

Reviewed by Zalan Bujtas.

Source/WebCore:

Minor refactoring and some adjustments around StyleResolver::adjustRenderStyleForTextAutosizing. See below for
more details, as well as the WebKit ChangeLog.

Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyleForTextAutosizing):

Rewrite this using early return statements, to make it easier to debug why elements fall out of text autosizing.
Additionally, this function currently bails if the initial scale is exactly 1, whereas we can really avoid text
autosizing in the case where the initial scale is at least 1; handle this by making idempotentTextSize return
immediately with the specified size, in the case where the scale is at least 1.

Lastly, remove the null check for element by making this method take an Element&, and only call this from
adjustRenderStyle if the element is nonnull (which matches adjustRenderStyleForSiteSpecificQuirks).

(WebCore::StyleResolver::adjustRenderStyle):

  • css/StyleResolver.h:
  • rendering/style/TextSizeAdjustment.cpp:

(WebCore::AutosizeStatus::idempotentTextSize):

Source/WebKit:

If idempotent text autosizing is enabled, respond to viewport initial scale changes by forcing a style recalc,
since the amount by which idempotent text autosizing boosts font sizes depends on the Page's initial scale.

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

(WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded):
(WebKit::WebPage::viewportConfigurationChanged):

LayoutTests:

Add a new layout test that programmatically adjusts the meta viewport initial scale, and dumps the resulting
computed sizes of several paragraphs of text, after adjusting for text autosizing.

  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale-expected.txt: Added.
  • fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html: Added.
9:13 PM Changeset in webkit [246347] by Alan Bujtas
  • 20 edits in trunk

LayoutTests/fast/events/touch/ios/double-tap-for-double-click* test cases are failing
https://bugs.webkit.org/show_bug.cgi?id=198764
<rdar://problem/51035459>

Reviewed by Wenson Hsieh.

Source/WebKit:

This patch replaces the existing, _doubleTapGestureRecognizerForDoubleClick based double click handling with a WebProcess based implementation using
the potentialTapAtPosition/commitPotentialTap infrastructure.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

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

(WebKit::PageClientImpl::doubleTapForDoubleClickDelay):
(WebKit::PageClientImpl::doubleTapForDoubleClickRadius):

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

(-[WKContentView _ensureNonBlockingDoubleTapGestureRecognizer]):
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _didStartProvisionalLoadForMainFrame]):
(-[WKContentView _doubleTapForDoubleClickDelay]):
(-[WKContentView _doubleTapForDoubleClickRadius]):
(-[WKContentView _doubleTapRecognizedForDoubleClick:]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint): Deleted.

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

(WebKit::WebPage::handlePotentialDoubleTapForDoubleClickAtPoint):
(WebKit::WebPage::commitPotentialTap):
(WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint): Deleted.

LayoutTests:

  • fast/events/touch/ios/double-tap-for-double-click1.html:
  • fast/events/touch/ios/double-tap-for-double-click2.html:
  • fast/events/touch/ios/double-tap-for-double-click3.html:
8:18 PM Changeset in webkit [246346] by commit-queue@webkit.org
  • 7 edits in trunk

JSC should throw if proxy set returns falsish in strict mode context
https://bugs.webkit.org/show_bug.cgi?id=177398

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-06-11
Reviewed by Yusuke Suzuki.

JSTests:

  1. Add coverage for Proxy set trap returning falsy value in strict mode.
  2. RegExp methods throw unless Set? succeeds. Return true from Proxy set traps to fix the tests.
  • stress/proxy-set.js: Add 2 test cases.
  • stress/regexp-match-proxy.js: Fix test.
  • stress/regexp-replace-proxy.js: Fix test.

Source/JavaScriptCore:

Throw TypeError exception if Proxy's set trap returns falsy value.
(step 6.c of https://tc39.es/ecma262/#sec-putvalue)

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performPut):
(JSC::ProxyObject::put):
(JSC::ProxyObject::putByIndexCommon):

  • runtime/ProxyObject.h:
8:18 PM Changeset in webkit [246345] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[Apple Pay] ASSERTION FAILED: m_state == State::Activating under WebPaymentCoordinatorProxy::showPaymentUI
https://bugs.webkit.org/show_bug.cgi?id=198776
<rdar://problem/49123795>

Reviewed by Brian Weinstein.

It's possible that an active session is aborted before the completion handler passed to
platformShowPaymentUI() has executed. When that happens, m_state will be Idle even though we
assert that it is Activating. Fix this by returning early in the platformShowPaymentUI()
completion handler when m_state is Idle.

It's not possible to write a layout test for this because MockPaymentCoordinator handles
showing payment UI directly in the web process, so this code is not executed in layout
tests. The assertion can be reproduced manually by loading
https://w3c-test.org/payment-request/payment-is-showing.https.html and clicking the button.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

7:50 PM Changeset in webkit [246344] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Fix a11y support in bubblewrap sandbox
https://bugs.webkit.org/show_bug.cgi?id=198777

Patch by Patrick Griffis <Patrick Griffis> on 2019-06-11
Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindA11y):

5:44 PM Changeset in webkit [246343] by timothy@apple.com
  • 4 edits in trunk/Source

Flash when tapping compose button after switching to/from dark mode without restarting Mail.
https://bugs.webkit.org/show_bug.cgi?id=198769
rdar://problem/51370037

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Make LocalCurrentTraitCollection.h a private header.

Source/WebKit:

Accessing a dynamic color outside a normal UIView choke point without setting
UITraitCollection.currentTraitCollection first can cause undefined results.
Use LocalCurrentTraitCollection inside scrollViewBackgroundColor when accessing
the dynamic system UIColors. Also use systemBackgroundColor instead of white.

  • UIProcess/API/Cocoa/WKWebView.mm:

(scrollViewBackgroundColor):

5:24 PM Changeset in webkit [246342] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Integrate scrollbar gestures for iOS
https://bugs.webkit.org/show_bug.cgi?id=198767

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(_WKGestureRecognizerIsBuiltInScrollViewGestureRecognizer):
(-[WKContentView gestureRecognizer:canPreventGestureRecognizer:]):

4:55 PM Changeset in webkit [246341] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

Scrollbar can show as white on white in dark mode on iOS.
https://bugs.webkit.org/show_bug.cgi?id=198772
rdar://problem/51516743

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateScrollViewBackground]): Use UIScrollViewIndicatorStyleBlack instead
of UIScrollViewIndicatorStyleDefault to prevent getting a white scrollbar in dark mode.

4:40 PM Changeset in webkit [246340] by commit-queue@webkit.org
  • 3 edits
    4 deletes in trunk

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

New test is failing, and commit is causing another test to
fail. (Requested by ShawnRoberts on #webkit).

Reverted changeset:

"Web Inspector: AXI: Audit: image label test is throwing
spurious errors on elements with existing alt attr, but no
value: <img alt>"
https://bugs.webkit.org/show_bug.cgi?id=194754
https://trac.webkit.org/changeset/246320

4:32 PM Changeset in webkit [246339] by Devin Rousso
  • 29 edits in trunk

Sort the computed styles list
https://bugs.webkit.org/show_bug.cgi?id=198743

Reviewed by Simon Fraser

LayoutTests/imported/w3c:

  • web-platform-tests/infrastructure/assumptions/html-elements-expected.txt:

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • platform/wpe/fast/css/getComputedStyle/computed-style-font-family-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
  • platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
  • platform/wpe/svg/css/getComputedStyle-basic-expected.txt:
4:00 PM Changeset in webkit [246338] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS] Adjust test fast/events/ios/keyup.html to ignore Shift keyups
https://bugs.webkit.org/show_bug.cgi?id=198768
<rdar://problem/46082743>

Reviewed by Brent Fulgham.

Ignore Shift keyups as in the future they will be emitted. We have existing test coverage for them
currently skipped in OpenSource that will be unskipped in the future once we enable ENABLE(FULL_KEYBOARD_ACCESS).

  • fast/events/ios/keyup.html:
3:39 PM Changeset in webkit [246337] by Kocsen Chung
  • 7 edits in branches/safari-608.1.27.20-branch/Source

Versioning.

3:31 PM Changeset in webkit [246336] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Fix up test result following r245161.
<rdar://problem/51032967>

Until we get UIKit support, almost all keys, including the numpad comma key (on JIS keyboards)
report Dead for their key property and Unidentified for their keyIdentifier property.

  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
3:12 PM Changeset in webkit [246335] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.27.20.2

Tag Safari-608.1.27.20.2.

2:44 PM Changeset in webkit [246334] by Truitt Savell
  • 2 edits in trunk/LayoutTests

r246018 introduced a falkey test on WK1
https://bugs.webkit.org/show_bug.cgi?id=196508

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:42 PM Changeset in webkit [246333] by commit-queue@webkit.org
  • 4 edits in trunk

Error message for non-callable Proxy construct trap is misleading
https://bugs.webkit.org/show_bug.cgi?id=198637

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-06-11
Reviewed by Saam Barati.

JSTests:

  • stress/proxy-construct.js:

Source/JavaScriptCore:

Just like other traps, Proxy construct trap is invoked with Call?, not Construct?.

  • runtime/ProxyObject.cpp:

(JSC::performProxyConstruct): Tweak error message.

2:06 PM Changeset in webkit [246332] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

AI BitURShift's result should not be unsigned
https://bugs.webkit.org/show_bug.cgi?id=198689
<rdar://problem/51550063>

Reviewed by Saam Barati.

JSTests:

  • stress/urshift-int32-overflow.js: Added.

(foo.):
(foo):

Source/JavaScriptCore:

Treating BitURShift's result as unsigned in the abstract interpreter incorrectly overflows it.
This breaks the DFG and FTL, since they assume that BitURShift's result is an int32 value, but
get a double constant from AI. Since the result will be converted to unsigned by UInt32ToNumber,
all we have to do is store the result as a signed int32.

  • dfg/DFGAbstractInterpreterInlines.h:
1:34 PM Changeset in webkit [246331] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Fix non-internal builds after r246327.

  • Platform/spi/ios/UIKitSPI.h:
1:14 PM Changeset in webkit [246330] by dbates@webkit.org
  • 8 edits
    1227 adds in trunk/LayoutTests

Import Content Security Policy Web Platform Tests
https://bugs.webkit.org/show_bug.cgi?id=198676
<rdar://problem/51533785>

Reviewed by Youenn Fablet.

Import tests as of 3840f46213d9a991acc9288e3863530f7502c05e (origin/master).

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/content-security-policy/META.yml: Added.
  • web-platform-tests/content-security-policy/README.css: Added.

(.code):
(.codeTitle):
(.highlight1):
(.highlight2):
(body):

  • web-platform-tests/content-security-policy/README.html: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri-allow.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri-allow.sub.html: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri-deny.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri-deny.sub.html: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri_iframe_sandbox.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/base-uri/base-uri_iframe_sandbox.sub.html: Added.
  • web-platform-tests/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html: Added.
  • web-platform-tests/content-security-policy/base-uri/report-uri-does-not-respect-base-uri.sub.html.sub.headers: Added.
  • web-platform-tests/content-security-policy/base-uri/w3c-import.log: Added.
  • web-platform-tests/content-security-policy/blob/blob-urls-do-not-match-self.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/blob-urls-do-not-match-self.sub.html: Added.
  • web-platform-tests/content-security-policy/blob/blob-urls-match-blob.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/blob-urls-match-blob.sub.html: Added.
  • web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/self-doesnt-match-blob.sub.html: Added.
  • web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/blob/star-doesnt-match-blob.sub.html: Added.
  • web-platform-tests/content-security-policy/blob/w3c-import.log: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-about-blank-allowed-by-default.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-about-blank-allowed-by-default.sub.html: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-about-blank-allowed-by-scheme.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-about-blank-allowed-by-scheme.sub.html: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-allowed.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/child-src/child-src-allowed.sub.html: Added.

[...]

  • web-platform-tests/content-security-policy/worker-src/service-worker-src-script-fallback.https.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub-expected.txt: Added.
  • web-platform-tests/content-security-policy/worker-src/service-worker-src-self-fallback.https.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-child.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-fallback.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-list.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-none.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-self.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback-blocked.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-child-fallback.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-default-fallback.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-script-fallback.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/shared-worker-src-self-fallback.sub.html: Added.
  • web-platform-tests/content-security-policy/worker-src/w3c-import.log: Added.

LayoutTests:

  • TestExpectations: Skip some tests for features we do not support.
  • platform/mac-wk1/TestExpectations: Skip some tests.
  • platform/win/TestExpectations: Ditto.
  • tests-options.json:
12:40 PM Changeset in webkit [246329] by Keith Rollin
  • 2 edits in trunk/Tools

Open up xcfilelist processing to more platforms
https://bugs.webkit.org/show_bug.cgi?id=198675
<rdar://problem/51533238>

Reviewed by Jonathan Bedard.

Now that it's been tested, add AppleTV{OS,Simulator} to the set of
platforms on which to perform xcfilelist generation/updating.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(JavaScriptCoreGenerator):
(WebCoreGenerator):
(WebKitGenerator):

12:33 PM Changeset in webkit [246328] by Michael Catanzaro
  • 6 edits in trunk/Source

Unreviewed build warning fixes

Source/JavaScriptCore:

Silence -Wreturn-type warning

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::tryCreate):

Source/WebCore:

Silence -Wunused-parameter warning

  • testing/Internals.cpp:

(WebCore::Internals::storeRegistrationsOnDisk):

Source/WebKit:

Silence -Wunused-variable warning

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::clearWebProcessIsPlayingAudibleMedia):

12:02 PM Changeset in webkit [246327] by Simon Fraser
  • 9 edits
    1 add in trunk/Source

Add logging for UI-side compositing hit-testing
https://bugs.webkit.org/show_bug.cgi?id=198739

Reviewed by Antti Koivisto.

Source/WebCore:

Export the TextStream output operator.

  • platform/TouchAction.h:

Source/WebKit:

Make it easier to debug UI-side compositing hit-testing issues with a UIHitTesting log
channel, which logs information about the UIView hierarchy, which views are found by
hit-testing, and what touch-actions apply.

This log channel can be set by passing the argument '-WebKit2Logging "UIHitTesting"' when
launching a debug iOS MobileSafari instance.

  • Platform/Logging.h:
  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(-[UIView _web_findDescendantViewAtPoint:withEvent:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView hitTest:withEvent:]):
(-[WKContentView _handleTouchActionsForTouchEvent:]):

Source/WTF:

Make it possible to output an Objective-C object to TextStream, which will
log its -description.

Also add a template for OptionSet<> printing.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/text/TextStream.h:

(WTF::operator<<):

  • wtf/text/cocoa/TextStreamCocoa.mm: Added.

(WTF::TextStream::operator<<):

11:44 AM Changeset in webkit [246326] by Jonathan Bedard
  • 8 edits in trunk/Tools

webkitpy: Fix device ASan reporting, add testing for report configurations
https://bugs.webkit.org/show_bug.cgi?id=198756

Reviewed by Aakash Jain.

ASan results were reporting an incorrect style. This indicates we need to be testing this upload
configuration thoroughly in webkitpy.

  • Scripts/webkitpy/port/config.py:

(clear_cached_configuration): Clearing configurations should clear the ASan cache as well.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort.configuration_for_upload): Add ASan as style.

  • Scripts/webkitpy/port/ios_device_unittest.py:

(IOSDeviceTest):
(IOSDeviceTest.test_default_upload_configuration):

  • Scripts/webkitpy/port/ios_simulator_unittest.py:

(IOSSimulatorTest.test_default_upload_configuration):

  • Scripts/webkitpy/port/mock_drt_unittest.py:

(MockDRTPortTest.test_asan_upload_configuration):

  • Scripts/webkitpy/port/port_testcase.py:

(test_default_upload_configuration):
(test_debug_upload_configuration):
(test_asan_upload_configuration):
(test_guard_malloc_configuration):

  • Scripts/webkitpy/port/watch_simulator_unittest.py:

(WatchSimulatorTest):
(WatchSimulatorTest.test_default_upload_configuration):

11:17 AM Changeset in webkit [246325] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Skip test http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html as
testRunner.queueLoad() does not support loading data URLs in Legacy WebKit on Mac and iOS

  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
10:45 AM Changeset in webkit [246324] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

[Win] Layout test http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=198758

It is a longstanding known issue (since 2015) that navigating to a blob URL times out on Windows.
Further investigation is needed. Skip another test for now.

  • platform/win/TestExpectations:
10:25 AM Changeset in webkit [246323] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

compositing/fixed-with-main-thread-scrolling.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=198757

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations for flaky test
10:18 AM Changeset in webkit [246322] by sbarati@apple.com
  • 60 edits
    1 delete in trunk/Source

Roll out PAC cage
https://bugs.webkit.org/show_bug.cgi?id=198726

Reviewed by Keith Miller.

Source/bmalloc:

  • bmalloc/Gigacage.h:

(Gigacage::isEnabled):
(Gigacage::caged):
(Gigacage::cagedMayBeNull): Deleted.

Source/JavaScriptCore:

This patch rolls out: r245064, r245145, r245168, r245313, r245432, r245622.

The resulting state we're in is we have Gigacage enabled on arm64.
There is no more PAC caging.

We're doing this because there are performance issues with PAC caging
that we haven't resolved yet.

  • assembler/CPU.h:

(JSC::isARM64E): Deleted.

  • assembler/MacroAssemblerARM64E.h:

(JSC::MacroAssemblerARM64E::tagArrayPtr): Deleted.
(JSC::MacroAssemblerARM64E::untagArrayPtr): Deleted.
(JSC::MacroAssemblerARM64E::removeArrayPtrTag): Deleted.

  • b3/B3LowerToAir.cpp:
  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):

  • b3/B3Validate.cpp:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::addUsedRegistersTo const):
(JSC::B3::ValueRep::dump const):
(WTF::printInternal):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::ValueRep):
(JSC::B3::ValueRep::isReg const):

  • dfg/DFGOperations.cpp:

(JSC::DFG::newTypedArrayWithSize):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::cageTypedArrayStorage):
(JSC::DFG::SpeculativeJIT::compileGetIndexedPropertyStorage):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):

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

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):
(JSC::FTL::DFG::LowerDFGToB3::caged):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):
(JSC::FTL::DFG::LowerDFGToB3::untagArrayPtr): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::removeArrayPtrTag): Deleted.

  • heap/ConservativeRoots.cpp:

(JSC::ConservativeRoots::genericAddPointer):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageConditionally):

  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitDirectArgumentsGetByVal):
(JSC::JIT::emitIntTypedArrayGetByVal):
(JSC::JIT::emitFloatTypedArrayGetByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::clearCallLinkInfo):

  • jit/RegisterSet.h:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayBuffer.cpp:

(JSC::SharedArrayBufferContents::SharedArrayBufferContents):
(JSC::SharedArrayBufferContents::~SharedArrayBufferContents):
(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::destroy):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBufferContents::makeShared):
(JSC::ArrayBufferContents::copyTo):

  • runtime/ArrayBuffer.h:

(JSC::SharedArrayBufferContents::data const):
(JSC::ArrayBufferContents::data const):
(JSC::ArrayBuffer::data):
(JSC::ArrayBuffer::data const):
(JSC::ArrayBuffer::byteLength const):

  • runtime/ArrayBufferView.cpp:

(JSC::ArrayBufferView::ArrayBufferView):

  • runtime/ArrayBufferView.h:

(JSC::ArrayBufferView::baseAddress const):
(JSC::ArrayBufferView::setRangeImpl):
(JSC::ArrayBufferView::getRangeImpl):
(JSC::ArrayBufferView::byteLength const): Deleted.

  • runtime/CachedTypes.cpp:

(JSC::CachedScopedArgumentsTable::encode):
(JSC::CachedScopedArgumentsTable::decode const):

  • runtime/CagedBarrierPtr.h:

(JSC::CagedBarrierPtr::CagedBarrierPtr):
(JSC::CagedBarrierPtr::set):
(JSC::CagedBarrierPtr::get const):
(JSC::CagedBarrierPtr::getMayBeNull const):
(JSC::CagedBarrierPtr::operator== const):
(JSC::CagedBarrierPtr::operator!= const):
(JSC::CagedBarrierPtr::operator bool const):
(JSC::CagedBarrierPtr::setWithoutBarrier):
(JSC::CagedBarrierPtr::operator* const):
(JSC::CagedBarrierPtr::operator-> const):
(JSC::CagedBarrierPtr::operator[] const):
(JSC::CagedBarrierPtr::getUnsafe const): Deleted.
(JSC::CagedBarrierPtr::at const): Deleted.

  • runtime/DataView.cpp:

(JSC::DataView::DataView):

  • runtime/DataView.h:

(JSC::DataView::get):
(JSC::DataView::set):

  • runtime/DirectArguments.cpp:

(JSC::DirectArguments::visitChildren):
(JSC::DirectArguments::overrideThings):
(JSC::DirectArguments::unmapArgument):

  • runtime/DirectArguments.h:
  • runtime/GenericArguments.h:
  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::visitChildren):
(JSC::GenericArguments<Type>::initModifiedArgumentsDescriptor):
(JSC::GenericArguments<Type>::setModifiedArgumentDescriptor):
(JSC::GenericArguments<Type>::isModifiedArgumentDescriptor):

  • runtime/GenericTypedArrayView.h:
  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::GenericTypedArrayView):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
(JSC::JSArrayBufferView::JSArrayBufferView):
(JSC::JSArrayBufferView::finalize):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):

  • runtime/JSArrayBufferView.h:

(JSC::JSArrayBufferView::ConstructionContext::vector const):
(JSC::JSArrayBufferView::isNeutered):
(JSC::JSArrayBufferView::vector const):
(JSC::JSArrayBufferView::hasVector const): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):
(JSC::JSGenericTypedArrayView<Adaptor>::estimatedSize):
(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren):

  • runtime/Options.h:
  • runtime/ScopedArgumentsTable.cpp:

(JSC::ScopedArgumentsTable::clone):
(JSC::ScopedArgumentsTable::setLength):

  • runtime/ScopedArgumentsTable.h:
  • runtime/SymbolTable.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::addCallIndirect):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::updateCachedMemory):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::~Memory):
(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::dump const):

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::memory const):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CagedPtr.h:

(WTF::CagedPtr::CagedPtr):
(WTF::CagedPtr::get const):
(WTF::CagedPtr::getMayBeNull const):
(WTF::CagedPtr::operator=):
(WTF::CagedPtr::operator== const):
(WTF::CagedPtr::operator!= const):
(WTF::CagedPtr::operator bool const):
(WTF::CagedPtr::operator* const):
(WTF::CagedPtr::operator-> const):
(WTF::CagedPtr::operator[] const):
(WTF::CagedPtr::getUnsafe const): Deleted.
(WTF::CagedPtr::at const): Deleted.
(WTF::CagedPtr::recage): Deleted.

  • wtf/CagedUniquePtr.h:

(WTF::CagedUniquePtr::CagedUniquePtr):
(WTF::CagedUniquePtr::create):
(WTF::CagedUniquePtr::operator=):
(WTF::CagedUniquePtr::~CagedUniquePtr):
(WTF::CagedUniquePtr::destroy):

  • wtf/Gigacage.h:

(Gigacage::caged):
(Gigacage::cagedMayBeNull): Deleted.

  • wtf/PtrTag.h:

(WTF::tagArrayPtr): Deleted.
(WTF::untagArrayPtr): Deleted.
(WTF::removeArrayPtrTag): Deleted.
(WTF::retagArrayPtr): Deleted.

  • wtf/TaggedArrayStoragePtr.h:

(WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr): Deleted.
(WTF::TaggedArrayStoragePtr::get const): Deleted.
(WTF::TaggedArrayStoragePtr::getUnsafe const): Deleted.
(WTF::TaggedArrayStoragePtr::resize): Deleted.
(WTF::TaggedArrayStoragePtr::operator bool const): Deleted.

9:53 AM Changeset in webkit [246321] by guijemont@igalia.com
  • 2 edits in trunk/JSTests

Skip stress/ftl-gettypedarrayoffset-wasteful.js on Arm/Linux

Unreviewed gardening.

  • stress/ftl-gettypedarrayoffset-wasteful.js:

Skipped on arm/linux as it always times out on the bot since a change
between r246270 and r246278 inclusive.

9:42 AM Changeset in webkit [246320] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Web Inspector: AXI: Audit: image label test is throwing spurious errors on elements with existing alt attr, but no value: <img alt>
https://bugs.webkit.org/show_bug.cgi?id=194754
<rdar://problem/48144534>

Patch by Greg Doolittle <gr3g@apple.com> on 2019-06-11
Reviewed by Chris Fleizach.

Source/WebCore:

Tests: accessibility/img-alt-attribute-empty-string.html

accessibility/img-alt-attribute-no-value.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::computedRoleString const):

LayoutTests:

  • accessibility/img-alt-attribute-empty-string-expected.txt: Added.
  • accessibility/img-alt-attribute-empty-string.html: Added.
  • accessibility/img-alt-attribute-no-value-expected.txt: Added.
  • accessibility/img-alt-attribute-no-value.html: Added.
9:26 AM Changeset in webkit [246319] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add a quirk for washingtonpost.com and nytimes.com
https://bugs.webkit.org/show_bug.cgi?id=198678

Reviewed by Geoffrey Garen.

Covered by manual test.

  • page/Quirks.cpp:

(WebCore::Quirks::hasWebSQLSupportQuirk const):

9:19 AM Changeset in webkit [246318] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure and timeout
https://bugs.webkit.org/show_bug.cgi?id=198185

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Skipping test on iOS
9:16 AM Changeset in webkit [246317] by Devin Rousso
  • 3 edits in trunk/LayoutTests

Unreviewed, fix test failures after r246292.

  • inspector/timeline/timeline-recording.html:
  • inspector/timeline/timeline-recording-expected.txt:

Filter the contents of sampleStackTraces and sampleDurations when exporting.

8:55 AM Changeset in webkit [246316] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (iOS): Can't scroll litter-robot.com checkout form's dropdown menus
https://bugs.webkit.org/show_bug.cgi?id=198753
<rdar://problem/51355686>

Reviewed by Simon Fraser.

Source/WebKit:

If an element with 'overflow:scroll' also had 'visibility:hidden' or 'pointer-events:none' it would
capture touches and prevent scrolling of any overlapped scrollers.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::collectDescendantViewsAtPoint):

Filter out views with 'isUserInteractionEnabled == NO' (set for hidden and pointer-events:none layers).
This prevents it being considered as the first view hit when determining scrolling relationships.

(-[UIView _web_findDescendantViewAtPoint:withEvent:]):

No need to skip here anymore.

LayoutTests:

  • fast/scrolling/ios/overflow-scroll-user-interaction-disabled-expected.txt: Added.
  • fast/scrolling/ios/overflow-scroll-user-interaction-disabled.html: Added.
8:34 AM Changeset in webkit [246315] by bshafiei@apple.com
  • 7 edits in branches/safari-608.1.27.20-branch/Source

Versioning.

8:33 AM Changeset in webkit [246314] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Include touch-action in the computed styles list
https://bugs.webkit.org/show_bug.cgi?id=198742

Reviewed by Antoine Quint.

  • css/CSSComputedStyleDeclaration.cpp:
8:27 AM Changeset in webkit [246313] by Michael Catanzaro
  • 4 edits in trunk

tu-berlin university email web interface (Outlook Web App) goes directly to the light version instead of the normal web app
https://bugs.webkit.org/show_bug.cgi?id=198749

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add user agent quirk for exchange.tu-berlin.de, which has lost the right to receive an
accurate user agent from WebKit.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

8:13 AM Changeset in webkit [246312] by youenn@apple.com
  • 4 edits in trunk

MediaStreamAudioSourceNode::setFormat should check for m_sourceSampleRate equality
https://bugs.webkit.org/show_bug.cgi?id=198740
<rdar://problem/47088939>

Reviewed by Eric Carlson.

Source/WebCore:

Covered by tests that are now passing.

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::setFormat):

LayoutTests:

  • platform/mac/TestExpectations:
7:46 AM Changeset in webkit [246311] by Wenson Hsieh
  • 7 edits in trunk

Quotes are always inserted as smart quotes on stackblitz.com, causing compilation errors
https://bugs.webkit.org/show_bug.cgi?id=198735
<rdar://problem/51557159>

Reviewed by Megan Gardner.

Source/WebKit:

Add a flag in FocusedElementInformation to indicate whether spellchecking is allowed in the focused element.
If spellchecking is not allowed, then disable smart quotes and dashes, which matches behavior on macOS.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

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

(-[WKContentView textInputTraits]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

Tools:

Add a test to verify that spellcheck="false" disables smart quotes and dashes, but any other value defers to the
user's preferences by using UITextSmartQuotesTypeDefault and UITextSmartDashesTypeDefault.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

5:52 AM Changeset in webkit [246310] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Replace gdk_screen_get_monitor_geometry and gdk_screen_get_monitor_workarea
https://bugs.webkit.org/show_bug.cgi?id=198750

Patch by Ludovico de Nittis <ludovico.denittis@collabora.com> on 2019-06-11
Reviewed by Carlos Garcia Campos.

Since GTK 3.22 gdk_screen_get_monitor_geometry and
gdk_screen_get_monitor_workarea has been deprecated.

No behavior change.

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenRect):
(WebCore::screenAvailableRect):

5:50 AM Changeset in webkit [246309] by Fujii Hironori
  • 5 edits
    4 adds in trunk

[cairo][SVG] Putting multiple path elements in clippath causes rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=198701

Source/WebCore:

PlatformContextCairo::pushImageMask blits wrong position of the
surface to the background of masking objects. And, I don't know
the reason why this blitting is needed. Removed the blitting.

Reviewed by Carlos Garcia Campos.

Tests: svg/clip-path/clip-opacity.html

svg/clip-path/svg-in-html.html

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::pushImageMask): Don't blit the
surface to the background.

LayoutTests:

Reviewed by Carlos Garcia Campos.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:

Unskipped svg/gradients/spreadMethodDiagonal3.svg and svg/gradients/spreadMethodDiagonal4.svg.

  • svg/clip-path/clip-opacity-expected.html: Added.
  • svg/clip-path/clip-opacity.html: Added.
  • svg/clip-path/svg-in-html-expected.html: Added.
  • svg/clip-path/svg-in-html.html: Added.
4:17 AM Changeset in webkit [246308] by Carlos Garcia Campos
  • 22 edits in trunk

[GTK] Remove option REDIRECTED_XCOMPOSITE_WINDOW
https://bugs.webkit.org/show_bug.cgi?id=198748

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake: Remove USE_REDIRECTED_XCOMPOSITE_WINDOW build option.

Source/WebKit:

It's unused and untested, we kept that code path only because the redirected window caused performance issues in
some drivers in embedded devices. Nowadays there are much better solutions for those cases like using WPE port
or GTK port under wayland instead of X11.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Remove the ShouldDoFrameSync parameter since it always receives Yes.
(WebKit::ThreadedCompositor::ThreadedCompositor): Ditto.
(WebKit::ThreadedCompositor::createGLContext): Remove the code to handle the case of ShouldDoFrameSync being No,
since it's always Yes.
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW).
(webkitWebViewBaseUnrealize): Ditto.
(webkitWebViewBaseDraw): acceleratedBackingStore member can't be nullptr now.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseMakeGLContextCurrent): Ditto.
(webkitWebViewBaseDidRelaunchWebProcess): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW).
(webkitWebViewBasePageClosed): Ditto.
(webkitWebViewBaseRenderHostFileDescriptor): acceleratedBackingStore member can't be nullptr now.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:

(WebKit::DrawingAreaProxyCoordinatedGraphics::didUpdateBackingStoreState): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW).
(WebKit::DrawingAreaProxyCoordinatedGraphics::setNativeSurfaceHandleForCompositing): Deleted.
(WebKit::DrawingAreaProxyCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing): Deleted.

  • UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.h:
  • UIProcess/gtk/AcceleratedBackingStore.cpp:

(WebKit::AcceleratedBackingStore::create): Add an assert to ensure we create an AcceleratedBackingStore.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
  • UIProcess/gtk/AcceleratedBackingStoreX11.h:
  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW).

  • WebProcess/WebPage/AcceleratedSurface.cpp:

(WebKit::AcceleratedSurface::create): Add an assert to ensure we create an AcceleratedSurface.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): Remove the code for !USE(REDIRECTED_XCOMPOSITE_WINDOW).
(WebKit::DrawingAreaCoordinatedGraphics::setNativeSurfaceHandleForCompositing): Deleted.
(WebKit::DrawingAreaCoordinatedGraphics::destroyNativeSurfaceHandleForCompositing): Deleted.

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

(WebKit::LayerTreeHost::LayerTreeHost): m_surface can't be nullptr now.
(WebKit::LayerTreeHost::sizeDidChange): Ditto.
(WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::LayerTreeHost::nativeSurfaceHandleForCompositing): Ditto.
(WebKit::LayerTreeHost::didDestroyGLContext): Ditto.
(WebKit::LayerTreeHost::willRenderFrame): Ditto.
(WebKit::LayerTreeHost::didRenderFrame): Ditto.
(WebKit::LayerTreeHost::setNativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::nativeWindowHandle): Deleted.

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
2:11 AM Changeset in webkit [246307] by Tadeu Zagallo
  • 2 edits in trunk/Tools

Unreviewed, add myself to the JavaScriptCore watchlist.

  • Scripts/webkitpy/common/config/watchlist:
2:02 AM Changeset in webkit [246306] by Tadeu Zagallo
  • 2 edits in trunk/Tools

Unreviewed, change my status to be a WebKit reviewer

  • Scripts/webkitpy/common/config/contributors.json:
1:01 AM Changeset in webkit [246305] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] bubblewrap sandbox should grant access to web extensions directory
https://bugs.webkit.org/show_bug.cgi?id=198734

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_set_web_extensions_directory):

12:43 AM Changeset in webkit [246304] by Carlos Garcia Campos
  • 9 edits in trunk/Tools

[WPE] Use new exported image API from fdo backend
https://bugs.webkit.org/show_bug.cgi?id=198558

Reviewed by Philippe Normand.

  • WebKitTestRunner/PlatformWPE.cmake: Do not find fdo backend and libxkb again here, since WKTR depends on

WPEToolingBackends that already depends on fdo backend and libxkb

  • wpe/backends/CMakeLists.txt: Bump fdo requirements to 1.3.0 version.
  • wpe/backends/HeadlessViewBackend.cpp:

(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::createSnapshot):
(WPEToolingBackends::HeadlessViewBackend::performUpdate):
(WPEToolingBackends::HeadlessViewBackend::displayBuffer):

  • wpe/backends/HeadlessViewBackend.h:
  • wpe/backends/ViewBackend.cpp:

(WPEToolingBackends::ViewBackend::initialize):

  • wpe/backends/ViewBackend.h:
  • wpe/backends/WindowViewBackend.cpp:

(WPEToolingBackends::WindowViewBackend::displayBuffer):

  • wpe/backends/WindowViewBackend.h:

Jun 10, 2019:

10:05 PM Changeset in webkit [246303] by Dewei Zhu
  • 6 edits in trunk/Tools

Extend run-benchmark to allow diagnosing before closing browser on test failure.
https://bugs.webkit.org/show_bug.cgi?id=198729

Reviewed by Ryosuke Niwa.

Add '--diagnose-directory' option to store diagnose information when test failed.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver.diagnose_test_failure): Add default no-op function to base class.

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py: Added '--diagnose-directory' option.

(parse_args):
(run_benchmark_plan):

  • Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py:

(WebDriverBenchmarkRunner._run_one_test): Added 'diagnose_test_failure' invocation on test failure.

  • Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py:

(WebServerBenchmarkRunner.init):
(WebServerBenchmarkRunner._run_one_test): Added 'diagnose_test_failure' invocation on test failure.

6:14 PM Changeset in webkit [246302] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Remove the unused video window
https://bugs.webkit.org/show_bug.cgi?id=198523

Reviewed by Don Olmstead.

Remove the video window which had been unused since Bug 150941.

No behavior change.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::~MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::setSize):
(WebCore::MediaPlayerPrivateMediaFoundation::paint):
(WebCore::MediaPlayerPrivateMediaFoundation::hostWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setDestinationRect):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createVideoSamples):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoViewWndProc): Deleted.
(WebCore::MediaPlayerPrivateMediaFoundation::registerVideoWindowClass): Deleted.
(WebCore::MediaPlayerPrivateMediaFoundation::createVideoWindow): Deleted.
(WebCore::MediaPlayerPrivateMediaFoundation::destroyVideoWindow): Deleted.
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSwapChain): Deleted.
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::updateDestRect): Deleted.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
5:54 PM Changeset in webkit [246301] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Add visualization of touch action regions
https://bugs.webkit.org/show_bug.cgi?id=198718

Reviewed by Antoine Quint.

Add a way to show which elements of the page have touch-action set on them by
painting an overlay with small text that shows the type of action(s).

The event regions are painted into GraphicsLayers at paint time in
RenderLayerBacking by making a pattern image and filling the region rects
with the pattern.

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::regionForTouchAction const):

  • rendering/EventRegion.h:

(WebCore::EventRegion::region const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):
(WebCore::patternForTouchAction):
(WebCore::RenderLayerBacking::paintContents):

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

[iOS] Use PDFKit SPI for taking snapshots when the hosting app is not entitled for global capture
https://bugs.webkit.org/show_bug.cgi?id=198731
<rdar://problem/46215174>

Reviewed by Tim Horton.

Source/WebKit:

PDFHostViewController renders PDF contents in a view service, and apps are unable to
snapshot views rendered out-of-process without an entitlement.

When an app is missing this entitlement and calls WKWebView's
takeSnapshotWithConfiguration: API when a PDF is displayed, fall back to calling
PDFHostViewController's snapshotting SPI.

Testing is blocked by <https://webkit.org/b/175204>.

  • Platform/spi/ios/PDFKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

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

  • UIProcess/Cocoa/WKWebViewContentProvider.h:
  • UIProcess/ios/WKPDFView.mm:

(+[WKPDFView web_requiresCustomSnapshotting]):
(-[WKPDFView web_snapshotRectInContentViewCoordinates:snapshotWidth:completionHandler:]):

  • UIProcess/ios/WKSystemPreviewView.mm:

(+[WKSystemPreviewView web_requiresCustomSnapshotting]):

Source/WTF:

  • wtf/FeatureDefines.h:
5:38 PM Changeset in webkit [246299] by Basuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[WinCairo] Remove build warning from RemoteInspector.
https://bugs.webkit.org/show_bug.cgi?id=198724

Reviewed by Joseph Pecoraro.

In RemoteInspectorConnectionClient.h, an interface was defined with empty implementation.
This method is to be overwritten by sub classes so that parameter name is important
so they are commented out rather than just removing from the definition.

  • inspector/remote/RemoteInspector.h:
4:53 PM Changeset in webkit [246298] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.27.40.1

Tag Safari-608.1.27.40.1.

4:53 PM Changeset in webkit [246297] by Kocsen Chung
  • 1 delete in tags/Safari-608.1.27.40.1

Delete tag.

4:51 PM Changeset in webkit [246296] by Kocsen Chung
  • 2 edits in branches/safari-608.1.27.40-branch/Source/WebKit

Cherry-pick r246248. rdar://problem/51538088

[iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=198692
<rdar://problem/51538088>

Reviewed by Maciej Stachowiak.

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess on state change.

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

4:47 PM Changeset in webkit [246295] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.27.40.1

Tag Safari-608.1.27.40.1.

4:46 PM Changeset in webkit [246294] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.27.20.1

Tag Safari-608.1.27.20.1.

4:34 PM Changeset in webkit [246293] by Kocsen Chung
  • 7 edits in branches/safari-608.1.27.40-branch/Source

Versioning.

4:15 PM Changeset in webkit [246292] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Timelines: imported recordings do not have JavaScript call trees
https://bugs.webkit.org/show_bug.cgi?id=197490
<rdar://problem/50589158>

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.initializeCallingContextTrees):
Make sure to actually save the provided stack traces and samples in the export data.

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.fromJSON):
(WI.ScriptTimelineRecord.prototype.toJSON):
Drive-by: include extraDetails, which contains useful information like "default prevented".

4:10 PM Changeset in webkit [246291] by Kocsen Chung
  • 1 copy in branches/safari-608.1.27.40-branch

New branch.

4:08 PM Changeset in webkit [246290] by Kocsen Chung
  • 7 edits in branches/safari-608.1.27.30-branch/Source

Versioning.

4:03 PM Changeset in webkit [246289] by Kocsen Chung
  • 1 copy in branches/safari-608.1.27.30-branch

New branch.

3:47 PM Changeset in webkit [246288] by Basuke Suzuki
  • 2 edits in trunk/Source/WebCore

Web Inspector: DNS names in SymmaryInfo was wrong.
https://bugs.webkit.org/show_bug.cgi?id=198732

Reviewed by Devin Rousso.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):

3:36 PM Changeset in webkit [246287] by dbates@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

[CSP] Blob URLs should inherit their CSP policy
https://bugs.webkit.org/show_bug.cgi?id=198579
<rdar://problem/51366878>

Reviewed by Brent Fulgham.

Actually add the tests that I inadvertently omitted from r246277.

  • http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.
3:18 PM Changeset in webkit [246286] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] 2.25.1 does not build on 32-bit ARM due to bit-packing assertion, requires -DENABLE_DARK_MODE_CSS=OFF
https://bugs.webkit.org/show_bug.cgi?id=198274

Reviewed by Timothy Hatcher.

Rather than reorder everything in StyleRareInheritedData, let's slightly increase the size
of GreaterThanOrSameSizeAsStyleRareInheritedData to allow the static assert to pass.

At the same time, remove an obsolote iOS-specific member that is probably no longer needed.

  • rendering/style/StyleRareInheritedData.cpp:
3:16 PM Changeset in webkit [246285] by weinig@apple.com
  • 110 edits
    34 deletes in trunk

Remove Dashboard support
https://bugs.webkit.org/show_bug.cgi?id=198615

Reviewed by Ryosuke Niwa.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSCalculationValue.cpp:

(WebCore::hasDoubleValue):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSPrimitiveValue.cpp:

(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):

  • css/CSSPrimitiveValue.h:
  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/DashboardRegion.h: Removed.
  • css/StyleBuilderCustom.h:

(WebCore::convertToIntLength): Deleted.
(WebCore::StyleBuilderCustom::applyValueWebkitDashboardRegion): Deleted.

  • css/StyleResolver.cpp:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeWebkitDashboardRegion): Deleted.

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::createForUpdatingDropTarget):

  • dom/Document.cpp:

(WebCore::Document::invalidateRenderingDependentRegions):
(WebCore::Document::annotatedRegions const): Deleted.
(WebCore::Document::setAnnotatedRegions): Deleted.
(WebCore::Document::updateAnnotatedRegions): Deleted.
(WebCore::Document::invalidateScrollbarDependentRegions): Deleted.
(WebCore::Document::updateZOrderDependentRegions): Deleted.

  • dom/Document.h:

(WebCore::Document::setHasAnnotatedRegions): Deleted.
(WebCore::Document::setAnnotatedRegionsDirty): Deleted.
(WebCore::Document::annotatedRegionsDirty const): Deleted.
(WebCore::Document::hasAnnotatedRegions const): Deleted.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createContext2d):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::sourceURI const):

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasGradient.h:

(WebCore::CanvasGradient::setDashboardCompatibilityMode): Deleted.
(): Deleted.

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::create):
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::CanvasRenderingContext2DBase):
(WebCore::CanvasRenderingContext2DBase::fill):
(WebCore::CanvasRenderingContext2DBase::stroke):
(WebCore::CanvasRenderingContext2DBase::clip):
(WebCore::CanvasRenderingContext2DBase::createLinearGradient):
(WebCore::CanvasRenderingContext2DBase::createRadialGradient):
(WebCore::CanvasRenderingContext2DBase::prepareGradientForDashboard const): Deleted.
(WebCore::CanvasRenderingContext2DBase::clearPathForDashboardBackwardCompatibilityMode): Deleted.

  • html/canvas/CanvasRenderingContext2DBase.h:
  • html/canvas/OffscreenCanvasRenderingContext2D.cpp:

(WebCore::OffscreenCanvasRenderingContext2D::OffscreenCanvasRenderingContext2D):

  • html/canvas/PaintRenderingContext2D.cpp:

(WebCore::PaintRenderingContext2D::PaintRenderingContext2D):

  • page/Chrome.cpp:

(WebCore::ChromeClient::annotatedRegionsChanged): Deleted.

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

(WebCore::FrameView::didLayout):
(WebCore::FrameView::didPaintContents):

  • page/Settings.yaml:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addAnnotatedRegions): Deleted.

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

(WebCore::RenderLayer::scrollTo):
(WebCore::RenderLayer::setHasHorizontalScrollbar):
(WebCore::RenderLayer::setHasVerticalScrollbar):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::setHasVerticalScrollbar):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addAnnotatedRegions): Deleted.
(WebCore::RenderObject::collectAnnotatedRegions): Deleted.

  • rendering/RenderObject.h:

(WebCore::AnnotatedRegionValue::operator== const): Deleted.
(WebCore::AnnotatedRegionValue::operator!= const): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::initialDashboardRegions): Deleted.
(WebCore::RenderStyle::noneDashboardRegions): Deleted.
(WebCore::RenderStyle::setDashboardRegion): Deleted.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::dashboardRegions const): Deleted.
(WebCore::RenderStyle::setDashboardRegions): Deleted.

  • rendering/style/StyleDashboardRegion.h: Removed.
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::setRequestHeader):
(WebCore::XMLHttpRequest::usesDashboardBackwardCompatibilityMode const): Deleted.

  • xml/XMLHttpRequest.h:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetUseDashboardCompatibilityMode): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setUseDashboardCompatibilityMode): Deleted.

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

(WebKit::WebChromeClient::annotatedRegionsChanged): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

Removes implementation, but keeps privatly exported interfaces and enums
around until we can confirm there are no more users of them.

  • Configurations/FeatureDefines.xcconfig:
  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView initWithFrame:pluginPackage:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:element:]):

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::annotatedRegionsChanged): Deleted.

  • WebView/WebClipView.mm:

(-[WebClipView _focusRingVisibleRect]):
(-[WebClipView scrollWheel:]):

  • WebView/WebDashboardRegion.h:
  • WebView/WebDashboardRegion.mm:
  • WebView/WebHTMLView.mm:

(-[WebHTMLView _updateMouseoverWithEvent:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView setDataSource:]):

  • WebView/WebPreferences.mm:

(cacheModelForMainBundle):

  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.mm:

(-[WebView _needsPreHTML5ParserQuirks]):
(-[WebView _preferencesChanged:]):
(-[WebView _addScrollerDashboardRegions:]):
(-[WebView _dashboardRegions]):
(-[WebView _setDashboardBehavior:to:]):
(-[WebView _dashboardBehavior:]):
(-[WebView _addControlRect:clip:fromView:toDashboardRegions:]): Deleted.
(-[WebView _addScrollerDashboardRegionsForFrameView:dashboardRegions:]): Deleted.
(-[WebView _addScrollerDashboardRegions:from:]): Deleted.

  • WebView/WebViewData.h:
  • WebView/WebViewData.mm:

(-[WebViewPrivate init]):

  • WebView/WebViewPrivate.h:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::staticFunctions):
(setUseDashboardCompatibilityModeCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setUseDashboardCompatibilityMode): Deleted.

  • ImageDiff/cg/Configurations/Base.xcconfig:
  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DeviceScaleFactorInDashboardRegions.mm: Removed.
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setUseDashboardCompatibilityMode): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

  • TestExpectations:
  • cssom/cssvalue-comparison-expected.txt:
  • cssom/cssvalue-comparison.html:
  • fast/canvas/canvas-gradient-addStop-error-expected.txt:
  • fast/canvas/canvas-gradient-addStop-error.html:
  • fast/canvas/fill-stroke-clip-reset-path-expected.txt:
  • fast/canvas/fill-stroke-clip-reset-path.html:
  • fast/css/dashboard-regions-attr-crash-expected.txt: Removed.
  • fast/css/dashboard-regions-attr-crash.html: Removed.
  • fast/css/dashboard-regions-undefined-length-assertion-expected.txt: Removed.
  • fast/css/dashboard-regions-undefined-length-assertion.html: Removed.
  • fast/xmlhttprequest/set-dangerous-headers-in-dashboard-expected.txt: Removed.
  • fast/xmlhttprequest/set-dangerous-headers-in-dashboard.html: Removed.
  • http/tests/xmlhttprequest/default-content-type-dashboard-expected.txt: Removed.
  • http/tests/xmlhttprequest/default-content-type-dashboard.html: Removed.
  • http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard-expected.txt: Removed.
  • http/tests/xmlhttprequest/svg-created-by-xhr-allowed-in-dashboard.html: Removed.
  • legacy-animation-engine/cssom/cssvalue-comparison-expected.txt:
  • legacy-animation-engine/cssom/cssvalue-comparison.html:
  • mathml/mathml-in-dashboard-expected.txt: Removed.
  • mathml/mathml-in-dashboard.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/mathml/mathml-in-dashboard-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/fast/css/dashboard-region-parser-expected.txt: Removed.
  • platform/mac/fast/css/dashboard-region-parser.html: Removed.
  • platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk-expected.txt: Removed.
  • platform/mac/fast/dom/HTMLImageElement/dashboard-src-quirk.html: Removed.
  • platform/mac/mathml/mathml-in-dashboard-expected.png: Removed.
  • platform/mac/mathml/mathml-in-dashboard-expected.txt: Removed.
  • platform/mac/svg/custom/embedded-svg-disallowed-in-dashboard-expected.png: Removed.
  • platform/mac/svg/custom/manually-parsed-embedded-svg-disallowed-in-dashboard-expected.png: Removed.
  • platform/mac/svg/custom/manually-parsed-svg-disallowed-in-dashboard-expected.png: Removed.
  • platform/mac/svg/custom/svg-disallowed-in-dashboard-object-expected.png: Removed.
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • svg/custom/embedded-svg-allowed-in-dashboard-expected.txt: Removed.
  • svg/custom/embedded-svg-allowed-in-dashboard.xml: Removed.
  • svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard-expected.txt: Removed.
  • svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html: Removed.
  • svg/custom/manually-parsed-svg-allowed-in-dashboard-expected.txt: Removed.
  • svg/custom/manually-parsed-svg-allowed-in-dashboard.html: Removed.
  • svg/custom/svg-allowed-in-dashboard-object-expected.txt: Removed.
  • svg/custom/svg-allowed-in-dashboard-object.html: Removed.
2:53 PM Changeset in webkit [246284] by Kocsen Chung
  • 7 edits in branches/safari-608.1.27.20-branch/Source

Versioning.

2:48 PM Changeset in webkit [246283] by Kocsen Chung
  • 1 copy in branches/safari-608.1.27.20-branch

New branch.

2:35 PM Changeset in webkit [246282] by Ryan Haddad
  • 11 edits in trunk/Tools

Tool binaries like WebKitTestRunner have too aggressive stripping, resulting in non-symbolicated crash logs
https://bugs.webkit.org/show_bug.cgi?id=198616
rdar://problem/36386573

Patch by Alexey Proskuryakov <ap@apple.com> on 2019-06-10
Reviewed by David Kilzer.

Adding an explicit STRIP_STYLE to appropriate xcconfigs.

  • DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
  • DumpRenderTree/mac/Configurations/DumpRenderTreeApp.xcconfig:
  • DumpRenderTree/mac/Configurations/LayoutTestHelper.xcconfig:
  • ImageDiff/cg/Configurations/ImageDiff.xcconfig:
  • MiniBrowser/Configurations/MiniBrowser.xcconfig:
  • MobileMiniBrowser/Configurations/MobileMiniBrowser.xcconfig:
  • TestWebKitAPI/Configurations/TestWTF.xcconfig:
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:
2:29 PM Changeset in webkit [246281] by Ryan Haddad
  • 5 edits in trunk/LayoutTests

[ iOS Sim WK2 ] Layout Test editing/deleting/delete-emoji* is failing

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations: Remove failure expectation.
  • platform/ios/editing/deleting/delete-emoji-1-expected.txt: Rebaseline test.
  • platform/ios/editing/deleting/delete-emoji-9-expected.txt: Ditto.
  • platform/ios/editing/deleting/delete-emoji-expected.txt: Ditto.
2:18 PM Changeset in webkit [246280] by Devin Rousso
  • 2 edits in trunk/Source/JavaScriptCore

Web Automation: add notifications for when remote automation is enabled/disabled
https://bugs.webkit.org/show_bug.cgi?id=198703
<rdar://problem/50588975>

Reviewed by Timothy Hatcher.

  • inspector/remote/RemoteInspectorConstants.h:
2:13 PM Changeset in webkit [246279] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r244268): Web Inspector: Styles: navigating from Computed to Styles doesn't work
https://bugs.webkit.org/show_bug.cgi?id=198508
<rdar://problem/51375503>

Reviewed by Matt Baker.

It didn't work because the detached sidebar panel tried to access its parent view (this.parentSidebar).

  • UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:

(WI.ComputedStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty): Added.
(WI.ComputedStyleDetailsSidebarPanel):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty): Deleted.
Move computedStyleDetailsPanelShowProperty to ComputedStyleDetailsSidebarPanel since it's the only
panel where it's needed.

1:43 PM Changeset in webkit [246278] by Antti Koivisto
  • 6 edits
    2 adds in trunk

Event region should be set on scrolledContentsLayer if it exists
https://bugs.webkit.org/show_bug.cgi?id=198717
<rdar://problem/51572169>

Reviewed by Simon Fraser.

Source/WebCore:

Test: pointerevents/ios/touch-action-region-overflow.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):

Move to updateBackingAndHierarchy.

(WebCore::RenderLayerBacking::updateEventRegion):

  • Set event region on scrolledContentsLayer if it exists
  • Translate away the scroll offset
  • Get the offset from renderer from the GraphicsLayer so scrolling and non-scrolling case can be handled uniformly.
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):

Invoke updateEventRegion after geometry update so offsets are already available on GraphicsLayer.

LayoutTests:

  • pointerevents/ios/touch-action-region-backing-sharing-expected.txt:
  • pointerevents/ios/touch-action-region-overflow-expected.txt: Added.
  • pointerevents/ios/touch-action-region-overflow.html: Added.
1:30 PM Changeset in webkit [246277] by dbates@webkit.org
  • 7 edits in trunk

[CSP] Blob URLs should inherit their CSP policy
https://bugs.webkit.org/show_bug.cgi?id=198579
<rdar://problem/51366878>

Reviewed by Brent Fulgham.

Source/WebCore:

As per <https://w3c.github.io/webappsec-csp/#security-inherit-csp> (Editor's Draft, 28 February 2019) blob
URLs should inherit their CSP policy from their parent (if they have one).

Test: http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html

http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html

  • dom/Document.cpp:

(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner const): Return true if the document's URL
is a Blob URL.
(WebCore::Document::initContentSecurityPolicy): Take a pointer to a ContentSecurityPolicy object that
represents the previous document's CSP. We only make us of this if the current URL is a Blob URL or a data
URL. Otherwise, do what we do now and take the policy from the owner frame.

  • dom/Document.h:
  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin): Extend the lifetime of the previous document temporarily so that we can
pass its CSP to FrameLoader::didBeginDocument(). We need to do this extension because this function calls
FrameLoader::clear(), which can destroy the previous document and its ContentSecurityPolicy object. This
extension is also no different than if this function was called with a non-null ownerDocument except that
in that case it is the caller that extends the previous document's lifetime. Although it is tempting to
make use of ownerDocument to fix this bug by having the caller of begin() pass the previous document as
the ownerDocument when the new document's url (the one we are begin()ing) is a Blob URL. The ownerDocument
concept would privilege the Blob URL more than necessary; we only need to inherit the CSP policy from the
previous document for a Blob URL, not inherit the cookie URL or strict mixed content checking bit, etc.
We could make ContentSecurityPolicy ref-counted or even steal the ContentSecurityPolicy object from the
previous document. The latter is not of the question as a future enhancement, but the former seemed excessive
as a way to avoid extending the lifetime of the previous document because this would be the *only* call site
that actaully takes out a second ref of a ContentSecurityPolicy object. In general, shared ownership of
a ContentSecurityPolicy object does not make sense.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument): Pass the specified content security policy through to
Document::initContentSecurityPolicy().

  • loader/FrameLoader.h:

LayoutTests:

Add tests to ensure that a self navigation to a Blob or Data URL inherits its CSP policy from
its parent document.

  • http/tests/security/contentSecurityPolicy/navigate-self-to-blob-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-blob.html: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-data-url-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/navigate-self-to-data-url.html: Added.
1:11 PM Changeset in webkit [246276] by Wenson Hsieh
  • 5 edits in trunk

[iOS] fast/xsl tests are flaky when run after certain viewport shrink-to-fit tests
https://bugs.webkit.org/show_bug.cgi?id=198699
<rdar://problem/50501718>

Reviewed by Simon Fraser.

Source/WebKit:

Lift logic that sets the "IsKnownToLayOutWiderThanViewport" flag out of resetViewportDefaultConfiguration, and
into didCommitLoad instead (along with other logic for resetting viewport arguments). The previous method,
resetViewportDefaultConfiguration, was being triggered very frequently undo didReceiveMobileDocType, causing the
shrink-to-fit heuristic to sometimes take no effect. The original intention here was simply to reset the flag
upon page load.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetViewportDefaultConfiguration):

Tools:

Add logic to platformResetPreferencesToConsistentValues, to reset the "ShouldIgnoreMetaViewport" preference.
While this is already being adjusted in platformConfigureViewForTest using the correct, TestOptions, this might
happen too late, allowing the shrink-to-fit-content heuristic to unexpectedly kick in on tests where testing
viewport parameters are used.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
(WTR::TestController::platformConfigureViewForTest):

1:10 PM Changeset in webkit [246275] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for non-DFG configurations, part 2
https://bugs.webkit.org/show_bug.cgi?id=198023

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeUnconditionally):

1:02 PM Changeset in webkit [246274] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for non-DFG configurations
https://bugs.webkit.org/show_bug.cgi?id=198023

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeUnconditionally):

12:58 PM Changeset in webkit [246273] by sbarati@apple.com
  • 14 edits
    1 copy
    5 adds in trunk

[WHLSL] Auto initialize local variables
https://bugs.webkit.org/show_bug.cgi?id=198426

Reviewed by Myles Maxfield.

Source/WebCore:

This patch implements zero-filling for local variables in two parts:

  1. We add a new pass, autoInitializeVariables, which makes any variable declaration

without an initializer call the default constructor for the variable's type.
Since we auto generate the default constructor, it's a native function whose
implementation we control.

  1. Each native constructor is implemented as a memset(&value, sizeof(value), 0).

This memset is an inlined loop in each constructor. The reason this turns
everything into zero is that for every primitive type, the "zero" value is
represented as all zeroes in memory: float, int, pointers, etc.

Since our ability to test some of this is limited, I opened a follow-up bug to
test this more:
https://bugs.webkit.org/show_bug.cgi?id=198413

Tests: webgpu/whlsl-zero-initialize-values-2.html

webgpu/whlsl-zero-initialize-values.html

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

(WebCore::WHLSL::AST::VariableDeclaration::setInitializer):

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

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

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

(WebCore::WHLSL::Metal::writeNativeFunction):

  • Modules/webgpu/WHLSL/WHLSLASTDumper.h:
  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp: Added.

(WebCore::WHLSL::AutoInitialize::AutoInitialize):
(WebCore::WHLSL::AutoInitialize::visit):
(WebCore::WHLSL::autoInitializeVariables):

  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.h: Added.
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::checkOperatorOverload):
(WebCore::WHLSL::Checker::visit):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::inferTypesForCallImpl):
(WebCore::WHLSL::inferTypesForCall):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.h:
  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::prepareShared):

  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.cpp:

(WebCore::WHLSL::resolveFunctionOverloadImpl):
(WebCore::WHLSL::resolveFunctionOverload):

  • Modules/webgpu/WHLSL/WHLSLResolveOverloadImpl.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

  • webgpu/whlsl-zero-initialize-values-2-expected.html: Added.
  • webgpu/whlsl-zero-initialize-values-2.html: Added.
  • webgpu/whlsl-zero-initialize-values-expected.html: Added.
  • webgpu/whlsl-zero-initialize-values.html: Added.
12:49 PM Changeset in webkit [246272] by ysuzuki@apple.com
  • 16 edits
    1 add in trunk

[JSC] UnlinkedCodeBlock should be eventually jettisoned in VM mini mode
https://bugs.webkit.org/show_bug.cgi?id=198023

Reviewed by Saam Barati.

JSTests:

  • stress/reparsing-unlinked-codeblock.js: Added.

(shouldBe):
(hello):

Source/JavaScriptCore:

While CodeBlock is periodically jettisoned, UnlinkedCodeBlock and UnlinkedFunctionExecutable can be retained almost forever in certain type of applications.
When we execute a program, which has UnlinkedProgramCodeBlock retained in CodeCache. And UnlinkedProgramCodeBlock holds array of UnlinkedFunctionExecutable.
And UnlinkedFunctionExecutables hold UnlinkedFunctionCodeBlocks once it is generated. So eventually, this tree gets larger and larger until we purge
UnlinkedProgramCodeBlock from CodeCache. This is OK in the browser case. We navigate to various other pages, and UnlinkedProgramCodeBlocks should eventually
be pruned from CodeCache with the new ones. So this tree won't be retained forever. But the behavior is different in the other applications that do not have
navigations. If they only have one program which holds all, we basically retain this tree during executing this application. The same thing can happen in
web applications which does not have navigation and keeps alive for a long time. Once we hit CodeCache limit by periodically executing a new script, we will
hit the uppermost of memory footprint. But until that, we increase our memory footprint.

However, destroying these UnlinkedCodeBlocks and UnlinkedFunctionExecutables causes a tricky problem. In the browser environment, navigation can happen at any
time. So even if the given UnlinkedCodeBlock seems unused in the current page, it can be used when navigating to a new page which is under the same domain.
One example is initializing function in a script. It is only executed once per page. So once it is executed, it seems that this UnlinkedCodeBlock is unused.
But this will be used when we navigate to a new page. Pruning code blocks based on usage could cause performance regression.

But if our VM is mini VM mode, the story is different. In mini VM mode, we focus on memory footprint rather than performance e.g. daemons. The daemon never
reuse these CodeCache since we do not have the navigation.

This patch logically makes UnlinkedFunctionExecutable -> UnlinkedCodeBlock reference weak when VM is mini mode. If UnlinkedCodeBlock is used in previous GC
cycle, we retain it. But if it is not used, and if UnlinkedFunctionExecutable is only the cell keeping UnlinkedCodeBlock alive, we destroy it. It is a
heuristic. In a super pathological case, it could increase memory footprint. Consider the following example.

UnlinkedFunctionExecutable(A1) -> UnlinkedCodeBlock(B1) -> UnlinkedFunctionExecutable(C1) -> UnlinkedCodeBlock(D1)


CodeBlock(E1)

We could delete A1, B1, and C1 while keeping D1. But if we eventually re-execute the same code corresponding to A1, B1, C1, they will be newly created, and
we will create duplicate UnlinkedCodeBlock and instructions stream for D1.

UnlinkedCodeBlock(D1)


CodeBlock(E1)

UnlinkedFunctionExecutable(A2) -> UnlinkedCodeBlock(B2) -> UnlinkedFunctionExecutable(C2) -> UnlinkedCodeBlock(D2)

But this does not happen in practice and even it happens, we eventually discard D1 and D2 since CodeBlock E1 will be jettisoned anyway. So in practice, we do
not see memory footprint increase. We tested it in Gmail and the target application, but both said memory footprint reduction (30 MB / 400 MB and 1 MB /6 MB).
While this affects on performance much on tests which has navigation (1-3 % regression in Speedometer2, note that JetStream2 does not show regression in x64,
while it is not enabling mini mode), we do not apply this to non mini mode VM until we come up with a good strategy to fasten performance of re-generation.
Personally I think flushing destroyed UnlinkedCodeBlock to the disk sounds promising.

If UnlinkedCodeBlock is generated from bytecode cache, we do not make UnlinkedFunctionExecutable -> UnlinkedCodeBlock link weak because the decoder of the bytecode
cache assumes that generated JSCells won't be destroyed while the parent cells of that cell are live. This is true in the current implementation, and this assumption
will be broken with this patch. So, for now, we do not make this link weak. Currently, our target application does not use bytecode cache so it is OK.

This patch also introduce simple heuristic. We are counting UnlinkedCodeBlock's age. And once the age becomes maximum size, we make UnlinkedFunctionExecutable ->
UnlinkedCodeBlock link weak. We also use execution counter information to reset this age: CodeBlock will reset undelying UnlinkedCodeBlock's age if it has executed
While this heuristic is quite simple, it has some effect in practice. Basically what happens with this heuristic is that UnlinkedFunctionExecutable ->
UnlinkedCodeBlock link strong. When GC happens, we are executing some CodeBlocks, which become live. And ScriptExecutables -> UnlinkedFunctionExecutables held
by this CodeBlock become also live. Then UnlinkedFunctionExecutables can mark the child UnlinkedCodeBlocks if it is not so old.
If some of parent UnlinkedFunctionExecutable becomes dead, child UnlinkedCodeBlocks tends to be dead unless some live CodeBlock holds it. But it is OK for a first
heuristics since this means that parent code block is now considered old, reachable UnlinkedCodeBlock will be used when the parent is executed again. So destroying
the tree is OK even if the tree may include some new UnlinkedCodeBlock. While we could make more sophisticated mechanism to manage these lifetime, I think this is a
good starting point.

Based on measurement, we pick 7 as a maximum age. If we pick 0, we can get more memory reduction (1 - 1.5 MB!), while we ends up reparsing codes so many times.
It seems that 7 can reduce fair amount of memory while doing small # of reparsing on average (usually, 1, 2. Sometimes, 100. But not 300, which is the case in 0).
If we want to get more memory reduction for the sake of performance, we could decrease this age limit.

Since we do not have an automated script right now so it is a bit difficult to measure memory footprint precisely. But manual testing shows that this patch improves
memory footprint of our target application from about 6.5 MB to about 5.9 MB.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finalizeUnconditionally):

  • bytecode/CodeBlock.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildren):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::age const):
(JSC::UnlinkedCodeBlock::resetAge):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
(JSC::UnlinkedFunctionExecutable::decodeCachedCodeBlocks):
(JSC::UnlinkedFunctionExecutable::finalizeUnconditionally):

  • bytecode/UnlinkedFunctionExecutable.h:
  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):

  • runtime/CachedTypes.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • runtime/CodeSpecializationKind.h:
  • runtime/Options.h:
  • runtime/VM.cpp:

(JSC::VM::isInMiniMode): Deleted.

  • runtime/VM.h:

(JSC::VM::isInMiniMode):
(JSC::VM::useUnlinkedCodeBlockJettisoning):

Tools:

  • Scripts/run-jsc-stress-tests:
12:32 PM Changeset in webkit [246271] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "Copy Path to Property" doesn't work with multiline keys
https://bugs.webkit.org/show_bug.cgi?id=198691

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-06-10
Reviewed by Matt Baker.

Correctly escape line terminators to prevent doubleQuotedString from returning malformed strings.

  • UserInterface/Base/Utilities.js: Use JSON.stringify.
12:19 PM Changeset in webkit [246270] by timothy@apple.com
  • 28 edits
    2 adds in trunk

Integrate dark mode support for iOS.
https://bugs.webkit.org/show_bug.cgi?id=198687
rdar://problem/51545643

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Tests: css-dark-mode

  • Configurations/FeatureDefines.xcconfig:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::showLetterpressedGlyphsWithAdvances):

  • platform/ios/LocalCurrentTraitCollection.h: Added.
  • platform/ios/LocalCurrentTraitCollection.mm: Added.
  • platform/ios/PasteboardIOS.mm:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor const):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:
  • pal/spi/ios/UIKitSPI.h:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _effectiveAppearanceIsDark]):
(-[WKWebView _effectiveAppearanceIsInactive]):
(-[WKWebView _dynamicUserInterfaceTraitDidChange]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::effectiveAppearanceIsDark const):
(WebKit::PageClientImpl::effectiveAppearanceIsInactive const):

  • UIProcess/ios/WKPasswordView.mm:

(-[WKPasswordView showInScrollView:]):
(configureScrollView): Deleted.

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • platform/ios/TestExpectations:
11:01 AM Changeset in webkit [246269] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: xcrun simctl spawn * launchctl print system output is not utf-8
https://bugs.webkit.org/show_bug.cgi?id=198723

Reviewed by Aakash Jain.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDevice.is_usable): Do not decode 'print system' output, it's already ASCII.

10:59 AM Changeset in webkit [246268] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r246025): prototypes in object previews are visible even when setting showOnlyJSON
https://bugs.webkit.org/show_bug.cgi?id=198721

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree.properties-only.json-only .object-tree-property.prototype-property): Added.
(.object-tree.properties-only.json-only .object-tree-property .prototype-property): Deleted.

10:41 AM Changeset in webkit [246267] by ajuma@chromium.org
  • 2 edits in trunk/Source/WebCore

REGRESSION (r245396): Page load time performance regression
https://bugs.webkit.org/show_bug.cgi?id=198382

Reviewed by Per Arne Vollan.

Use a delay of 2000ms instead of 500ms when scheduling rendering updates
for IntersectionObserver targets added during page load. This is a
speculative fix for a page load time regression caused by r245396 and
still not fixed after r245958.

  • dom/Document.cpp:

(WebCore::Document::scheduleTimedRenderingUpdate):

10:16 AM Changeset in webkit [246266] by Adrian Perez de Castro
  • 16 edits in trunk/Source/JavaScriptCore

[JSC] Linker fails when unified sources are not in use
https://bugs.webkit.org/show_bug.cgi?id=198722

Reviewed by Keith Miller.

Added missing inclusions of headers in several files which make use of inline functions.

  • b3/B3AtomicValue.cpp:
  • b3/B3BlockInsertionSet.cpp:
  • b3/B3FenceValue.cpp:
  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3PureCSE.cpp:
  • b3/B3StackmapValue.cpp:
  • b3/B3SwitchValue.cpp:
  • b3/B3UseCounts.cpp:
  • b3/B3VariableValue.cpp:
  • b3/B3WasmAddressValue.cpp:
  • b3/B3WasmBoundsCheckValue.cpp:
  • ftl/FTLCompile.cpp:
  • wasm/WasmSectionParser.cpp:
  • wasm/WasmTable.cpp:
  • wasm/WasmValidate.cpp:
9:35 AM Changeset in webkit [246265] by keith_miller@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Make new Symbol/Promise API public
https://bugs.webkit.org/show_bug.cgi?id=198709

Reviewed by Saam Barati.

We also need to #ifdef some tests when building for older
platforms because the signatures for some methods are outdated on
those platforms.

  • API/JSObjectRef.h:
  • API/JSObjectRefPrivate.h:
  • API/JSValue.h:
  • API/JSValuePrivate.h:
  • API/JSValueRef.h:
  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

9:16 AM Changeset in webkit [246264] by sihui_liu@apple.com
  • 6 edits in trunk

[WKHTTPCookieStore getAllCookies:] may return duplicate cookies
https://bugs.webkit.org/show_bug.cgi?id=198635
<rdar://problem/46010232>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: WebKit.WKHTTPCookieStoreWithoutProcessPoolDuplicates

  • platform/Cookie.h:

(WebCore::Cookie::isKeyEqual const):
(WTF::HashTraits<WebCore::Cookie>::isEmptyValue):

Source/WebKit:

When there is no process pool, we store cookies set in memory with HashSet m_pendingCookies of WebsiteDataStore.

HashSet does not contain duplicate Cookies that are completely identical, but it may contain Cookies that have
all the other properties identical other than value. This is not correct because Cookies with same name, domain
and path should be treated as the same cookie. When a cookie is set via API, we should either insert the
cookie into m_pendingCookies if the cookie does not exist, or update the cookie value if it already exists.

Note that we still use HashSet with CookieHash for m_pendingCookies because in cookie deletion, we only delete
cookie when there is a complete match. If some cookie from m_pendingCookies has all other properties the same as
the cookie specified in the deletion function, but the value is different, it will not be removed.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::addPendingCookie):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(areCookiesEqual):
(TEST):

8:59 AM Changeset in webkit [246263] by youenn@apple.com
  • 6 edits
    2 adds
    1 delete in trunk

Call was negotiated with H264 Base Profile 42e01f but encoded in High Profile
https://bugs.webkit.org/show_bug.cgi?id=195124
<rdar://problem/48453085>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Use VTB directly instead of VCP when baseline is requested.
For platforms supporting the VCP-in-VTB API, use VCP for high profile, VTB for baseline.
For platforms not supporting the VCP-in-VTB API, use regular VTB for both baseline and high profile.
On MacOS, if VTB session creation fails, use VCP as a fallback.
Keep VTB-only code path for non internal builds.

  • Source/webrtc/sdk/WebKit/EncoderUtilities.h: Removed.
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCSingleVideoEncoderH264 initWithCodecInfo:simulcastIndex:]):
(-[RTCSingleVideoEncoderH264 hasCompressionSession]):
(-[RTCSingleVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCSingleVideoEncoderH264 resetCompressionSessionIfNeededWithFrame:]):
(-[RTCSingleVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(-[RTCSingleVideoEncoderH264 configureCompressionSession]):
(-[RTCSingleVideoEncoderH264 destroyCompressionSession]):
(-[RTCSingleVideoEncoderH264 setEncoderBitrateBps:]):

  • Source/webrtc/sdk/objc/components/video_codec/helpers.cc:
  • Source/webrtc/sdk/objc/components/video_codec/helpers.h:

LayoutTests:

  • webrtc/video-h264-expected.txt: Added.
  • webrtc/video-h264.html: Added.
7:42 AM Changeset in webkit [246262] by Adrian Perez de Castro
  • 2 edits
    2 deletes in trunk/Tools

[JHBuild] Bump shared-mime-info to version ≥ 1.6
https://bugs.webkit.org/show_bug.cgi?id=198714

Reviewed by Carlos Garcia Campos.

  • gtk/jhbuild.modules: Bump shared-mime-info version to 1.10.
  • gtk/patches/shared-mime-info-xht-glob.patch: Removed.
  • gtk/patches/shared-mime-info-xhtml-magic.patch: Removed.
7:39 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
7:39 AM Changeset in webkit [246261] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.24

Merged r245848 - [MSE][GStreamer] update the readyState correctly in MediaPlayerPrivateGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=197834

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2019-05-28
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The buffering state and the m_downloadFinished boolean aren't supported in the MSE case.
When the readyState is already "HaveEnoughData", we don't want to revert it to "HaveFutureData",
or else the MediaPlayer would send a "canplay" event instead of a "canplaythrough".

Test: media/media-source/media-source-canplaythrough-event.html

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

(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):

LayoutTests:

Add a new test that checks if the MediaElement receives the "canplaythrough"
event when the media content is entirely injected to MSE sourceBuffer.

  • media/media-source/media-source-canplaythrough-event-expected.txt: Added.
  • media/media-source/media-source-canplaythrough-event.html: Added.
7:39 AM Changeset in webkit [246260] by Adrian Perez de Castro
  • 9 edits in releases/WebKitGTK/webkit-2.24

Merged r245514 - [GLIB] Crash when instantiating a js object registered with jsc_context_register_class on window object cleared
https://bugs.webkit.org/show_bug.cgi?id=198037

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This happens because JSCClass is keeping a pointer to the JSCContext used when the class is registered, and the
context can be destroyed before the class. We can't a reference to the context, because we don't really want to
keep it alive. The life of the JSCClass is not attached to the JSCContext, but to its wrapped global context, so
we can keep a pointer to the JSGlobalContextRef instead and create a new JSCContext wrapping it when
needed. This patch is also making the context property of JSCClass non-readable, which was always the intention,
that's why there isn't a public getter in the API.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::construct): Pass the context to jscClassGetOrCreateJSWrapper().

  • API/glib/JSCClass.cpp:

(jscClassGetProperty): Remove the getter for context property.
(jscClassSetProperty): Get the JSGlobalContextRef from the given JSCContext.
(jsc_class_class_init): Make context writable only.
(jscClassCreate): Use the passed in context instead of the member.
(jscClassGetOrCreateJSWrapper): It receives now the context as parameter.
(jscClassCreateContextWithJSWrapper): Ditto.
(jscClassCreateConstructor): Get or create a JSCContext for our JSGlobalContextRef.
(jscClassAddMethod): Ditto.
(jsc_class_add_property): Ditto.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:

(jsc_context_evaluate_in_object): Pass the context to jscClassCreateContextWithJSWrapper().

  • API/glib/JSCValue.cpp:

(jsc_value_new_object): Pass the context to jscClassGetOrCreateJSWrapper().

Tools:

Add a test case to check the crash is fixed.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionWindowObjectCleared):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(windowObjectCleared):

7:39 AM Changeset in webkit [246259] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.24/Source

Merged r245681 - Fix a few missing header inclusions often masked by by unified sources
https://bugs.webkit.org/show_bug.cgi?id=198180

Reviewed by Eric Carlson.

Source/JavaScriptCore:

  • assembler/PerfLog.cpp: Add missing <array> header inclusion.
  • wasm/WasmBinding.cpp: Add missing "WasmCallingConvention.h" inclusion.

Source/WebCore:

  • editing/markup.h: Add missing "FloatSize.h" inclusion.
  • html/FeaturePolicy.cpp: Add missing "HTMLParserIdioms.h" inclusion.
  • platform/text/TextCodec.cpp: Add missing <cstdio> inclusion.
7:38 AM Changeset in webkit [246258] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.24/Source/WebKit

Merged r245676 - [WPE] Build fails with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF
https://bugs.webkit.org/show_bug.cgi?id=198125

Reviewed by Philippe Normand.

  • UIProcess/glib/WebProcessPoolGLib.cpp: Guard the inclusion of GStreamerCommon.h with USE(GSTREAMER).
  • WebProcess/glib/WebProcessGLib.cpp: Ditto.
7:04 AM Changeset in webkit [246257] by Philippe Normand
  • 8 edits in trunk

[WPE][Qt] Port to new wpe_fdo_egl_exported_image API
https://bugs.webkit.org/show_bug.cgi?id=198713

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::WPEQtViewBackend):
(WPEQtViewBackend::texture):
(WPEQtViewBackend::displayImage):

  • UIProcess/API/wpe/qt/WPEQtViewBackend.h:

Tools:

  • flatpak/org.webkit.WPEModules.yaml: Include wpebackend-fdo

patches currently used in JHBuild.

6:17 AM Changeset in webkit [246256] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[GTK][Flatpak] webkit-build fails due to missing libwpe in Flatpak environment
https://bugs.webkit.org/show_bug.cgi?id=198711

Reviewed by Philippe Normand.

  • flatpak/org.webkit.GTK.yaml: Also include modules from

org.webkit.WPEModules.yaml, which brings in libwpe and WPEBackend-fdo

3:03 AM EnvironmentVariables edited by Philippe Normand
(diff)
3:02 AM EnvironmentVariables edited by Philippe Normand
(diff)
3:01 AM EnvironmentVariables edited by Philippe Normand
(diff)
12:19 AM Changeset in webkit [246255] by zandobersek@gmail.com
  • 3 edits
    2 adds in trunk/Tools

Unreviewed follow-up to r246148. Add another WPEBackend-fdo patch that
avoids double-free condition that's causing bots to exit early.

  • gtk/jhbuild.modules:
  • gtk/wpebackend-fdo-view-backend-exportable-private-don-t-double-free-ca.patch: Added.
  • wpe/jhbuild.modules:
  • wpe/wpebackend-fdo-view-backend-exportable-private-don-t-double-free-ca.patch: Added.

Jun 9, 2019:

11:25 PM Changeset in webkit [246254] by bshafiei@apple.com
  • 2 edits in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246248. rdar://problem/51538088

[iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=198692
<rdar://problem/51538088>

Reviewed by Maciej Stachowiak.

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess on state change.

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

11:25 PM Changeset in webkit [246253] by bshafiei@apple.com
  • 3 edits in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246239. rdar://problem/51462498

Drag starting state can get stuck even though the drag has ended
https://bugs.webkit.org/show_bug.cgi?id=198696
<rdar://problem/51556045>

Reviewed by Wenson Hsieh.

In iOS 13, we're seeing cases of the DragSession not
correctly ending, and thus leaving m_isStartingDrag in
an incorrect state. Temporarily force this to be reset
in ::dragEnded while investigating

  • UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging while here. (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dragEnded):

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

11:25 PM Changeset in webkit [246252] by bshafiei@apple.com
  • 17 edits
    6 copies in branches/safari-608.1.27-branch/Source/WebKit

Cherry-pick r246224. rdar://problem/51462498

Introduce new SPI for context menus on iOS
https://bugs.webkit.org/show_bug.cgi?id=198590

Reviewed by Tim Horton.

Also introduce WKContextMenuElementInfo which is API.
This is part of <rdar://problem/51003503>

  • Shared/API/APIObject.h:
  • Shared/API/Cocoa/WebKit.h:
  • Shared/Cocoa/APIObject.mm: (API::Object::newObject):
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIContextMenuElementInfo.cpp: Added. (API::ContextMenuElementInfo::ContextMenuElementInfo):
  • UIProcess/API/APIContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: Added. (-[WKContextMenuElementInfo linkURL]): (-[WKContextMenuElementInfo _apiObject]): (-[WKContextMenuElementInfo _activatedElementInfo]):
  • UIProcess/API/Cocoa/WKContextMenuElementInfoInternal.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfoPrivate.h: Added.
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]): (-[_WKActivatedElementInfo isAnimatedImage]):
  • UIProcess/ios/WKActionSheetAssistant.h:
  • UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant defaultActionsForLinkSheet:]): (-[WKActionSheetAssistant defaultActionsForImageSheet:]):
  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • WebKit.xcodeproj/project.pbxproj:

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

11:25 PM Changeset in webkit [246251] by bshafiei@apple.com
  • 7 edits
    2 adds in branches/safari-608.1.27-branch

Cherry-pick r246213. rdar://problem/50114230

Restrict fast clicks everywhere to desktop content mode
https://bugs.webkit.org/show_bug.cgi?id=198610
<rdar://problem/50114230>

Reviewed by Dean Jackson.

Source/WebKit:

We now set a new allowsFastClicksEverywhere property on the WebPageProxy when the content mode changes, set to true
when we're in desktop browsing mode. We now check on this property to opt into the fast clicks everywhere behavior.

This patch had been reverted once because it yielded some regressions in existing tests, notably under
fast/events/touch/ios/content-observation. This updated patch addresses this by ensuring the gesture recognizers
used for double-tap-to-zoom are disabled in -[WKContentViewInteraction _didStartProvisionalLoadForMainFrame]
to ensure that two tests dispatching a tap at the same location don't yield the recognition of a double-tap
rathern than the recognition of two single taps.

  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::allowsFastClicksEverywhere const):
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]): (_didStartProvisionalLoadForMainFrame):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

LayoutTests:

Add a new test that enables fast clicks but also sets a mobile content mode.

We also mark fast/visual-viewport/ios/min-scale-greater-than-one.html as non-flaky
since the flakiness was due to the fast clicks everywhere behavior being enabled on iPhone.

Finally, we can now remove the hack where ui.tap() in the Pointer Events utility returned
a promise with a one-second delay since the issue of double-taps being recognized instead of
two consecutive single taps across two tests has been resolved.

  • fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
  • fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • pointerevents/utils.js:

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

11:25 PM Changeset in webkit [246250] by bshafiei@apple.com
  • 40 edits
    1 move
    1 add
    1 delete in branches/safari-608.1.27-branch

Cherry-pick r246118. rdar://problem/50114230

Upstream content mode support into open source from WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=198484
<rdar://problem/51355671>

Reviewed by Andy Estes.

Source/WebCore:

  • Modules/modern-media-controls/media/media-controller.js: (MediaController.prototype.get layoutTraits):

Adjust modern media controls code to use iOS-style controls on PLATFORM(IOS_FAMILY), instead of depending on the
navigator's platform name or the presence of touch events.

  • page/Quirks.cpp: (WebCore::shouldSuppressAutocorrectionAndAutocaptializationInHiddenEditableAreasForHost): (WebCore::shouldEmulateUndoRedoInHiddenEditableAreasForHost):
  • page/SettingsBase.h:
  • rendering/RenderThemeIOS.mm: (WebCore::RenderThemeIOS::mediaControlsScript):

Source/WebCore/PAL:

Add some new constants to MobileGestaltSPI.h.

  • pal/spi/ios/MobileGestaltSPI.h:

Source/WebKit:

Move code for handling WKContentMode into open source. No change in behavior, for internal builds.

  • Shared/API/Cocoa/WebKit.apinotes:
  • Shared/WebContentMode.h: Renamed from Source/WebKit/Shared/WebCompatibilityMode.h.
  • Shared/WebPreferences.yaml:
  • UIProcess/API/APINavigation.h: (API::Navigation::setEffectiveContentMode): (API::Navigation::effectiveContentMode const): (API::Navigation::setEffectiveCompatibilityMode): Deleted. (API::Navigation::effectiveCompatibilityMode const): Deleted.
  • UIProcess/API/APINavigationClient.h: (API::NavigationClient::shouldBypassContentModeSafeguards const): (API::NavigationClient::shouldBypassCompatibilityModeSafeguards const): Deleted.
  • UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const):
  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigation.mm: (-[WKNavigation effectiveContentMode]):
  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm: (WebKit::contentMode): (WebKit::webContentMode): (-[WKWebpagePreferences _allowSiteSpecificQuirksToOverrideCompatibilityMode]): (-[WKWebpagePreferences _setAllowSiteSpecificQuirksToOverrideCompatibilityMode:]): (-[WKWebpagePreferences setPreferredContentMode:]): (-[WKWebpagePreferences preferredContentMode]):
  • UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::NavigationClient::shouldBypassContentModeSafeguards const): (WebKit::NavigationState::NavigationClient::shouldBypassCompatibilityModeSafeguards const): Deleted.
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies): (WebKit::WebPageProxy::effectiveCompatibilityModeAfterAdjustingPolicies): Deleted.
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingSupported): (WebKit::webViewSizeIsNarrow): (WebKit::desktopClassBrowsingRecommendedForRequest): (WebKit::desktopClassBrowsingRecommended): (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Change the "useModernCompatibilityMode" layout test option to instead be "contentMode", with values of either
"mobile" or "desktop".

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/ios/PreferredCompatibilityMode.mm: Removed.
  • TestWebKitAPI/ios/PreferredContentMode.mm: Added. (-[ContentModeNavigationDelegate setDecidePolicyForNavigationActionWithPreferences:]): (-[ContentModeNavigationDelegate decidePolicyForNavigationActionWithPreferences]): (-[ContentModeNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]): (+[WKWebpagePreferences preferencesWithContentMode:]): (-[WKWebView navigatorUserAgent]): (-[WKWebView navigatorPlatform]): (-[WKWebView loadTestPageNamed:withPolicyDecisionHandler:]): (-[WKWebView loadHTMLString:withPolicyDecisionHandler:]): (-[WKWebView loadTestPageNamed:andExpectEffectiveContentMode:withPolicyDecisionHandler:]): (-[NSString shouldContainStrings:]): (IPhoneUserInterfaceSwizzler::IPhoneUserInterfaceSwizzler): (IPhoneUserInterfaceSwizzler::phoneUserInterfaceIdiom): (TestWebKitAPI::setUpWebViewForPreferredContentModeTestingWithoutNavigationDelegate): (TestWebKitAPI::setUpWebViewForPreferredContentModeTesting): (TestWebKitAPI::makeContentModeDecisionHandler): (TestWebKitAPI::TEST):
  • WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView): (WTR::TestController::configureContentMode): (WTR::TestController::enableModernCompatibilityMode): Deleted.

LayoutTests:

Explicitly opt a few tests into desktop or mobile content mode.

  • fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html:
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html:
  • media/modern-media-controls/media-controller/ios/media-controller-ios-layout-traits-modern-compatibility-mode.html:
  • platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html:
  • platform/ipad/fast/viewport/empty-meta.html:
  • platform/ipad/fast/viewport/viewport-unchanged-by-minimum-effective-width-if-not-ignore-meta-viewport.html:
  • platform/ipad/media/modern-media-controls/media-documents/media-document-audio-ios-sizing.html:

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

7:22 PM Changeset in webkit [246249] by Fujii Hironori
  • 2 edits in trunk/Tools

[WinCairo][MiniBrowser] Disable MediaCapabilities until it's ready
https://bugs.webkit.org/show_bug.cgi?id=198655

Reviewed by Ross Kirsling.

MediaCapabilities is enabled by default for WK2, but WinCairo
doesn't implemented yet. Disable it in MiniBrowser.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::create):

5:25 PM Changeset in webkit [246248] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] ResourceLoadStatistics state is not properly relayed to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=198692
<rdar://problem/51538088>

Reviewed by Maciej Stachowiak.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setResourceLoadStatisticsEnabled): Message the NetworkProcess
on state change.

2:47 PM Changeset in webkit [246247] by bshafiei@apple.com
  • 3 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246216. rdar://problem/51345064

Fix non-iOS build after r246205
https://bugs.webkit.org/show_bug.cgi?id=198657

Reviewed by Brent Fulgham.
<rdar://problem/51345064>

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

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

2:16 PM Changeset in webkit [246246] by bshafiei@apple.com
  • 8 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246207. rdar://problem/51185518

Images are not resizing correctly when dragged to a message in 1/3 view
https://bugs.webkit.org/show_bug.cgi?id=198623
<rdar://problem/51185518>

Reviewed by Wenson Hsieh.

Mail's max-width: 100%; default style is in conflict with the preferred presentation size. This patch preserves the existing behaviour for Mail by
not setting the height (and rely on the width + aspect ratio).

  • editing/WebContentReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm: (WebCore::createFragmentForImageAttachment): (WebCore::WebContentReader::readImage): (WebCore::attachmentForFilePath): (WebCore::attachmentForData): (WebCore::WebContentReader::readFilePath): (WebCore::WebContentReader::readDataBuffer):
  • editing/gtk/EditorGtk.cpp: (WebCore::createFragmentFromPasteboardData):
  • editing/markup.cpp: (WebCore::createFragmentForImageAndURL):
  • editing/markup.h:
  • platform/Pasteboard.h: (WebCore::PasteboardWebContentReader::readFilePath): (WebCore::PasteboardWebContentReader::readImage): (WebCore::PasteboardWebContentReader::readDataBuffer):
  • platform/PasteboardItemInfo.h: (WebCore::PasteboardItemInfo::encode const): (WebCore::PasteboardItemInfo::decode):
  • platform/ios/PasteboardIOS.mm: (WebCore::Pasteboard::readPasteboardWebContentDataForType): (WebCore::Pasteboard::read): (WebCore::Pasteboard::readRespectingUTIFidelities):
  • platform/ios/PlatformPasteboardIOS.mm: (WebCore::PlatformPasteboard::informationForItemAtIndex):

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

2:15 PM Changeset in webkit [246245] by bshafiei@apple.com
  • 3 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246205. rdar://problem/51345064

Limit simulated mouse events on Google Maps to entering Street View
https://bugs.webkit.org/show_bug.cgi?id=198657
<rdar://problem/51345064>

Reviewed by Brent Fulgham.

  • page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const): (WebCore::Quirks::shouldDispatchSimulatedMouseEventsOnTarget const):
  • page/Quirks.h:

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

2:15 PM Changeset in webkit [246244] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.28.1/Source/WebCore

Cherry-pick r246099. rdar://problem/48006291

iPadOS: Google calendars new event picker moves and flickers in landscape with software keyboard
https://bugs.webkit.org/show_bug.cgi?id=198556

Reviewed by Wenson Hsieh.

Fix the issuse that it's really hard to create a new event using Google calendar on iPadOS with
a software keyboard enabled because tapping on date brings up software keyboard and erratically
shifts up/down the new event dialog/pane.

Add a site specific quirk to pretend these input elements have inputmode=none for now.

No new tests since this is a site specific quirk.

  • page/Quirks.cpp: (WebCore::Quirks::needsInputModeNoneImplicitly const):

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

2:15 PM Changeset in webkit [246243] by bshafiei@apple.com
  • 4 edits
    2 adds in tags/Safari-608.1.28.1

Cherry-pick r246096. rdar://problem/51375055

[ContentChangeObserver] Gmail text editing controls require two taps
https://bugs.webkit.org/show_bug.cgi?id=198541
<rdar://problem/51375055>

Reviewed by Simon Fraser.

Source/WebCore:

When the animation completes we should also check if the newly visible content is also clickable and report it accordingly.
When the animated content is not clickable, we need to proceed with click instead of stopping at hover.

Test: fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-no-clickable.html

  • page/ios/ContentChangeObserver.cpp: (WebCore::isConsideredClickable): (WebCore::ContentChangeObserver::didFinishTransition): (WebCore::ContentChangeObserver::adjustObservedState): (WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope): (WebCore::ContentChangeObserver::StyleChangeScope::isConsideredClickable const): Deleted. -> Turn it into a static function so that didFinishTransition could call it as well.
  • page/ios/ContentChangeObserver.h:

LayoutTests:

  • fast/events/touch/ios/content-observation/100ms-delay-10ms-transition-on-mousemove-no-clickable.html: Added.

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

2:06 PM Changeset in webkit [246242] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.28.1/Source

Versioning.

1:56 PM Changeset in webkit [246241] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.28.1

New tag.

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

Unreviewed, rolling out r246150, r246160, and r246166.
https://bugs.webkit.org/show_bug.cgi?id=198698

Regresses page loading time on iOS 13 (Requested by keith_m
on #webkit).

Reverted changesets:

"Reenable Gigacage on ARM64."
https://bugs.webkit.org/show_bug.cgi?id=198453
https://trac.webkit.org/changeset/246150

"Unrevied build fix for FTL without Gigacage."
https://trac.webkit.org/changeset/246160

"Fix typo in cageWithoutUntagging"
https://bugs.webkit.org/show_bug.cgi?id=198617
https://trac.webkit.org/changeset/246166

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

Drag starting state can get stuck even though the drag has ended
https://bugs.webkit.org/show_bug.cgi?id=198696
<rdar://problem/51556045>

Reviewed by Wenson Hsieh.

In iOS 13, we're seeing cases of the DragSession not
correctly ending, and thus leaving m_isStartingDrag in
an incorrect state. Temporarily force this to be reset
in ::dragEnded while investigating

  • UIProcess/ios/WKContentViewInteraction.mm: Add some more release logging

while here.
(-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
(-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::dragEnded):

4:55 AM Changeset in webkit [246238] by commit-queue@webkit.org
  • 7 edits in trunk

Add wildcard to Access-Control-Allow-Methods and Access-Control-Allow-Headers
https://bugs.webkit.org/show_bug.cgi?id=165508

Patch by Rob Buis <rbuis@igalia.com> on 2019-06-09
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt:

Source/WebCore:

According to the spec [1] step 6.5, a wildcard for method
and request's credentials mode should be taken into account, so
add this to the check. Same for Access-Control-Allow-Headers (step 6.7).

[1] https://fetch.spec.whatwg.org/#cors-preflight-fetch

Tests: web-platform-tests/fetch/api/cors/cors-preflight-star.any.html

web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker.html

  • loader/CrossOriginAccessControl.cpp:

(WebCore::validatePreflightResponse):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders const):
(WebCore::CrossOriginPreflightResultCacheItem::allowsRequest const):

  • loader/CrossOriginPreflightResultCache.h:
12:09 AM Changeset in webkit [246237] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Use mergePrediction in ValuePow prediction propagation
https://bugs.webkit.org/show_bug.cgi?id=198648

Reviewed by Saam Barati.

JSTests:

  • stress/prediction-propagation-should-use-merge-prediction-for-value-pow.js: Added.

Source/JavaScriptCore:

We are accidentally using setPrediction. This is wrong since prediction propagation (not processInvariant)
must extend the speculation types to ensure we eventually reach to the fixed point. setPrediction can discard
previously configured predictions, can lead to oscillation potentially. Use mergePrediction instead.

  • dfg/DFGPredictionPropagationPhase.cpp:

Jun 8, 2019:

8:55 PM Changeset in webkit [246236] by Wenson Hsieh
  • 12 edits in trunk

[iOS] The default application name for user agent when requesting desktop content is still "Mobile/15E148"
https://bugs.webkit.org/show_bug.cgi?id=198693
<rdar://problem/51555371>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by introducing an applicationNameForDesktopUserAgent member to WebPageProxy. This
applicationNameForDesktopUserAgent is set alongside the regular applicationNameForUserAgent; however, in the
case where it is being set via WKWebViewConfiguration, use WKWebViewConfiguration's
_applicationNameForDesktopUserAgent instead. See below for more details.

Tested by adding to the existing API test PreferredContentMode.ApplicationNameForDesktopUserAgent.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

  • UIProcess/API/APIWebsitePolicies.h:

Drive-by fix: rename applicationNameForUserAgentWithModernCompatibility to applicationNameForDesktopUserAgent in
a few places.

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController setApplicationNameForUserAgent:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setApplicationNameForUserAgent:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

Change _applicationNameForUserAgent into an Optional<RetainPtr<NSString>>. A value of WTF::nullopt allows us to
know that the default application name should be used (which is different when requesting desktop content).

(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationNameForDesktopUserAgent]):

Add _applicationNameForDesktopUserAgent to the web view configuration. This behaves like
applicationNameForUserAgent, with one exception: in the case where the default applicationNameForUserAgent is
used (i.e. the client has not specified any application name), default to nil as the application name for user
agent, rather than "Mobile/15E148".

(-[WKWebViewConfiguration applicationNameForUserAgent]):
(-[WKWebViewConfiguration setApplicationNameForUserAgent:]):

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

(-[WKWebpagePreferences _applicationNameForUserAgentWithModernCompatibility]):
(-[WKWebpagePreferences _setApplicationNameForUserAgentWithModernCompatibility:]):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setApplicationNameForDesktopUserAgent):
(WebKit::WebPageProxy::applicationNameForDesktopUserAgent const):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

Tools:

Augment an existing API test to exercise three additional scenarios:

  • The web view configuration's application name is never set; the default should not include

"Mobile/15E148" in desktop mode.

  • The application name is explicitly set to nil; the default application name should still not include

"Mobile/15E148".

  • The application name is explicitly set to the default value, "Mobile/15E148". WKWebView should honor

this when generating the user agent, even in desktop mode.

  • TestWebKitAPI/ios/PreferredContentMode.mm:

(TestWebKitAPI::setUpWebViewForPreferredContentModeTestingWithoutNavigationDelegate):
(TestWebKitAPI::setUpWebViewForPreferredContentModeTesting):
(TestWebKitAPI::TEST):

4:45 PM Changeset in webkit [246235] by aestes@apple.com
  • 13 edits in trunk/Source

[Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests
https://bugs.webkit.org/show_bug.cgi?id=198690
<rdar://problem/48041803>

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitSPI.h: Included PKPaymentRequest_WebKit.h to declare some

WebKit-specific PKPaymentRequest SPIs for internal SDKs, and re-declared these SPIs - now
including the boundInterfaceIdentifier property - for public SDKs.

Source/WebKit:

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

(WebKit::NetworkSessionCocoa::boundInterfaceIdentifier const): Implemented a public getter
for m_boundInterfaceIdentifier.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:

(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorBoundInterfaceIdentifier):
Implemented an override for paymentCoordinatorBoundInterfaceIdentifier.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h: Declared

paymentCoordinatorBoundInterfaceIdentifier for clients to override.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): If the client has a non-empty
bound interface identifier, set it on the new PKPaymentRequest.

  • UIProcess/WebPageProxy.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::paymentCoordinatorBoundInterfaceIdentifier): Implemented an override
for paymentCoordinatorBoundInterfaceIdentifier.

Source/WTF:

  • wtf/FeatureDefines.h: Defined HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER, and cleaned up some

other PassKit HAVEs.

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

[LFC][IFC] Introduce Baseline to LineBox
https://bugs.webkit.org/show_bug.cgi?id=198686
<rdar://problem/51545175>

Reviewed by Antti Koivisto.

Make baselines alignment explicit in Line.
This is in preparation for adding non-baseline vertical alignment support.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
(WebCore::Layout::Line::halfLeadingMetrics):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Content::baseline const):
(WebCore::Layout::Line::Content::setBaseline):
(WebCore::Layout::Line::logicalHeight const):
(WebCore::Layout::Line::baselineAlignedContentHeight const):
(WebCore::Layout::Line::baselineOffset const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::baseline const):
(WebCore::Layout::LineBox::LineBox):

11:31 AM Changeset in webkit [246233] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Unreviewed test gardening.

Remove rtl tests. They were mistakenly marked as pass.

  • LayoutReloaded/misc/LFC-passing-tests.txt:
3:32 AM Changeset in webkit [246232] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

resize-observer/element-leak.html fails on Windows platform
https://bugs.webkit.org/show_bug.cgi?id=197908

Patch by Cathie Chen <cathiechen> on 2019-06-08
Reviewed by Ryosuke Niwa.

We have conservative GC, the removed objects might keep alive for a while. Change the test case
to 20 iframes. This would make the result more accurate.

  • platform/win/TestExpectations:
  • resize-observer/element-leak-expected.txt:
  • resize-observer/element-leak.html:

Jun 7, 2019:

10:19 PM Changeset in webkit [246231] by commit-queue@webkit.org
  • 16 edits in trunk

REGRESSION (r244182) [WK1]: Page updates should always scheduleCompositingLayerFlush() immediately
https://bugs.webkit.org/show_bug.cgi?id=198664

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

Source/WebCore:

Because WK1 is a single process, scheduleCompositingLayerFlush() has to
be called immediately when layers' update is needed. Otherwise no content
will be drawn for the current frame. Doing this will get smooth scrolling
back to WK1.

RenderingUpdateScheduler now has three different scheduling methods:

  1. scheduleTimedRenderingUpdate(): This is a two-steps scheduling method. DisplayRefreshMonitor has to fire before scheduleCompositingLayerFlush() is called. This is used by rAF, WebAnimations and intersection and resize observers.
  1. scheduleImmediateRenderingUpdate(): This is a one-step scheduling method. layerTreeAsText() calls this method because it has to process the rendering update within the current frame.
  1. scheduleRenderingUpdate(): RenderLayerCompositor::scheduleLayerFlush() calls this function to decide either immediately flush layers or wait for the next timed frame. scheduleImmediateRenderingUpdate() will be called for WK1. scheduleTimedRenderingUpdate() will be called for WK2.
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleAnimationResolution):

  • dom/Document.cpp:

(WebCore::Document::scheduleTimedRenderingUpdate):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
(WebCore::Document::updateResizeObservations):
(WebCore::Document::scheduleRenderingUpdate): Deleted.

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

(WebCore::ScriptedAnimationController::scheduleAnimation):

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

(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):
(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleCompositingLayerFlush): Deleted.

  • page/RenderingUpdateScheduler.h:
  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

Source/WebKitLegacy/mac:

WK1 has to skip using DisplayRefreshMonitor when layers need to be updated.

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::needsImmediateScheduleCompositingLayerFlush):

Tools:

Delete repeated entries which were submitted by mistake.

  • Tracing/SystemTracePoints.plist:
10:05 PM Changeset in webkit [246230] by Antti Koivisto
  • 4 edits in trunk/Source/WebKit

REGRESSION (r245006): Setting scrollview.scrollEnabled clobbers any scrollEnabled set by a client
https://bugs.webkit.org/show_bug.cgi?id=198656
<rdar://problem/51494585>

Reviewed by Tim Horton.

Allow client to disable scrolling and zooming.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):

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

(-[WKScrollView initWithFrame:]):
(-[WKScrollView setScrollEnabled:]):
(-[WKScrollView _setScrollEnabledInternal:]):
(-[WKScrollView _updateScrollability]):
(-[WKScrollView setZoomEnabled:]):
(-[WKScrollView _setZoomEnabledInternal:]):
(-[WKScrollView _updateZoomability]):

6:37 PM Changeset in webkit [246229] by Wenson Hsieh
  • 6 edits in trunk

Allow clients to vend custom -inputView and -inputAccessoryView by overriding WKWebView methods
https://bugs.webkit.org/show_bug.cgi?id=198631
<rdar://problem/51505431>

Reviewed by Tim Horton.

Source/WebKit:

Allow WKWebView API clients to override WKContentView's default input view and/or input accessory view by
subclassing WKWebView and implementing -inputView or -inputAccessoryView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView inputAccessoryView]):
(-[WKWebView inputView]):

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

(-[WKContentView inputView]):
(-[WKContentView inputViewForWebView]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView inputAccessoryViewForWebView]):

Tools:

Add an API test that overrides -[WKWebView inputView] and -[WKWebView inputAccessoryView].

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(-[CustomInputWebView initWithFrame:configuration:inputView:inputAccessoryView:]):
(-[CustomInputWebView inputView]):
(-[CustomInputWebView inputAccessoryView]):
(TestWebKitAPI::TEST):

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

Disable focus rings on WKContentView for PLATFORM(IOSMAC)
https://bugs.webkit.org/show_bug.cgi?id=198685

Reviewed by Simon Fraser.

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

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

6:30 PM Changeset in webkit [246227] by youenn@apple.com
  • 3 edits in trunk/LayoutTests

[ Mac Debug ] REGRESSION (r242975) Layout Test storage/indexeddb/modern/deletedatabase-2-private.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196445
<rdar://problem/49483061>

Reviewed by Brady Eidson.

Unflake the test by making sure to wait for the onerror event before continuing the test.

  • platform/mac-wk2/TestExpectations:
  • storage/indexeddb/modern/resources/deletedatabase-2.js:

(prepareDatabase.event.target.onerror):
(continueTest1.request.onsuccess): Deleted.

5:48 PM Changeset in webkit [246226] by Megan Gardner
  • 10 edits in trunk/Source

Extend quirks to emulate bold/italic/underline in hidden editable areas
https://bugs.webkit.org/show_bug.cgi?id=198681

Reviewed by Wenson Hsieh.

Source/WebCore:

Rename only.

Rename quirks to be more accurate for new extended use.

  • page/Quirks.cpp:

(WebCore::shouldEmulateEditingButtonsAndGesturesInHiddenEditableAreasForHost):
(WebCore::Quirks::shouldEmulateEditingButtonsAndGesturesInHiddenEditableAreas const):
(WebCore::shouldEmulateUndoRedoInHiddenEditableAreasForHost): Deleted.
(WebCore::Quirks::shouldEmulateUndoRedoInHiddenEditableAreas const): Deleted.

  • page/Quirks.h:

Source/WebKit:

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:
  • Shared/SyntheticEditingCommandType.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView undoManager]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(shouldSynthezieKeyEvents):
(-[WKContentView toggleBoldfaceForWebView:]):
(-[WKContentView toggleItalicsForWebView:]):
(-[WKContentView toggleUnderlineForWebView:]):
(-[WKContentView _elementDidBlur]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::generateSyntheticEditingCommand):
(WebKit::WebPage::getFocusedElementInformation):

5:03 PM Changeset in webkit [246225] by Truitt Savell
  • 12 edits
    1 delete in trunk

Unreviewed, rolling out r246138.

Broke internal builds

Reverted changeset:

"[WHLSL] Educate the property resolver about IndexExpressions"
https://bugs.webkit.org/show_bug.cgi?id=198399
https://trac.webkit.org/changeset/246138

4:59 PM Changeset in webkit [246224] by dino@apple.com
  • 17 edits
    6 copies in trunk/Source/WebKit

Introduce new SPI for context menus on iOS
https://bugs.webkit.org/show_bug.cgi?id=198590

Reviewed by Tim Horton.

Also introduce WKContextMenuElementInfo which is API.
This is part of <rdar://problem/51003503>

  • Shared/API/APIObject.h:
  • Shared/API/Cocoa/WebKit.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIContextMenuElementInfo.cpp: Added.

(API::ContextMenuElementInfo::ContextMenuElementInfo):

  • UIProcess/API/APIContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: Added.

(-[WKContextMenuElementInfo linkURL]):
(-[WKContextMenuElementInfo _apiObject]):
(-[WKContextMenuElementInfo _activatedElementInfo]):

  • UIProcess/API/Cocoa/WKContextMenuElementInfoInternal.h: Added.
  • UIProcess/API/Cocoa/WKContextMenuElementInfoPrivate.h: Added.
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:

(-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:]):
(-[_WKActivatedElementInfo isAnimatedImage]):

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

(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • WebKit.xcodeproj/project.pbxproj:
4:18 PM Changeset in webkit [246223] by Nikita Vasilyev
  • 6 edits in trunk

Web Inspector: longhand CSS properties overridden by shorthands miss strikethrough
https://bugs.webkit.org/show_bug.cgi?id=198629
<rdar://problem/51504160>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Longhand CSS properties (e.g. "font-size") overriden by shorthands (e.g. "font") now have strikethroughs.

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.set overridingProperty):
(WI.CSSProperty):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._updateStyleCascade):
Call _associateRelatedProperties before _markOverriddenProperties because
_associateRelatedProperties sets relatedShorthandProperty property, which
is now used by _markOverriddenProperties.

(WI.DOMNodeStyles.prototype._markOverriddenProperties.isOverriddenBy):
(WI.DOMNodeStyles.prototype._markOverriddenProperties):

LayoutTests:

  • inspector/css/overridden-property-expected.txt:
  • inspector/css/overridden-property.html:
3:52 PM Changeset in webkit [246222] by dbates@webkit.org
  • 2 edits in trunk/Tools

[lldb-webkit] Pretty-print all kinds of Documents
https://bugs.webkit.org/show_bug.cgi?id=198620

Reviewed by Simon Fraser.

Register formatters for all classes derived from WebCore::Document so we get nice summaries
without having to drill down in Xcode- or casting- to the base class, Document.

Older LLDB versions use to do this automatically, but this functionality was removed in newer
versions:

[[

Warning: previous versions of LLDB defined cascading to mean not only going through typedef
chains, but also through inheritance chains. This feature has been removed since it
significantly degrades performance. You need to set up your formatters for every type in
inheritance chains to which you want the formatter to apply.

]]
<https://lldb.llvm.org/use/variable.html> (as of 06/06/2019)

  • lldb/lldb_webkit.py:

(lldb_init_module):

3:50 PM Changeset in webkit [246221] by Jonathan Bedard
  • 5 edits in trunk/Tools

webkitpy: Support reporting results for uncommon test configurations
https://bugs.webkit.org/show_bug.cgi?id=198662
<rdar://problem/51524128>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run): Override wk1 and wk2 flavors with specified flavor.

  • Scripts/webkitpy/port/base.py:

(Port.configuration_for_upload): Set flavor based on options.

  • Scripts/webkitpy/results/options.py:

(upload_options): Add result-report-flavor option.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Set flavor based on options.

3:43 PM Changeset in webkit [246220] by Alan Coon
  • 7 edits in branches/safari-608.1.27-branch/Source

Versioning.

3:40 PM Changeset in webkit [246219] by Alan Coon
  • 1 copy in tags/Safari-608.1.27.5

Tag Safari-608.1.27.5.

3:26 PM Changeset in webkit [246218] by Michael Catanzaro
  • 1 edit in trunk/Source/WebCore/ChangeLog

Correct commit message for my previous commit

Brent didn't review this. It was unreviewed. Whoops!

3:24 PM Changeset in webkit [246217] by Justin Fan
  • 25 edits in trunk

[WebGPU] Remove GPUBuffer.setSubData and implement GPUDevice.createBufferMapped
https://bugs.webkit.org/show_bug.cgi?id=198591

Reviewed by Myles C. Maxfield.

Source/WebCore:

Remove GPUBuffer.setSubData from the WebGPU API.
Add GPUDevice.createBufferMapped to the WebGPU API.

Existing tests have been updated.

  • Modules/webgpu/WebGPUBuffer.cpp:

(WebCore::WebGPUBuffer::setSubData): Deleted.

  • Modules/webgpu/WebGPUBuffer.h:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createBufferMapped const):

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl:
  • platform/graphics/gpu/GPUBuffer.h:
  • platform/graphics/gpu/GPUCommandBuffer.h:
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBuffer):

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:

(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::state const):
(WebCore::GPUBuffer::mapOnCreation):
(WebCore::GPUBuffer::commandBufferCompleted):
(WebCore::GPUBuffer::copyStagingBufferToGPU):

Required to unmap GPUBuffers created with GPU-private storage.

(WebCore::GPUBuffer::unmap):
(WebCore::GPUBuffer::setSubData): Deleted.
(WebCore::GPUBuffer::reuseSubDataBuffer): Deleted.

LayoutTests:

GPUBuffer.setSubData has been removed from the WebGPU implementation.
GPUDevice.createBufferMapped has been added to the WebGPU implementation.
Replace all setSubData calls with appropriate replacements.

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

(createBufferWithData):
(async.mapWriteDataToBuffer):

  • webgpu/map-read-buffers-expected.txt:
  • webgpu/map-read-buffers.html:
  • webgpu/texture-triangle-strip.html:
  • webgpu/vertex-buffer-triangle-strip.html:
3:18 PM Changeset in webkit [246216] by Michael Catanzaro
  • 3 edits in trunk/Source/WebCore

Fix non-iOS build after r246205
https://bugs.webkit.org/show_bug.cgi?id=198657

Reviewed by Brent Fulgham.
<rdar://problem/51345064>

  • page/Quirks.cpp:
  • page/Quirks.h:
3:12 PM Changeset in webkit [246215] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

mediaDevices.enumerateDevices() doesn't list the system default audio devices with deviceId as "default"
https://bugs.webkit.org/show_bug.cgi?id=198577
<rdar://problem/51454067>

Reviewed by Eric Carlson.

Make the system default microphone/camera be the first in the list.
This ensures that getUserMedia without constraints will pick these devices.
This also ensures enumerateDevices will show these default devices as first in the list.
Make sure that a default device change will refresh the list.

For CoreAudioCaptureSource, we always add the default system input device in the list of capture devices.

Covered by manual testing.

  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::toCaptureDevice):
(WebCore::AVCaptureDeviceManager::isMatchingExistingCaptureDevice):
(WebCore::AVCaptureDeviceManager::refreshCaptureDevices):

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:

(WebCore::getDefaultDeviceID):
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):

2:49 PM Changeset in webkit [246214] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test fast/events/fire-mousedown-while-pressing-mouse-button.html is failing
https://bugs.webkit.org/show_bug.cgi?id=198679

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:55 PM Changeset in webkit [246213] by graouts@webkit.org
  • 7 edits
    2 adds in trunk

Restrict fast clicks everywhere to desktop content mode
https://bugs.webkit.org/show_bug.cgi?id=198610
<rdar://problem/50114230>

Reviewed by Dean Jackson.

Source/WebKit:

We now set a new allowsFastClicksEverywhere property on the WebPageProxy when the content mode changes, set to true
when we're in desktop browsing mode. We now check on this property to opt into the fast clicks everywhere behavior.

This patch had been reverted once because it yielded some regressions in existing tests, notably under
fast/events/touch/ios/content-observation. This updated patch addresses this by ensuring the gesture recognizers
used for double-tap-to-zoom are disabled in -[WKContentViewInteraction _didStartProvisionalLoadForMainFrame]
to ensure that two tests dispatching a tap at the same location don't yield the recognition of a double-tap
rathern than the recognition of two single taps.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::allowsFastClicksEverywhere const):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]):
(_didStartProvisionalLoadForMainFrame):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):

LayoutTests:

Add a new test that enables fast clicks but also sets a mobile content mode.

We also mark fast/visual-viewport/ios/min-scale-greater-than-one.html as non-flaky
since the flakiness was due to the fast clicks everywhere behavior being enabled on iPhone.

Finally, we can now remove the hack where ui.tap() in the Pointer Events utility returned
a promise with a one-second delay since the issue of double-taps being recognized instead of
two consecutive single taps across two tests has been resolved.

  • fast/events/ios/ipad/fast-click-always-mobile-content-mode-expected.txt: Added.
  • fast/events/ios/ipad/fast-click-always-mobile-content-mode.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • pointerevents/utils.js:
1:08 PM Changeset in webkit [246212] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

A MediaStreamTrack cannot modify whether being a capture track or not
https://bugs.webkit.org/show_bug.cgi?id=198669

Reviewed by Eric Carlson.

Add a boolean in MediaStreamTrack to store whether a track is a capture one or not.
This removes the need to always go through the private and its source.
As a track might change of source (for non capture track cases), this
also removes the possibility for a track to be capture and then no
longer capture.
No change of behavior.
See also rdar://problem/49444622.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):

  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::isCaptureTrack const):

1:07 PM Changeset in webkit [246211] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Add a RELEASE_ASSERT that removeAudioProducer should always be done in the main thread
https://bugs.webkit.org/show_bug.cgi?id=198668

Reviewed by Eric Carlson.

See rdar://problem/49444622 for background information.
No change of behavior.

  • dom/Document.cpp:

(WebCore::Document::removeAudioProducer):

11:54 AM Changeset in webkit [246210] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

AI should get GetterSetter structure from the base's GlobalObject for GetGetterSetterByOffset
https://bugs.webkit.org/show_bug.cgi?id=198581
<rdar://problem/51099753>

Reviewed by Saam Barati.

JSTests:

  • stress/global-object-proto-getter.js: Added.

(f):
(test):

Source/JavaScriptCore:

For GetGetterSetterByOffset, when the abstract interpreter fails to read the property
from the object, it gets the GetterSetter structure from the CodeBlock's global object.
However, that's not correct, since the global object for the base object might differ
from the CodeBlock's. Instead, we try to get the global object from the base, when it's
a constant object. Otherwise, we can't infer the value and only set the type.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

11:05 AM Changeset in webkit [246209] by bshafiei@apple.com
  • 8 edits in branches/safari-608.1.27-branch/Source/WebCore

Cherry-pick r246207. rdar://problem/51185518

Images are not resizing correctly when dragged to a message in 1/3 view
https://bugs.webkit.org/show_bug.cgi?id=198623
<rdar://problem/51185518>

Reviewed by Wenson Hsieh.

Mail's max-width: 100%; default style is in conflict with the preferred presentation size. This patch preserves the existing behaviour for Mail by
not setting the height (and rely on the width + aspect ratio).

  • editing/WebContentReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm: (WebCore::createFragmentForImageAttachment): (WebCore::WebContentReader::readImage): (WebCore::attachmentForFilePath): (WebCore::attachmentForData): (WebCore::WebContentReader::readFilePath): (WebCore::WebContentReader::readDataBuffer):
  • editing/gtk/EditorGtk.cpp: (WebCore::createFragmentFromPasteboardData):
  • editing/markup.cpp: (WebCore::createFragmentForImageAndURL):
  • editing/markup.h:
  • platform/Pasteboard.h: (WebCore::PasteboardWebContentReader::readFilePath): (WebCore::PasteboardWebContentReader::readImage): (WebCore::PasteboardWebContentReader::readDataBuffer):
  • platform/PasteboardItemInfo.h: (WebCore::PasteboardItemInfo::encode const): (WebCore::PasteboardItemInfo::decode):
  • platform/ios/PasteboardIOS.mm: (WebCore::Pasteboard::readPasteboardWebContentDataForType): (WebCore::Pasteboard::read): (WebCore::Pasteboard::readRespectingUTIFidelities):
  • platform/ios/PlatformPasteboardIOS.mm: (WebCore::PlatformPasteboard::informationForItemAtIndex):

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

10:57 AM Changeset in webkit [246208] by bshafiei@apple.com
  • 3 edits in branches/safari-608.1.27-branch/Source/WebCore

Cherry-pick r246205. rdar://problem/51345064

Limit simulated mouse events on Google Maps to entering Street View
https://bugs.webkit.org/show_bug.cgi?id=198657
<rdar://problem/51345064>

Reviewed by Brent Fulgham.

  • page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const): (WebCore::Quirks::shouldDispatchSimulatedMouseEventsOnTarget const):
  • page/Quirks.h:

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

10:50 AM Changeset in webkit [246207] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Images are not resizing correctly when dragged to a message in 1/3 view
https://bugs.webkit.org/show_bug.cgi?id=198623
<rdar://problem/51185518>

Reviewed by Wenson Hsieh.

Mail's max-width: 100%; default style is in conflict with the preferred presentation size. This patch preserves the existing behaviour for Mail by
not setting the height (and rely on the width + aspect ratio).

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

(WebCore::createFragmentForImageAttachment):
(WebCore::WebContentReader::readImage):
(WebCore::attachmentForFilePath):
(WebCore::attachmentForData):
(WebCore::WebContentReader::readFilePath):
(WebCore::WebContentReader::readDataBuffer):

  • editing/gtk/EditorGtk.cpp:

(WebCore::createFragmentFromPasteboardData):

  • editing/markup.cpp:

(WebCore::createFragmentForImageAndURL):

  • editing/markup.h:
  • platform/Pasteboard.h:

(WebCore::PasteboardWebContentReader::readFilePath):
(WebCore::PasteboardWebContentReader::readImage):
(WebCore::PasteboardWebContentReader::readDataBuffer):

  • platform/PasteboardItemInfo.h:

(WebCore::PasteboardItemInfo::encode const):
(WebCore::PasteboardItemInfo::decode):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::readPasteboardWebContentDataForType):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readRespectingUTIFidelities):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::informationForItemAtIndex):

10:15 AM Changeset in webkit [246206] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Line should skip all vertical adjustment when running preferred width computation
https://bugs.webkit.org/show_bug.cgi?id=198642
<rdar://problem/51511043>

Reviewed by Antti Koivisto.

While layout triggers both horizontal and vertical aligment, preferred width computation should only do (logical)horizontal.
Make all vertical alignment computation optional in Line.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::UncommittedContent::add):
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
(WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
(WebCore::Layout::inlineItemHeight): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Content::Run::Run):
(WebCore::Layout::Line::Line):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::moveLogicalLeft):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendInlineContainerStart):
(WebCore::Layout::Line::appendInlineContainerEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):
(WebCore::Layout::Line::inlineItemHeight const):

  • layout/inlineformatting/InlineLine.h:
10:11 AM Changeset in webkit [246205] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

Limit simulated mouse events on Google Maps to entering Street View
https://bugs.webkit.org/show_bug.cgi?id=198657
<rdar://problem/51345064>

Reviewed by Brent Fulgham.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchSimulatedMouseEventsOnTarget const):

  • page/Quirks.h:
10:10 AM Changeset in webkit [246204] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Update sandboxes to address iokit-get-property errors
https://bugs.webkit.org/show_bug.cgi?id=198494
<rdar://problem/51322072> and <rdar://problem/50602737>

Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:31 AM Changeset in webkit [246203] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=198663

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations for flaky test
9:12 AM Changeset in webkit [246202] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

scrollingcoordinator/mac/nested-sticky.html is a flaky Timeout and ImageOnlyFailure
https://bugs.webkit.org/show_bug.cgi?id=198661

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Updating expectations for flaky test
8:44 AM Changeset in webkit [246201] by aestes@apple.com
  • 5 edits in trunk/Source/WebKit

process-swap-on-navigation error when loading blocked website on iOS 12.2 only.
https://bugs.webkit.org/show_bug.cgi?id=196930
<rdar://problem/47819301>

Reviewed by Chris Dumez.

The ContentFilterDidBlockLoadForFrame message needs to be handled by ProvisionalPageProxy in
order to look up the blocked frame in the correct WebProcessProxy.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame):
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrameShared):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame):
(WebKit::ProvisionalPageProxy::didReceiveMessage):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageProxy.h:
8:36 AM Changeset in webkit [246200] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Use const TabSize& instead of TabSize to avoid unnecessary copy.

Using const reference is a c++ feature to extend the life time of
a temporary object to the life time of the const reference which refers to it.

No behavioral changes.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-06-07

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setTabSize):

7:57 AM Changeset in webkit [246199] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] GLContextEGL.h must be built with @no-unify
https://bugs.webkit.org/show_bug.cgi?id=198659

Unreviewed ARM build fix.

  • SourcesGTK.txt:
7:42 AM Changeset in webkit [246198] by Wenson Hsieh
  • 3 edits in trunk/Tools

[iOS] At least 6 API tests are failing due to an exception when writing NSAttributedString to the pasteboard
https://bugs.webkit.org/show_bug.cgi?id=198641
<rdar://problem/51266310>

Reviewed by Tim Horton.

Work around a bug in a lower-level framework, which currently prevents NSAttributedStrings from being written to
UIPasteboard by way of -[NSItemProvider registerObject:visibility:]. This is because, when saving a
representation of "public.rtfd" to disk, the default suggested filename (determined using CoreServices APIs
_UTTypeCreateSuggestedFilename and UTTypeCopyDescription) ends up being nil; UIKit then subsequently tries to
append nil as a path component using -URLByAppendingPathComponent:, which throws an exception. This only
reproduces on iOS simulator.

To work around this for the time being, simply avoid writing a representation of "public.rtfd" to disk. This
representation is actually ignored by most clients anyways (including WebKit), in favor of using
"com.apple.flat-rtfd".

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(applyWorkaroundToAllowWritingAttributedStringsToItemProviders):
(-[TestWKWebView initWithFrame:configuration:addToWindow:]):

7:17 AM Changeset in webkit [246197] by Antti Koivisto
  • 7 edits
    6 adds in trunk

position:fixed inside overflow positioning nodes is jumpy
https://bugs.webkit.org/show_bug.cgi?id=198647
<rdar://problem/51514437>

Reviewed by Frédéric Wang.

Source/WebCore:

Tests: scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1.html

scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2.html
scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary.html

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

Take deltas from positioning nodes into account.

  • page/scrolling/cocoa/ScrollingTreePositionedNode.h:
  • page/scrolling/cocoa/ScrollingTreePositionedNode.mm:

(WebCore::ScrollingTreePositionedNode::scrollDeltaSinceLastCommit const):

Rename since 'scrollOffset' has other meaning.

(WebCore::ScrollingTreePositionedNode::applyLayerPositions):
(WebCore::ScrollingTreePositionedNode::scrollOffsetSinceLastCommit const): Deleted.

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::applyLayerPositions):

LayoutTests:

  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1-expected.html: Added.
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-1.html: Added.
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2-expected.html: Added.
  • scrollingcoordinator/ios/fixed-overflow-no-stacking-context-2.html: Added.
  • scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary-expected.html: Added.
  • scrollingcoordinator/ios/fixed-overflow-stacking-context-stationary.html: Added.
7:12 AM Changeset in webkit [246196] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix api used to release wpe_fdo_egl_exported_image in GTK

We are using the old deprecated API in AcceleratedBackingStoreWayland::displayBuffer().

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::displayBuffer):

3:54 AM Changeset in webkit [246195] by eocanha@igalia.com
  • 3 edits
    6 adds in trunk

[MSE][GStreamer] Avoid QUOTA_EXCEEDED_ERR when seeking to a buffered range just before the buffered one
https://bugs.webkit.org/show_bug.cgi?id=166620

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

This patch is fixing a seek to unbuffered range just before the buffered one.
For example, supposing a [120, 176) append has filled all the memory and then
a seek to 115.0 is done, a subsequent [115, 120) append would fail without
this fix. EvictCodedFrames() would return without actually evicting anything,
and appendBufferInternal will print "buffer full, failing with
QUOTA_EXCEEDED_ERR error" on GStreamer platforms instead of letting the new
[115, 120) append succeed.

This patch is based on an original patch by iivlev <iivlev@productengine.com>

Test: media/media-source/media-source-append-before-last-range-no-quota-exceeded.html

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::evictCodedFrames):
Removed the "only if there are buffered ranges *containing* the currentTime" condition
to enter into the second part of the eviction algorithm, which removes frames
starting from the duration of the media and going backwards down to currentPosition + 30.
The loop break condition has also been changed to deal with notFound currentTimeRange.

LayoutTests:

Added a test to check that, after the memory is filled by appending a continuous
range, a seek right before it and a new append can be done without getting a
QuotaExceededError on GStreamer ports. On the rest of the ports, QuotaExceededError
is never thrown and the expectations just check that the right buffered ranges
remain.

  • media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
  • media/media-source/media-source-append-before-last-range-no-quota-exceeded.html: Added.
  • platform/gtk/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
  • platform/wpe/media/media-source/media-source-append-before-last-range-no-quota-exceeded-expected.txt: Added.
1:59 AM Changeset in webkit [246194] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] AVC1 decoding capabilities probing support
https://bugs.webkit.org/show_bug.cgi?id=198569

Patch by Philippe Normand <philn@igalia.com> on 2019-06-07
Reviewed by Xabier Rodriguez-Calvar.

When capabilities for an avc1 codec are requested, the registry scanner looks
for a compatible decoder for the given H.264 profile and level.

This new approach can be avoided by using the WEBKIT_GST_MAX_AVC1_RESOLUTION
environment variable. If supplied, the decoder capabilities won't be probed and
the codec will be advertised as supported if it complies with the contents of
the environment variable. The resolutions currently handled are specifically:
1080P, 720P and 480P. We don't handle framerate checking yet, so the implied
H.264 levels are assumed to be for 30FPS.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::isCodecSupported const):
(WebCore::GStreamerRegistryScanner::areInputCapsAccepted const):
(WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:
1:27 AM Changeset in webkit [246193] by jh718.park@samsung.com
  • 23 edits
    6 adds in trunk

Implement tab-size with units
https://bugs.webkit.org/show_bug.cgi?id=179022

Reviewed by Simon Fraser.

This change is ported from Blink.
The committed revision is https://src.chromium.org/viewvc/blink?revision=189430&view=revision.

Additionally, this patch lets css "number" value be allowed as tab-size's property value,
not css "integer" value,
according to https://drafts.csswg.org/css-text-3/#tab-size-property.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/inheritance-expected.txt:
  • web-platform-tests/css/css-text/parsing/tab-size-valid-expected.txt:
  • web-platform-tests/css/css-values/calc-numbers-expected.txt: Added.
  • web-platform-tests/css/css-values/calc-numbers.html: Added.

Source/WebCore:

Tests: css3/tab-size.html

imported/w3c/web-platform-tests/css/css-values/calc-numbers.html

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

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

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

(WebCore::StyleBuilderConverter::convertTabSize):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTabSize):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

  • platform/graphics/FontCascade.h:

(WebCore::FontCascade::tabWidth const):

  • platform/graphics/TabSize.h: Added.

(WebCore::TabSize::TabSize):
(WebCore::TabSize::isSpaces const):
(WebCore::TabSize::widthInPixels const):
(WebCore::TabSize::operator bool const):
(WebCore::operator==):
(WebCore::operator!=):

  • platform/graphics/TextRun.cpp:
  • platform/graphics/TextRun.h:

(WebCore::TextRun::tabSize const):
(WebCore::TextRun::setTabSize):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::tabSize const):
(WebCore::RenderStyle::setTabSize):
(WebCore::RenderStyle::initialTabSize):

  • rendering/style/StyleRareInheritedData.cpp:
  • rendering/style/StyleRareInheritedData.h:

LayoutTests:

  • TestExpectations:
  • css3/tab-size-expected.txt: Added.
  • css3/tab-size.html: Added.
  • fast/css/tab-size-expected.html:
  • fast/css/tab-size.html:
1:14 AM Changeset in webkit [246192] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] videorate issues with v4l2src
https://bugs.webkit.org/show_bug.cgi?id=198614

Reviewed by Xabier Rodriguez-Calvar.

Configure videorate to cope with the live stream provided by the
source element. Not doing so might lead to errors in the v4l2
buffer allocator.

  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:

(WebCore::GStreamerVideoCapturer::createConverter):

Note: See TracTimeline for information about the timeline view.