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

Timeline



Apr 12, 2019:

8:54 PM Changeset in webkit [244239] by Wenson Hsieh
  • 13 edits in trunk/Source

Enable modern compatibility mode by default in WKWebView on some devices
https://bugs.webkit.org/show_bug.cgi?id=196883
<rdar://problem/49864527>

Reviewed by Tim Horton.

Source/WebCore:

Add a new helper function to determine whether an app is pre-installed on iOS, for the purposes of ensuring
compatibility with existing Apple apps that are not affected by linked-on-or-after. This involves all apps with
a bundle ID that begins with "com.apple.".

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

(WebCore::setApplicationBundleIdentifier):
(WebCore::applicationBundleStartsWith):
(WebCore::IOSApplication::isAppleApplication):

Source/WebKit:

Make some minor adjustments to new API.

  • Shared/WebCompatibilityMode.h:

Rename WebCompatibilityMode::Default to WebCompatibilityMode::Recommended.

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

Now that the role of the UseModernCompatibilityModeByDefault debug preference is limited to bypassing linked-on-
or-after and app bundle compatibility hacks, we no longer make this default to true in iOSMac.

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:

Rename the withPreferences: label to just preferences:.

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

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/ios/WebPageProxyIOS.mm:
8:04 PM Changeset in webkit [244238] by sbarati@apple.com
  • 7 edits
    1 add in trunk

r244079 logically broke shouldSpeculateInt52
https://bugs.webkit.org/show_bug.cgi?id=196884

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/int52-rand-function.js: Added.

(Math.random):

Source/JavaScriptCore:

In r244079, I changed shouldSpeculateInt52 to only return true
when the prediction is isAnyInt52Speculation(). However, it was
wrong to not to include SpecInt32 in this for two reasons:

  1. We diligently write code that first checks if we should speculate Int32.

For example:
if (shouldSpeculateInt32()) ...
else if (shouldSpeculateInt52()) ...

It would be wrong not to fall back to Int52 if we're dealing with the union of
Int32 and Int52.

It would be a performance mistake to not include Int32 here because
data flow can easily tell us that we have variables that are the union
of Int32 and Int52 values. It's better to speculate Int52 than Double
in that situation.

  1. We also write code where we ask if the inputs can be Int52, e.g, if

we know via profiling that an Add overflows, we may not emit an Int32 add.
However, we only emit such an add if both inputs can be Int52, and Int32
can trivially become Int52.

This patch recovers the 0.5-1% regression r244079 caused on JetStream 2.

  • bytecode/SpeculatedType.h:

(JSC::isInt32SpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationForArithmetic):
(JSC::isInt32OrInt52Speculation):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::observeUseKindOnNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateInt52):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGVariableAccessData.cpp:

(JSC::DFG::VariableAccessData::couldRepresentInt52Impl):

5:05 PM Changeset in webkit [244237] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Build fix after r244233.

  • assembler/CPU.cpp:
4:45 PM Changeset in webkit [244236] by BJ Burg
  • 2 edits in trunk/Source/WebKit

WebDriver: fix typo in EnterFullscreen.js in error-handling code
https://bugs.webkit.org/show_bug.cgi?id=196882
<rdar://problem/49867122>

Reviewed by Devin Rousso.

  • UIProcess/Automation/atoms/EnterFullscreen.js:

(enterFullscreen):

4:40 PM Changeset in webkit [244235] by Justin Fan
  • 7 edits in trunk/Source/WebCore

[Web GPU] Prevent narrowing conversions during Metal function calls on 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=196793

Reviewed by Darin Adler.

On 32-bit platforms, NSUInteger is 32-bit, which limits certain Web GPU parameters.
Ensure that valid parameters are properly converted to NSUInteger for Metal calls, regardless of platform.

  • platform/graphics/gpu/GPUBuffer.h:

(WebCore::GPUBuffer::byteLength const):

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

(WebCore::tryGetResourceAsBufferBinding):
(WebCore::setBufferOnEncoder):

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

(WebCore::GPUBuffer::validateBufferUsage):
(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):
(WebCore::GPUBuffer::setSubData):

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

(WebCore::GPUCommandBuffer::copyBufferToBuffer):
(WebCore::GPUCommandBuffer::copyBufferToTexture):
(WebCore::GPUCommandBuffer::copyTextureToBuffer):

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

(WebCore::GPURenderPassEncoder::drawIndexed):

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

(WebCore::trySetInputStateForPipelineDescriptor):

4:32 PM Changeset in webkit [244234] by Ross Kirsling
  • 4 edits in trunk/Source

Unreviewed fix for non-unified build.

Source/WebCore:

  • dom/ScriptedAnimationController.h:

Add missing include from r244182.

Source/WebKit:

  • Shared/PrintInfo.cpp:

Add missing include from r244202.

4:26 PM Changeset in webkit [244233] by sbarati@apple.com
  • 10 edits
    1 add in trunk/Source

Sometimes we need to user fewer CPUs in our threading calculations
https://bugs.webkit.org/show_bug.cgi?id=196794
<rdar://problem/49389497>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/CPU.cpp: Added.

(JSC::isKernTCSMAvailable):
(JSC::enableKernTCSM):
(JSC::kernTCSMAwareNumberOfProcessorCores):

  • assembler/CPU.h:

(JSC::isKernTCSMAvailable):
(JSC::enableKernTCSM):
(JSC::kernTCSMAwareNumberOfProcessorCores):

  • heap/MachineStackMarker.h:

(JSC::MachineThreads::addCurrentThread):

  • runtime/JSLock.cpp:

(JSC::JSLock::didAcquireLock):

  • runtime/Options.cpp:

(JSC::computeNumberOfWorkerThreads):
(JSC::computePriorityDeltaOfWorkerThreads):

  • wasm/WasmWorklist.cpp:

(JSC::Wasm::Worklist::Worklist):

Source/WebKit:

  • WebProcess/com.apple.WebProcess.sb.in:
3:44 PM Changeset in webkit [244232] by Alan Coon
  • 1 copy in tags/Safari-607.2.4

Tag Safari-607.2.4.

3:31 PM Changeset in webkit [244231] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo][WKL] Unreviewed test gardening.

  • platform/wincairo-wk1/TestExpectations:

r244182 causes all animations tests to time out.

1:46 PM Changeset in webkit [244230] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

WebDriver: evaluating javascript shouldn't fail if a dialog is shown
https://bugs.webkit.org/show_bug.cgi?id=196847
<rdar://problem/49609396>

Reviewed by Brian Burg.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::willShowJavaScriptDialog):

1:37 PM Changeset in webkit [244229] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

WebThread should run at a higher priority than user initiated
https://bugs.webkit.org/show_bug.cgi?id=196849
<rdar://problem/46851062>

Reviewed by Geoffrey Garen.

Use QOS_CLASS_USER_INTERACTIVE on WebThread with -10 relative priority so that WebThread
won't wait for other threads with priority 30-37 but does not content with the main thread.

Also removed the call to pthread_attr_setschedparam which disables QoS.

This improves the blocked time in StartWebThread from 2~3ms to 250μs while cold launching
iBooks to an opened book.

  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread): Replaced 200 * 4096 by 800 * KB for a better readability.

11:52 AM Changeset in webkit [244228] by Simon Fraser
  • 28 edits in trunk

[iOS WK2] Make -webkit-overflow-scrolling be a no-op
https://bugs.webkit.org/show_bug.cgi?id=196803
rdar://problem/49078202

Reviewed by Antti Koivisto.

Source/WebKit:

Flip LegacyOverflowScrollingTouchEnabled to false.

  • Shared/WebPreferences.yaml:

LayoutTests:

Rebase some tests, if I thought that non-stacking context overflow was interesting.
For others, make overflow be stacking context by adding z-index.
Add <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] --> to those that
need it.

  • compositing/overflow/scrolling-content-clip-to-viewport.html:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants.html:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested.html:
  • fast/scrolling/ios/overflow-scroll-inherited-expected.txt:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip-size.html:
  • fast/scrolling/ios/overflow-scrolling-ancestor-clip.html:
  • fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
  • fast/scrolling/ios/reconcile-layer-position-recursive.html:
  • fast/scrolling/ios/scrolling-content-clip-to-viewport.html:
  • fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor.html:
  • fast/scrolling/ios/touch-scroll-pointer-events-none.html:
  • fast/scrolling/ios/touch-scroll-visibility-hidden.html:
  • platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor.html:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed.html:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor.html:
  • scrollingcoordinator/scrolling-tree/coordinated-frame.html:
  • scrollingcoordinator/scrolling-tree/resources/doc-with-sticky.html:
11:34 AM Changeset in webkit [244227] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for Windows.

  • platform/win/TestExpectations:
11:26 AM Changeset in webkit [244226] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Add CSS Shadow Parts as a feature under consideration
https://bugs.webkit.org/show_bug.cgi?id=196835

Reviewed by Antti Koivisto.

This feature is under consideration.

  • features.json:
11:18 AM Changeset in webkit [244225] by Ross Kirsling
  • 43 edits in trunk/Source

WebKit should build successfully even with -DENABLE_UNIFIED_BUILDS=OFF
https://bugs.webkit.org/show_bug.cgi?id=196845

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::FontProxy::initialize):
(WebCore::CanvasRenderingContext2DBase::FontProxy::fontMetrics const):
(WebCore::CanvasRenderingContext2DBase::FontProxy::fontDescription const):
(WebCore::CanvasRenderingContext2DBase::FontProxy::width const):
(WebCore::CanvasRenderingContext2DBase::FontProxy::drawBidiText const):
(WebCore::CanvasRenderingContext2DBase::beginCompositeLayer):
(WebCore::CanvasRenderingContext2DBase::endCompositeLayer):
Remove inline specifier to address linking errors (regardless of CMake platform).
Doing this in a .cpp file interferes with symbol creation.

  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/webvr/VREyeParameters.cpp:
  • Modules/webvr/VRFrameData.cpp:
  • Modules/webvr/VRPose.cpp:
  • accessibility/AccessibilityList.cpp:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:
  • accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
  • bindings/js/JSDOMConvertWebGL.cpp:
  • bindings/js/JSHistoryCustom.cpp:
  • bindings/js/JSIDBCursorWithValueCustom.cpp:
  • bindings/js/JSPerformanceObserverCustom.cpp:
  • bindings/js/WindowProxy.cpp:
  • platform/ColorData.gperf:
  • platform/mediastream/RealtimeMediaSourceSettings.cpp:
  • platform/network/DNSResolveQueue.cpp:
  • workers/service/ServiceWorkerClientQueryOptions.h:
  • workers/service/ServiceWorkerContainer.cpp:

Add missing includes to address compiler errors on GTK.

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:
  • NetworkProcess/NetworkDataTask.cpp:
  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp:
  • NetworkProcess/NetworkHTTPSUpgradeChecker.h: Include wtf/Forward.h for String and CompletionHandler fwd decls.
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkResourceLoadMap.cpp:
  • NetworkProcess/NetworkResourceLoadMap.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.h:
  • Shared/WebCompiledContentRuleListData.cpp:
  • Shared/gtk/WebEventFactory.cpp:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore):
(WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WKWebsiteDataStoreStatisticsResetToConsistentState):

  • UIProcess/Downloads/DownloadProxyMap.cpp:
  • UIProcess/InspectorTargetProxy.cpp:
  • UIProcess/PageClient.h:
  • UIProcess/ProcessAssertion.cpp:
  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/WebPageInspectorTargetAgent.h:
  • UIProcess/geoclue/GeoclueGeolocationProvider.cpp:
  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::updateQuotaBasedOnSpaceUsage):

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetDatabaseQuota):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

Add missing includes / forward declarations to address compiler errors on GTK / WinCairo.

11:14 AM Changeset in webkit [244224] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

REGRESSION (r244098): [ Mac WK1 ] Layout Test fast/dynamic/paused-event-dispatch.html is Timing out
https://bugs.webkit.org/show_bug.cgi?id=196789
<rdar://problem/49855255>

Reviewed by Tim Horton.

Disable auto-sizing mode at the start of each test.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

11:04 AM Changeset in webkit [244223] by eric.carlson@apple.com
  • 13 edits in trunk

Update AudioSession route sharing policy
https://bugs.webkit.org/show_bug.cgi?id=196776
<rdar://problem/46501611>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated an API test.

  • platform/audio/AudioSession.cpp:

(WebCore::convertEnumerationToString):

  • platform/audio/AudioSession.h:

(WTF::LogArgument<WebCore::RouteSharingPolicy>::toString):
(WTF::LogArgument<WebCore::AudioSession::CategoryType>::toString):

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::updateSessionState):

  • platform/audio/ios/AudioSessionIOS.mm:

(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::routeSharingPolicy const):

  • platform/audio/mac/AudioSessionMac.cpp:

(WebCore::AudioSession::setCategory):

Source/WebKit:

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]):

Source/WTF:

  • wtf/Platform.h: Define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO.

Tools:

  • TestWebKitAPI/Tests/WebKitLegacy/ios/AudioSessionCategoryIOS.mm:

(TestWebKitAPI::routeSharingPolicyLongFormVideo):
(TestWebKitAPI::routeSharingPolicyLongFormAudio):
(TestWebKitAPI::TEST):

11:02 AM Changeset in webkit [244222] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Use padding at end of ArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=196823

Reviewed by Filip Pizlo.

  • runtime/ArrayBuffer.h:
10:59 AM Changeset in webkit [244221] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

WebsitePolicies doesn't copy its media source policy in WebsitePolicies::copy
https://bugs.webkit.org/show_bug.cgi?id=196862

Reviewed by Darin Adler.

Add a missing bit of code to copy m_mediaSourcePolicy over when making a copy of WebsitePolicies. This doesn't
have any observable effect, since m_mediaSourcePolicy isn't currently exposed as SPI on WKWebpagePreferences.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

10:30 AM Changeset in webkit [244220] by Wenson Hsieh
  • 20 edits in trunk

[iOS] Software keyboard is shown too frequently on some websites
https://bugs.webkit.org/show_bug.cgi?id=195856
<rdar://problem/49191395>

Reviewed by Darin Adler.

Source/WebCore/PAL:

Declare new GraphicsServices SPI.

  • pal/spi/ios/GraphicsServicesSPI.h:

Source/WebKit:

On some websites, hidden editable elements are very frequently focused upon user interaction. Currently, this
causes the software keyboard to pop in and out unexpectedly; luckily, these same sites also apply
inputmode="none" to the hidden editable element, which ought to ensure that the software keyboard doesn't appear
when the element is focused.

However, since we disabled support for inputmode="none" in r240497, the software keyboard is no longer
suppressed, and becomes a big nuissance. r240497 removed support for this feature because, when using a hardware
keyboard, pressing the globe key no longer showed UI for switching languages. However, support for inputmode
none makes a much larger impact when a software keyboard is used (since the entire software keyboard animates in
and out), whereas a hardware keyboard only displays an input accessory view. For this reason, we can mitigate
this bug without reintroducing <rdar://problem/47406553> by re-enabling inputmode="none", but only when a
hardware keyboard is not attached.

  • UIProcess/API/Cocoa/WKWebView.mm:

(hardwareKeyboardAvailabilityChangedCallback):

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

(-[WKContentView shouldShowAutomaticKeyboardUI]):

Don't show the keyboard if inputmode is none and a hardware keyboard is not attached.

(-[WKContentView _hardwareKeyboardAvailabilityChanged]):

Reload input views if the inputmode is none to ensure that if a hardware keyboard is attached while editing an
element with inputmode="none", we'll show the input accessory view once again.

Tools:

Add support for attaching or detaching the hardware keyboard on iOS in layout tests.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setHardwareKeyboardAttached):

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

(WTR::UIScriptController::setHardwareKeyboardAttached):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

Additionally link against GraphicsServices in WebKitTestRunner.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::UIScriptController::setHardwareKeyboardAttached):

WebKitLibraries:

Add a symbol for GSEventSetHardwareKeyboardAttached.

  • WebKitPrivateFrameworkStubs/iOS/12/GraphicsServices.framework/GraphicsServices.tbd:

LayoutTests:

Fix a failing layout test, which (among other reasons) is currently failing because support for inputmode="none"
is disabled.

  • fast/forms/ios/inputmode-none-expected.txt:
  • fast/forms/ios/inputmode-none.html:
  • resources/ui-helper.js:

Add a UIHelper method for attaching or detaching the hardware keyboard.

(window.UIHelper.setHardwareKeyboardAttached):
(window.UIHelper):

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

[macOS WK1] ASSERTION FAILED: formData in WebCore::ResourceRequest::doUpdateResourceHTTPBody()
https://bugs.webkit.org/show_bug.cgi?id=196864

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Skip test since it consistently crashes, update bug number.
9:52 AM Changeset in webkit [244218] by graouts@webkit.org
  • 13 edits
    1 copy in trunk/Source

Opt some websites into the simulated mouse events dispatch quirk when in modern compatibility mode
https://bugs.webkit.org/show_bug.cgi?id=196830
<rdar://problem/49124313>

Reviewed by Wenson Hsieh.

Source/WebCore:

We add a new policy to determine whether simulated mouse events dispatch are allowed and use it to determine whether the
simulated mouse events dispatch quirk can be used for a given website. We then check the domain name for the current page's
document to see if it matches some known websites that require this quirk.

We needed to add some calls into Quirks::shouldDispatchSimulateMouseEvents() where we used to only consult the RuntimeEnabledFeature
flag to ensure we correctly created touch regions for simulated mouse events.

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):

  • dom/Node.cpp:

(WebCore::Node::moveNodeToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::simulatedMouseEventsDispatchPolicy const):
(WebCore::DocumentLoader::setSimulatedMouseEventsDispatchPolicy):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchSimulateMouseEvents const): Deleted.

  • page/Quirks.h:

Source/WebKit:

We add a new policy to determine whether simulated mouse events dispatch are allowed.

  • Shared/WebsitePoliciesData.cpp:

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

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

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

  • UIProcess/API/APIWebsitePolicies.h:
  • WebKit.xcodeproj/project.pbxproj:
9:11 AM Changeset in webkit [244217] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS Sim Debug] ASSERTION FAILED: m_downloads.isEmpty() Layout Test http/tests/websocket/tests/hybi/network-process-crash-error.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=196781
<rdar://problem/49789381>

Reviewed by Darin Adler.

When the network process gets terminated by the client, the NetworkProcessProxy object (and thus its DownloadProxyMap member) get
destroyed right away, before we get a call to didClose(IPC::Connection&). As a result, if there are ongoing downloads at the time
of the termination, we will hit the assertion above. To address the issue, update the NetworkProcessProxy destructor to invalidate
its DownloadProxyMap member, similator to what it does in didClose(IPC::Connection&).

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::invalidate):
(WebKit::DownloadProxyMap::processDidClose): Deleted.

  • UIProcess/Downloads/DownloadProxyMap.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::didClose):

8:54 AM Changeset in webkit [244216] by commit-queue@webkit.org
  • 1 edit
    26 adds in trunk/LayoutTests/imported/w3c

Import WPT preload tests
https://bugs.webkit.org/show_bug.cgi?id=196439

Patch by Rob Buis <rbuis@igalia.com> on 2019-04-12
Reviewed by Youenn Fablet.

  • web-platform-tests/preload/avoid-delaying-onload-link-preload-expected.txt: Added.
  • web-platform-tests/preload/avoid-delaying-onload-link-preload.html: Added.
  • web-platform-tests/preload/delaying-onload-link-preload-after-discovery-expected.txt: Added.
  • web-platform-tests/preload/delaying-onload-link-preload-after-discovery.html: Added.
  • web-platform-tests/preload/dynamic-adding-preload-expected.txt: Added.
  • web-platform-tests/preload/dynamic-adding-preload.html: Added.
  • web-platform-tests/preload/preload-csp.sub-expected.txt: Added.
  • web-platform-tests/preload/preload-csp.sub.html: Added.
  • web-platform-tests/preload/preload-default-csp.sub-expected.txt: Added.
  • web-platform-tests/preload/preload-default-csp.sub.html: Added.
  • web-platform-tests/preload/resources/dummy.css: Added.
  • web-platform-tests/preload/resources/dummy.css.sub.headers: Added.
  • web-platform-tests/preload/resources/dummy.js: Added.
  • web-platform-tests/preload/resources/dummy.js.sub.headers: Added.
  • web-platform-tests/preload/resources/dummy.xml: Added.
  • web-platform-tests/preload/resources/dummy.xml.sub.headers: Added.
  • web-platform-tests/preload/resources/foo.vtt: Added.
  • web-platform-tests/preload/resources/preload_helper.js: Added.

(verifyPreloadAndRTSupport):
(getAbsoluteURL):
(verifyNumberOfResourceTimingEntries):
(verifyLoadedAndNoDoubleDownload):

  • web-platform-tests/preload/resources/sound_5.oga: Added.
  • web-platform-tests/preload/resources/square.png: Added.
  • web-platform-tests/preload/resources/white.mp4: Added.
  • web-platform-tests/preload/single-download-late-used-preload-expected.txt: Added.
  • web-platform-tests/preload/single-download-late-used-preload.html: Added.
  • web-platform-tests/preload/single-download-preload-expected.txt: Added.
  • web-platform-tests/preload/single-download-preload.html: Added.
7:54 AM Changeset in webkit [244215] by Simon Fraser
  • 4 edits
    12 adds in trunk

[iOS WK2] Wrong scrolling behavior for nested absolute position elements inside overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=196146

Reviewed by Antti Koivisto.

Source/WebCore:

computeCoordinatedPositioningForLayer() failed to handle nested positions elements
inside overflow scroll, because it only walked up to the first containing block of
a nested position:absolute. We need to walk all the way up the ancestor layer chain,
looking at containing block, scroller and composited ancestor relationships.

Make this code easier to understand by writing it in terms of "is foo scrolled by bar", rather than
trying to collapse all the logic into a single ancestor walk, which was really hard. This is a few
more ancestor traversals, but we now only run this code if there's composited scrolling
in the ancestor chain.

Tests: scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html

scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow.html
scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html
scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::enclosingCompositedScrollingLayer):
(WebCore::isScrolledByOverflowScrollLayer):
(WebCore::isNonScrolledLayerInsideScrolledCompositedAncestor):
(WebCore::RenderLayerCompositor::layerContainingBlockCrossesCoordinatedScrollingBoundary):
(WebCore::collectStationaryLayerRelatedOverflowNodes):
(WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):
(WebCore::collectRelatedCoordinatedScrollingNodes):
(WebCore::layerParentedAcrossCoordinatedScrollingBoundary): Deleted.

LayoutTests:

Dump the scrolling tree for various configurations of positioned, overflow and stacking context
elements.

  • fast/scrolling/ios/overflow-scroll-overlap-6-expected.txt: Progressed results.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt: Added.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt: Added.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt: Added.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow.html: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt: Added.
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html: Added.
6:29 AM Changeset in webkit [244214] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] Fix pacman install-dependencies packages
https://bugs.webkit.org/show_bug.cgi?id=196817

Patch by Ludovico de Nittis <ludovico.denittis@collabora.com> on 2019-04-12
Reviewed by Žan Doberšek.

python3-setuptools is called python-setuptools
ruby-highline is only available on AUR
libv4l-devel is incorporated in v4l-utils

  • gtk/install-dependencies:
  • wpe/install-dependencies:
5:04 AM Changeset in webkit [244213] by Manuel Rego Casasnovas
  • 17 edits
    2 moves
    13 adds in trunk

[css-flex][css-grid] Fix synthesized baseline
https://bugs.webkit.org/show_bug.cgi?id=196312

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Imported some tests from WPT css-align test suite that are fixed with this patch.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-flexbox-001-expected.txt: Added.
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-flexbox-001.html: Added.
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-grid-001-expected.txt: Added.
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-grid-001.html: Added.
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-inline-block-001-expected.txt: Added.
  • web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-inline-block-001.html: Added.
  • web-platform-tests/css/css-align/baseline-rules/w3c-import.log: Added.

Source/WebCore:

When a flex or grid container has no baseline,
its baseline should be synthesized from the border edges.
The same happens for flex and grid items.

Right now we were using the content box in some cases
and even using the margin box in a particular scenario.
The patch fixes this.

At the same time this is also fixing the baseline for
inline flex/grid containers to make it interoperable with Firefox.
Inline blocks have a special behavior per legacy reasons,
which applies to inline flex/grid containers when they have no items;
otherwise the items should be used to compute its baseline.
See more at: https://github.com/w3c/csswg-drafts/issues/3416

Note that we need to keep current behavior for buttons,
as the flexbox spec doesn't apply to them.

Tests: css3/flexbox/flexbox-baseline-margins.html

fast/css-grid-layout/grid-baseline-margins-1.html
fast/css-grid-layout/grid-baseline-margins-2.html
imported/w3c/web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-flexbox-001.html
imported/w3c/web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-grid-001.html
imported/w3c/web-platform-tests/css/css-align/baseline-rules/synthesized-baseline-inline-block-001.html

  • rendering/RenderButton.cpp:

(WebCore::synthesizedBaselineFromContentBox):
(WebCore::RenderButton::baselinePosition const):

  • rendering/RenderButton.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::synthesizedBaselineFromBorderBox):
(WebCore::RenderFlexibleBox::baselinePosition const):
(WebCore::RenderFlexibleBox::firstLineBaseline const):
(WebCore::RenderFlexibleBox::inlineBlockBaseline const):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::baselinePosition const):
(WebCore::RenderGrid::inlineBlockBaseline const):

LayoutTests:

Some of the tests were not checking the right behavior changed them to test the expected one.
We need new rebaselines for some tests.

  • TestExpectations:
  • css3/flexbox/flexbox-baseline-margins.html:
  • fast/css-grid-layout/grid-baseline-expected.html:
  • fast/css-grid-layout/grid-baseline-margins-1-expected.html: Renamed from LayoutTests/fast/css-grid-layout/grid-baseline-margins-expected.html.
  • fast/css-grid-layout/grid-baseline-margins-1.html: Renamed from LayoutTests/fast/css-grid-layout/grid-baseline-margins.html.
  • fast/css-grid-layout/grid-baseline-margins-2-expected.html: Added.
  • fast/css-grid-layout/grid-baseline-margins-2.html: Added.
  • fast/css-grid-layout/grid-baseline.html: This test is modified and split in two parts as it doesn't fit in the viewport.
  • platform/gtk/css3/flexbox/flexbox-baseline-margins-expected.png:
  • platform/gtk/css3/flexbox/flexbox-baseline-margins-expected.txt:
  • platform/ios/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
  • platform/ios/css3/flexbox/flexbox-baseline-margins-expected.txt:
  • platform/mac/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
  • platform/mac/css3/flexbox/flexbox-baseline-margins-expected.txt:
  • platform/win/css3/flexbox/flexbox-baseline-margins-expected.png: Added.
  • platform/win/css3/flexbox/flexbox-baseline-margins-expected.txt:
1:46 AM Changeset in webkit [244212] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] REGRESSION(r243860): Many tests failing
https://bugs.webkit.org/show_bug.cgi?id=196791

Reviewed by Joanmarie Diggs.

Source/WebKit:

Calling updateAccessibilityTree() on document loaded was causing a re-layout because of the backing store update
that confused all those tests. We shouldn't need to update the accessibility tree on document load, it should
happen automatically when root object is attached/detached. This patch emits children-changed::add when the root
object wrapper is attached and children-changed::remove when the root object is detached. That way ATs are
notified of the changes in the accessibility tree.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishDocumentLoad): Remove call to WebPage::updateAccessibilityTree().

  • WebProcess/WebPage/WebPage.h: Remove updateAccessibilityTree().
  • WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.cpp:

(coreRootObjectWrapperDetachedCallback): Emit children-changed::remove.
(rootWebAreaWrapper): Helper to get the root WebArea wrapper.
(accessibilityRootObjectWrapper): Set the parent here when root object is created and emit children-changed::add.
(webkitWebPageAccessibilityObjectRefChild): Dot no set the parent here, it's now set when the root object is created.

  • WebProcess/WebPage/atk/WebKitWebPageAccessibilityObject.h: Remove webkitWebPageAccessibilityObjectRefresh().
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

Tools:

Rework the accessibility unit test to use DBus for the communication with the server. This way we can load
multiple documents and check that accessibility hierarchy is updated after a navigation.

  • TestWebKitAPI/Tests/WebKitGtk/AccessibilityTestServer.cpp:

(loadChangedCallback):

  • TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:

(AccessibilityTest::AccessibilityTest):
(AccessibilityTest::~AccessibilityTest):
(AccessibilityTest::loadHTMLAndWaitUntilFinished):
(AccessibilityTest::findTestServerApplication):
(AccessibilityTest::findDocumentWeb):
(AccessibilityTest::findRootObject):
(AccessibilityTest::waitUntilChildrenRemoved):
(AccessibilityTest::ensureProxy):
(testAtspiBasicHierarchy):
(beforeAll):
(afterAll):

LayoutTests:

Remove expectations for tests that pass now.

  • platform/gtk/TestExpectations:

Apr 11, 2019:

11:35 PM Changeset in webkit [244211] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] op_has_indexed_property should not assume subscript part is Uint32
https://bugs.webkit.org/show_bug.cgi?id=196850

Reviewed by Saam Barati.

JSTests:

  • stress/has-indexed-property-should-accept-non-int32.js: Added.

(foo):

Source/JavaScriptCore:

op_has_indexed_property assumed that subscript part is always Uint32. However, this is just a load from non-constant RegisterID,
DFG can store it in double format and can perform OSR exit. op_has_indexed_property should not assume that.
In this patch, instead, we check it with isAnyInt and get uint32_t from AnyInt.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

11:02 PM Changeset in webkit [244210] by Megan Gardner
  • 2 edits in trunk/LayoutTests

Fix flaky LayoutTests/fast/events/autoscroll-when-input-is-offscreen.html
https://bugs.webkit.org/show_bug.cgi?id=196840

Reviewed by Tim Horton.

Use more stable test infrastructure to conduct input tests.

  • fast/events/autoscroll-when-input-is-offscreen.html:
10:28 PM Changeset in webkit [244209] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Avoid doing positioned scrolling tree node work for layers not inside overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=196848

Reviewed by Zalan Bujtas.

Maintain a bit on RenderLayer which says if a layer has a composited scrolling ancestor
in the layer tree. We only need to do work related to making positioned scrolling tree nodes
for layers which are layer tree descendants of overflow:scroll.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::outputPaintOrderTreeLegend):
(WebCore::outputPaintOrderTreeRecursive):

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

(WebCore::RenderLayerCompositor::requiresCompositingForPosition const):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):
(WebCore::RenderLayerCompositor::fixedLayerIntersectsViewport const):
(WebCore::RenderLayerCompositor::computeCoordinatedPositioningForLayer const):

6:55 PM Changeset in webkit [244208] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Try to fix Windows build.

  • page/PrintContext.cpp:

(WebCore::PrintContext::computedPageMargin):

6:52 PM Changeset in webkit [244207] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Handle bug titles with unicode characters
https://bugs.webkit.org/show_bug.cgi?id=196802

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidatePatch._is_bug_closed):

6:04 PM Changeset in webkit [244206] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Remove invalid assertion in operationInstanceOfCustom
https://bugs.webkit.org/show_bug.cgi?id=196842
<rdar://problem/49725493>

Reviewed by Michael Saboff.

JSTests:

  • stress/operationInstanceOfCustom-bad-assertion.js: Added.

Source/JavaScriptCore:

In the generated JIT code, we go to the slow path when the incoming function
isn't the Node's CodeOrigin's functionProtoHasInstanceSymbolFunction. However,
in the JIT operation, we were asserting against exec->lexicalGlobalObject()'s
functionProtoHasInstanceSymbolFunction. That assertion might be wrong when
inlining across global objects as exec->lexicalGlobalObject() uses the machine
frame for procuring the global object. There is no harm when this assertion fails
as we just execute the slow path. This patch removes the assertion. (However, this
does shed light on the deficiency in our exec->lexicalGlobalObject() function with
respect to inlining. However, this isn't new -- we've known about this for a while.)

  • jit/JITOperations.cpp:
5:58 PM Changeset in webkit [244205] by Megan Gardner
  • 4 edits in trunk/Source

Update 'Save Image' to more clear instructions
https://bugs.webkit.org/show_bug.cgi?id=196833
<rdar://problem/47446845>

Reviewed by Wenson Hsieh.

Source/WebCore:

Not testable, UI change only.

  • en.lproj/Localizable.strings:

Source/WebKit:

Just updating to a new string.

  • UIProcess/API/Cocoa/_WKElementAction.mm:

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

5:53 PM Changeset in webkit [244204] by msaboff@apple.com
  • 6 edits
    1 add in trunk

Improve the Inline Cache Stats code
https://bugs.webkit.org/show_bug.cgi?id=196836

Reviewed by Saam Barati.

Source/JavaScriptCore:

Needed to handle the case where the Identifier could be null, for example with InstanceOfAddAccessCase
and InstanceOfReplaceWithJump.

Added the ability to log the location of a GetBy and PutBy property as either on self or up the
protocol chain.

  • jit/ICStats.cpp:

(JSC::ICEvent::operator< const):
(JSC::ICEvent::dump const):

  • jit/ICStats.h:

(JSC::ICEvent::ICEvent):
(JSC::ICEvent::hash const):

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):

Tools:

Added a new script to consolidate and arrange the output of --useICStats option.

This script merges the output from every group into one large table and sorts it from most common to
least common. It also counts the slow path GetById and PutById variants and then calculates the
percentage of gets or puts for each unique base,property pair compared to all the gets and puts.
Put together, this is useful to see what property accesses are not getting cached.

  • Scripts/ic-stats.py: Added.

(ICStats):
(ICStats.init):
(ICStats.parse):
(ICStats.dumpStats):
(usage):

4:43 PM Changeset in webkit [244203] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Unable to run system Safari with trunk WebKit
https://bugs.webkit.org/show_bug.cgi?id=196777
<rdar://problem/49784574>

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
Add a linkedOnAfter check so that throwing exceptions when related web views use a different
data store only happens for apps rebuilt using recent SDK.

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

(WebKit::linkedOnOrAfter):

  • By default, linkedOnOrAfter assumed Safari / MobileSafari is always linked-on-after. To satisfy my use cases, I introduced a new AssumeSafariIsAlwaysLinkedOnAfter parameter so that this behavior can be controlled by the caller.
  • In the header, DYLD_IOS_VERSION_* / DYLD_MACOS_VERSION_* constants are 0 when building with the non-internal SDK. As a result, the check instead linkedOnOrAfter() would cause us to always return true, which was wrong. I therefore updated the check inside linkedOnOrAfter() to special-case the 0 value for sdkVersion.
4:33 PM Changeset in webkit [244202] by Alan Bujtas
  • 20 edits
    6 adds in trunk

Add @page margin support
https://bugs.webkit.org/show_bug.cgi?id=196680
<rdar://problem/45217707>

Reviewed by Tim Horton.

Source/WebCore:

This patch adds support for @page margin. This feature is currently behind a runtime flag and is off by default.
We resolve the @page margin values in the WebProcess (currently no pseudo class is supported) and transfer them to the UIProcess through computedPagesCallback.
UIProcess is responsible for applying these new values on the printer. We also re-compute the available width/height for the current printing context
in the WebProcess if needed (see PrintInfo for current printer margins).

Tests: printing/page-with-10mm-left-margin.html

printing/page-with-zero-margin.html

  • page/PrintContext.cpp:

(WebCore::PrintContext::computedPageMargin):
(WebCore::PrintContext::computedPageSize):

  • page/PrintContext.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::pageAtRuleSupportEnabled const):
(WebCore::RuntimeEnabledFeatures::setPageAtRuleSupportEnabled):

Source/WebKit:

  • Shared/PrintInfo.cpp:

(WebKit::PrintInfo::encode const):
(WebKit::PrintInfo::decode):

  • Shared/PrintInfo.h:
  • Shared/WebPreferences.yaml:
  • Shared/gtk/PrintInfoGtk.cpp:

(WebKit::PrintInfo::PrintInfo):

  • Shared/mac/PrintInfoMac.mm:

(WebKit::PrintInfo::PrintInfo):

  • UIProcess/API/C/WKPage.cpp:

(WKPageComputePagesForPrinting):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetPageAtRuleSupportEnabled):
(WKPreferencesGetPageAtRuleSupportEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/GenericCallback.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::computedPagesCallback):

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

(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::beginPrinting):
(WebKit::WebPage::computePagesForPrinting):
(WebKit::WebPage::computePagesForPrintingImpl):

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

(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):

LayoutTests:

  • printing/page-with-10mm-left-margin-expected.pdf: Added.
  • printing/page-with-10mm-left-margin.html: Added.
  • printing/page-with-zero-margin-expected.pdf: Added.
  • printing/page-with-zero-margin.html: Added.
4:13 PM Changeset in webkit [244201] by dino@apple.com
  • 6 edits in trunk/Source

Extract UTI mapping and allow for additions
https://bugs.webkit.org/show_bug.cgi?id=196822
<rdar://problem/49822339>

Reviewed by Tim Horton.

Source/WebCore:

Add an ADDITIONAL_SYSTEM_PREVIEW_TYPES macro to the list
of accepted MIME types. And add a new helper to map
MIME types to UTI types when the system was unable to
find an existing type.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):

  • platform/network/mac/UTIUtilities.mm:

(WebCore::UTIFromUnknownMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):

Source/WebKit:

Use the new helper to map MIME type to UTI.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

  • UIProcess/ios/WKSystemPreviewView.mm:

(getUTIForSystemPreviewMIMEType):

3:57 PM Changeset in webkit [244200] by rniwa@webkit.org
  • 10 edits
    10 adds in trunk

[iOS] Moving backwards by word granularity does not work if the previous line was inside another block element
https://bugs.webkit.org/show_bug.cgi?id=196670

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was ultimately caused by two reasons:

  1. On iOS, previousWordPositionBoundary would identify a blank line as a word boundary.
  2. SimplifiedBackwardsTextIterator generates a new line character (\n) between two block elements.

When moving backwards by word granularity, therefore, previousBoundary would encounter a new line created by (2)
and then previousWordPositionBoundary would identify it as a word boundary.

Fixed the bug (2) by adding the same check as TextIterator::exitNode has to avoid generating an extra new line
character following an exiting new line character. Also added internals.rangeAsTextUsingBackwardsTextIterator
to make SimplifiedBackwardsTextIterator directly testable in layout tests.

This fix unveiled an unrelated bug when moving backwards with sentence granularity at the beginning of a line.
In this case, WebKit was previously feeding ICU with the previous line's content followed by two new lines,
which constituted a new sentence. However after the fix, ICU no longer detects a new sentence after the end
of the prevous line. This patch, therefore, introduces a new optional argument to previousBoundary which forces
the succeeding paragraph's content (i.e. the content of the line from which we're moving backwards with sentence
granularity) to be fed to ICU. This fixes the bug that we were previously not being able to move backwards
with sentence granularity at the beginning of a line as indicated by the new tests.

Tests: editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity.html

editing/selection/extend-selection-backward-at-beginning-of-line-by-word-granularity.html
editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity.html
editing/selection/move-selection-backward-at-beginning-of-line-by-word-granularity.html
editing/text-iterator/backwards-text-iterator-basic.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::previousBoundary): Fixed the bug that moving backwards with sentence granularity at
the beginning of a line does not work like we did in VisibleUnits. See the description below. It's tested by
an existing layout test accessibility/mac/text-marker-sentence-nav.html, which would fail without this fix.
(WebCore::AXObjectCache::startCharacterOffsetOfSentence):

  • accessibility/AXObjectCache.h:

(WebCore::CharacterOffset::isEqual const):

  • editing/TextIterator.cpp:

(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Fixed the bug that we were generating two line
lines between block elements. This fixes the bug that moving backwards with word granularity at the beginning
of a line fails on iOS.
(WebCore::plainTextUsingBackwardsTextIteratorForTesting): Added.

  • editing/TextIterator.h:
  • editing/VisibleUnits.cpp:

(WebCore::previousBoundary): Added the code to extract the succeeding paragraph's content as context for ICU.
This fixes the bug that moving backwards with sentence granularity at the beginning of a line fails.
Limit the length of backwards iteration at the current position to avoid traversing backwards beyond
the current position, and fixed a bug that an early return for the text node was not taking the suffix length
into account when deciding whether next position resides in the starting container node or not.
(WebCore::startSentenceBoundary):
(WebCore::startOfSentence):

  • testing/Internals.cpp:

(WebCore::Internals::rangeAsTextUsingBackwardsTextIterator): Added.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Added a test for moving and extending backwards from the beginning of a line with word & sentence granularities,
and a basic set of tests forSimplifiedBackwardsTextIterator.

  • editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt: Added.
  • editing/selection/extend-selection-backward-at-beginning-of-line-by-sentence-granularity.html: Added.
  • editing/selection/extend-selection-backward-at-beginning-of-line-by-word-granularity-expected.txt: Added.
  • editing/selection/extend-selection-backward-at-beginning-of-line-by-word-granularity.html: Added.
  • editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity-expected.txt: Added.
  • editing/selection/move-selection-backward-at-beginning-of-line-by-sentence-granularity.html: Added.
  • editing/selection/move-selection-backward-at-beginning-of-line-by-word-granularity-expected.txt: Added.
  • editing/selection/move-selection-backward-at-beginning-of-line-by-word-granularity.html: Added.
  • editing/text-iterator/backwards-text-iterator-basic-expected.txt: Added.
  • editing/text-iterator/backwards-text-iterator-basic.html: Added.
3:56 PM Changeset in webkit [244199] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r244195): Timelines: unable to take heap snapshot
https://bugs.webkit.org/show_bug.cgi?id=196832
<rdar://problem/49828862>

Reviewed by Simon Fraser.

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.heapSnapshotAdded):
(WI.TimelineManager.prototype._addRecord):
Heap snapshots can be taken outside of a timeline recording, so remove the early return (and
assertion) that checks for an active recording before adding the heap snapshot record.

3:51 PM Changeset in webkit [244198] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

REGRESSION (r244182): RemoteLayerTreeDrawingArea::flushLayers() should not be reentrant
https://bugs.webkit.org/show_bug.cgi?id=196825

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

Ensure the layer transactions IDs are sequential. So bail out of
RemoteLayerTreeDrawingArea::flushLayers() if reentrancy is detected.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

3:15 PM Changeset in webkit [244197] by Wenson Hsieh
  • 17 edits
    1 copy
    4 adds in trunk

Allow the MediaSource API to be enabled via website policy
https://bugs.webkit.org/show_bug.cgi?id=196429
<rdar://problem/48774333>

Reviewed by Tim Horton.

Source/WebCore:

Add support in DocumentLoader for adjusting page settings using its per-site policies. See WebKit ChangeLog for
more detail (in particular, the implementation of applyToDocumentLoader).

Test: fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::applyPoliciesToSettings const):
(WebCore::DocumentLoader::attachToFrame):

  • loader/DocumentLoader.h:

Add an enum class for MediaSource policies; while we're at it, make all of these enum values 8 bits wide.

(WebCore::DocumentLoader::mediaSourcePolicy const):
(WebCore::DocumentLoader::setMediaSourcePolicy):

Source/WebKit:

Adds support for using WebsitePolicies to determine whether to enable the MediaSource API.

  • Shared/WebPreferences.yaml:

Disengage the mediaSourceEnabled internal preference from the corresponding WebCore setting; to ensure that
setting the preference to true still results in enabling the MediaSource API, we instead make it such that
turning on mediaSourceEnabled causes WebsitePolicies to set its WebsiteMediaSourcePolicy to Enable.

In the future, we should deprecate and remove this preference, in favor of simply setting preferred
compatibility mode on WKWebpagePreferences.

  • Shared/WebPreferences.yaml:
  • Shared/WebsiteMediaSourcePolicy.h: Copied from Source/WebKit/Shared/WebsitePoliciesData.h.
  • Shared/WebsitePoliciesData.cpp:

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

Add plumbing for m_mediaSourcePolicy in the set of website policies.

(WebKit::WebsitePoliciesData::applyToDocumentLoader):

Update the document loader with the given media source policy. There are two possibilities when applying the set
of policies to the document loader; either the document loader is already attached to a Frame, or the document
loader is yet to be attached to a Frame.

In the first case, we update Frame's settings on the spot, by calling the new applyPoliciesToSettings helper
method. In the second scenario, we stash the policy state on DocumentLoader; when the DocumentLoader is attached
to a Frame, we'll then update the Frame's settings using DocumentLoader's policy.

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

(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Move code that adjusts website policies after deciding policies for the navigation action from NavigationClient
::decidePolicyForNavigationAction to the completion handler of the policy listener. This allows us to respect
default website policies on the web view configuration, even when using the C API to set the navigation client,
and also allows us to have a single call site for adjustPoliciesForCompatibilityMode. This also enables our
layout tests to opt into modern compatibility mode by default, when specifying modern compatibility mode on
webpage preferences.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::adjustPoliciesForCompatibilityMode):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Add an on-device layout test to ensure that enabling modern compability mode also enables MSE.

  • TestExpectations:
  • fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode-expected.txt: Added.
  • fast/media/ios/ipad/enable-MediaSource-API-in-modern-compatibility-mode.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
2:51 PM Changeset in webkit [244196] by youenn@apple.com
  • 4 edits in trunk

Support RTCDataChannel blob binaryType
https://bugs.webkit.org/show_bug.cgi?id=196821

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:

Source/WebCore:

Add support for receiving blobs.
Default value is still left to 'arraybuffer' which is not spec compliant.
Covered by rebased test.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::setBinaryType):
(WebCore::RTCDataChannel::didReceiveRawData):

2:06 PM Changeset in webkit [244195] by Devin Rousso
  • 34 edits in trunk

Web Inspector: Timelines: can't reliably stop/start a recording
https://bugs.webkit.org/show_bug.cgi?id=196778
<rdar://problem/47606798>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/ScriptProfiler.json:
  • inspector/protocol/Timeline.json:

It is possible to determine when programmatic capturing starts/stops in the frontend based
on the state when the backend causes the state to change, such as if the state is "inactive"
when the frontend is told that the backend has started capturing.

  • inspector/protocol/CPUProfiler.json:
  • inspector/protocol/Memory.json:

Send an end timestamp to match other instruments.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):

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

(Inspector::InspectorScriptProfilerAgent::trackingComplete):
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStarted): Deleted.
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStopped): Deleted.

Source/WebCore:

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
It is possible to determine when programmatic capturing starts/stops in the frontend based
on the state when the backend causes the state to change, such as if the state is "inactive"
when the frontend is told that the backend has started capturing.

  • inspector/agents/InspectorCPUProfilerAgent.cpp:

(WebCore::InspectorCPUProfilerAgent::stopTracking):

  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::stopTracking):
Send an end timestamp to match other instruments.

Source/WebInspectorUI:

Rather than have a binary state of capturing/not-capturing, we should use a four state:

  1. inactive (when the backend has stopped capturing)
  2. starting (when the frontend requests capturing to start)
  3. active (when the backend has started capturing)
  4. stopping (when the frontend requests capturing to stop)

Capturing is considered "on" when not in an "inactive" state. Prevent the frontend from
starting/stopping capturing unless we're in a "stable" ("inactive" or "active") state, not a
"transition" ("starting" or "stopping") state.

One "side effect" of this change is that since the capturing is considered active until the
backend has stopped capturing, we will continue to process records in the frontend even if
the frontend has requested to stop capturing. <https://webkit.org/b/152904>

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager):
(WI.TimelineManager.prototype.get capturingState): Added.
(WI.TimelineManager.prototype.reset):
(WI.TimelineManager.prototype.get activeRecording):
(WI.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WI.TimelineManager.prototype.isCapturing):
(WI.TimelineManager.prototype.startCapturing):
(WI.TimelineManager.prototype.stopCapturing):
(WI.TimelineManager.prototype.processJSON):
(WI.TimelineManager.prototype.capturingStarted):
(WI.TimelineManager.prototype.capturingStopped):
(WI.TimelineManager.prototype.autoCaptureStarted):
(WI.TimelineManager.prototype.eventRecorded):
(WI.TimelineManager.prototype.pageDOMContentLoadedEventFired):
(WI.TimelineManager.prototype.pageLoadEventFired):
(WI.TimelineManager.prototype.cpuProfilerTrackingUpdated):
(WI.TimelineManager.prototype.cpuProfilerTrackingCompleted):
(WI.TimelineManager.prototype.memoryTrackingUpdated):
(WI.TimelineManager.prototype.memoryTrackingCompleted):
(WI.TimelineManager.prototype.heapTrackingStarted):
(WI.TimelineManager.prototype.heapTrackingCompleted):
(WI.TimelineManager.prototype.heapSnapshotAdded):
(WI.TimelineManager.prototype._updateCapturingState): Added.
(WI.TimelineManager.prototype._processRecord):
(WI.TimelineManager.prototype._processEvent):
(WI.TimelineManager.prototype._loadNewRecording):
(WI.TimelineManager.prototype._addRecord):
(WI.TimelineManager.prototype._attemptAutoCapturingForFrame):
(WI.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame):
(WI.TimelineManager.prototype._stopAutoRecordingSoon):
(WI.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
(WI.TimelineManager.prototype._resourceWasAdded):
(WI.TimelineManager.prototype._garbageCollected):
(WI.TimelineManager.prototype._memoryPressure):
(WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged):
(WI.TimelineManager.prototype.scriptProfilerTrackingCompleted):
(WI.TimelineManager.prototype._handleDOMNodeDidFireEvent):
(WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged):
(WI.TimelineManager.prototype.unloadRecording): Deleted.
(WI.TimelineManager.prototype.programmaticCaptureStarted): Deleted.
(WI.TimelineManager.prototype.programmaticCaptureStopped): Deleted.
(WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted): Deleted.
(WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped): Deleted.

  • UserInterface/Protocol/ScriptProfilerObserver.js:

(WI.ScriptProfilerObserver.prototype.trackingComplete):
(WI.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
(WI.ScriptProfilerObserver.prototype.programmaticCaptureStopped):

  • UserInterface/Protocol/TimelineObserver.js:

(WI.TimelineObserver.prototype.programmaticCaptureStarted):
(WI.TimelineObserver.prototype.programmaticCaptureStopped):
It is possible to determine when programmatic capturing starts/stops in the frontend based
on the state when the backend causes the state to change, such as if the state is "inactive"
when the frontend is told that the backend has started capturing.

  • UserInterface/Protocol/CPUProfilerObserver.js:

(WI.CPUProfilerObserver.prototype.trackingComplete):

  • UserInterface/Protocol/MemoryObserver.js:

(WI.MemoryObserver.prototype.trackingComplete):
Send an end timestamp to match other instruments.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype._handleTimelineCapturingStateChanged): Added.
(WI.DebuggerManager.prototype._timelineCapturingWillStart): Deleted.
(WI.DebuggerManager.prototype._timelineCapturingStopped): Deleted.

  • UserInterface/Models/DefaultDashboard.js:

(WI.DefaultDashboard):
(WI.DefaultDashboard.prototype._handleTimelineCapturingStateChanged): Added.
(WI.DefaultDashboard.prototype._capturingStopped): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added.
(WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): Deleted.
(WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped): Deleted.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added.
(WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart): Deleted.
(WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped): Deleted.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview):
(WI.TimelineOverview.prototype._handleTimelineCapturingStateChanged): Added.
(WI.TimelineOverview.prototype._capturingStarted): Deleted.
(WI.TimelineOverview.prototype._capturingStopped): Deleted.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView):
(WI.TimelineRecordingContentView.prototype._handleTimelineCapturingStateChanged): Added.
(WI.TimelineRecordingContentView.prototype._recordingUnloaded):
(WI.TimelineRecordingContentView.prototype._capturingStarted): Deleted.
(WI.TimelineRecordingContentView.prototype._capturingStopped): Deleted.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):
(WI.TimelineTabContentView.prototype._handleTimelineCapturingStateChanged): Added.
(WI.TimelineTabContentView.prototype._capturingStartedOrStopped): Deleted.
Use the new single event for all Timelines capture state changes.
Prevent the record button from being clicked when capturing is in a transition state.

LayoutTests:

  • inspector/timeline/debugger-paused-while-recording.html:
  • inspector/timeline/exception-in-injected-script-while-recording.html:
  • inspector/timeline/line-column.html:
  • inspector/timeline/recording-start-stop-timestamps.html:
  • inspector/timeline/resources/timeline-event-utilities.js:
  • inspector/timeline/setInstruments-programmatic-capture.html:
  • inspector/timeline/setInstruments-programmatic-capture-expected.txt:
  • inspector/timeline/timeline-recording.html:
1:56 PM Changeset in webkit [244194] by Kocsen Chung
  • 4 edits
    1 delete in branches/safari-607-branch

Revert r244165. rdar://problem/49788895

1:47 PM Changeset in webkit [244193] by sbarati@apple.com
  • 28 edits in trunk/Source/JavaScriptCore

Rename SetArgument to SetArgumentDefinitely
https://bugs.webkit.org/show_bug.cgi?id=196828

Reviewed by Yusuke Suzuki.

This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=196712
where we will introduce a node named SetArgumentMaybe. Doing this refactoring
first will make reviewing that other patch easier.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeLocalsInBlock):
(JSC::DFG::CPSRethreadingPhase::specialCaseArguments):
(JSC::DFG::CPSRethreadingPhase::propagatePhis):
(JSC::DFG::CPSRethreadingPhase::computeIsFlushed):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGCommon.h:
  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGGraph.h:
  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGLiveCatchVariablePreservationPhase.cpp:

(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlockForTryCatch):

  • dfg/DFGMaximalFlushInsertionPhase.cpp:

(JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::hasVariableAccessData):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertPhantomToPhantomLocal):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSREntrypointCreationPhase.cpp:

(JSC::DFG::OSREntrypointCreationPhase::run):

  • dfg/DFGPhantomInsertionPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::checkArgumentTypes):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGTypeCheckHoistingPhase.cpp:

(JSC::DFG::TypeCheckHoistingPhase::run):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

11:09 AM Changeset in webkit [244192] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

REGRESSION: changing iPad orientation on blogger.com crashes under RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations()
https://bugs.webkit.org/show_bug.cgi?id=196813
<rdar://problem/49393264>

Reviewed by Simon Fraser.

No test, can't repro.

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::establishLayerTreeScrollingRelations):

Null check the nodes.

10:45 AM Changeset in webkit [244191] by Truitt Savell
  • 25 edits in trunk/Source

Unreviewed, rolling out r244158.

Casued 8 inspector/timeline/ test failures.

Reverted changeset:

"Web Inspector: Timelines: can't reliably stop/start a
recording"
https://bugs.webkit.org/show_bug.cgi?id=196778
https://trac.webkit.org/changeset/244158

10:24 AM Changeset in webkit [244190] by Alan Coon
  • 6 edits in branches/safari-607-branch/Source/WebKit

Apply patch. rdar://problem/49788956

8:49 AM Changeset in webkit [244189] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Spanish translation
https://bugs.webkit.org/show_bug.cgi?id=196810

Patch by Álvaro Torralba <donfrutosgomez@gmail.com> on 2019-04-11
Rubber-stamped by Michael Catanzaro.

  • es.po:
6:30 AM Changeset in webkit [244188] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WPE] Build error with ENABLE_VIDEO=OFF after r244078
https://bugs.webkit.org/show_bug.cgi?id=196811

createGenericCue() is only defined when VIDEO_TRACK is enabled.

Patch by Pablo Saavedra <Pablo Saavedra> on 2019-04-11
Reviewed by Eric Carlson.

  • testing/Internals.cpp:

(WebCore::Internals::createGenericCue):

  • testing/Internals.h:
1:25 AM Changeset in webkit [244187] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Layout test accessibility/aria-hidden-false-works-in-subtrees.html fails after r184890
https://bugs.webkit.org/show_bug.cgi?id=146718
<rdar://problem/21722487>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Allow to get the text under element for nodes hidden in DOM but explicitly exposed to accessibility with
aria-hidden="false".

Fixes: accessibility/aria-hidden-false-works-in-subtrees.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement const):

  • accessibility/atk/WebKitAccessible.cpp:

(roleIsTextType): Also consider ApplicationGroup role as text elements, so that <div>text</div> is equivalent to
<div role="roup">test</div>.

LayoutTests:

Update test to ATK behavior, rebaseline it and remove the expectations.

  • accessibility/aria-hidden-false-works-in-subtrees.html:
  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/aria-hidden-false-works-in-subtrees-expected.txt:
Note: See TracTimeline for information about the timeline view.