Timeline



Jun 14, 2019:

8:20 PM Changeset in webkit [246456] by Devin Rousso
  • 4 edits in trunk/Source/WebKit

waitForNavigationToComplete may be called before WebPageProxy knows it's loading
https://bugs.webkit.org/show_bug.cgi?id=198741
<rdar://problem/31164316>

Reviewed by Joseph Pecoraro.

There's a potential race in WebAutomationSession::waitForNavigationToCompleteOnPage when
querying for the WebPageProxy's loading state (via PageLoadingState::isLoading), in that
a pending load may be committed _after_ the WebAutomationSession checks it's value. This
makes the automation session think that it isn't loading, so it will continue running
commands, which can lead to a JavaScript error ("Callback was not called before the unload
event") as any injected scripts will be cleared by the impending navigation, leaving the
script evaluation callbacks "dangling".

Expose more information from PageLoadState about whether it thinks there _may_ be a
navigation currently happening, which the WebAutomationSession can use to delay commands.

In the best case, no navigations are "missed".

In the worst case, the automation session will wait pageLoadTimeout before continuing.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage):

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

(WebKit::PageLoadState::hasUncommittedLoad const): Added.

8:09 PM Changeset in webkit [246455] by Devin Rousso
  • 14 edits in trunk/LayoutTests

Web Inspector: rework http/tests/inspector/network/resource-sizes-network.html to print the actual values so other platforms don't FAIL
https://bugs.webkit.org/show_bug.cgi?id=198877
<rdar://problem/50381370>

Reviewed by Joseph Pecoraro.

  • http/tests/inspector/network/resources/resource-size-test.js:

(TestPage.registerInitializer.window.addResourceSizeTest):

  • http/tests/inspector/network/resource-sizes-disk-cache.html:
  • http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:
  • http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
  • platform/gtk/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
  • platform/mac/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
  • platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt:
  • http/tests/inspector/network/resource-sizes-network.html:
  • http/tests/inspector/network/resource-sizes-network-expected.txt:
  • platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
  • platform/mac/http/tests/inspector/network/resource-sizes-network-expected.txt:
  • platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt:
7:50 PM Changeset in webkit [246454] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 85

Added a tag for Safari Technology Preview release 85.

7:23 PM Changeset in webkit [246453] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Repeatedly check for IDB removal to address flakiness in http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html
https://bugs.webkit.org/show_bug.cgi?id=198185
<rdar://problem/51074251>

Unreviewed test gardening.

There's an asynchronosity in the removal of IDB entries so this test case
needs to check repeatedly until the removal has happened.

  • http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html:
  • platform/ios-simulator-wk2/TestExpectations:

Removed skip.

6:07 PM Changeset in webkit [246452] by youenn@apple.com
  • 11 edits in trunk/Source/WebKit

WebProcessPool::clearWebProcessHasUploads cannot assume its given processIdentifier is valid
https://bugs.webkit.org/show_bug.cgi?id=198865
<rdar://problem/51618878>

Reviewed by Brady Eidson.

NetworkProcess currently instructs UIProcess whether a given WebProcess is doing upload.
There is no guarantee though that the WebProcessProxy is still there when the IPC is arriving at UIProcess.
Instead, let WebProcess handles its upload state and notify WebProcessPool about its state.
Make sure WebProcessProxy unregisters itself in case of crash.
In case of NetworkProcess crash, WebProcesses will see all their uploads fail
and will notify automatically UIProcess to update their state.

Since the processID given to WebProcessPool is coming from IPC, we cannot not trust it.
Add early return in case of not finding a WebProcessProxy for WebProcessPool clear/set methods.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkResourceLoadMap.cpp:

(WebKit::NetworkResourceLoadMap::add):
(WebKit::NetworkResourceLoadMap::take):

  • NetworkProcess/NetworkResourceLoadMap.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setWebProcessHasUploads):
(WebKit::WebProcessPool::clearWebProcessHasUploads):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::tryLoadingSynchronouslyUsingURLSchemeHandler):

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

(WebKit::WebProcess::ensureNetworkProcessConnection):

4:14 PM Changeset in webkit [246451] by keith_miller@apple.com
  • 20 edits in trunk/Source

Restore PAC based cage.
https://bugs.webkit.org/show_bug.cgi?id=198872

Rubber-stamped by Saam Barati.

Source/bmalloc:

  • bmalloc/Gigacage.h:

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::bitFieldInsert64):

  • assembler/MacroAssemblerARM64E.h:
  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):
(JSC::run):

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::caged):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageWithoutUntagging):
(JSC::AssemblyHelpers::cageConditionally):
(JSC::AssemblyHelpers::cage): Deleted.

  • jit/JITPropertyAccess.cpp:

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

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/arm64.rb:
  • offlineasm/instructions.rb:
  • offlineasm/registers.rb:
  • wasm/WasmAirIRGenerator.cpp:

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

  • wasm/WasmB3IRGenerator.cpp:

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

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

4:12 PM Changeset in webkit [246450] by dbates@webkit.org
  • 1 edit
    4 copies
    5 moves
    12 adds
    1 delete in trunk/LayoutTests

[iOS] Split up fast/events/ios/key-events-meta-alt-combinations.html and add more tests
https://bugs.webkit.org/show_bug.cgi?id=198834
<rdar://problem/50103348>

Reviewed by Brent Fulgham.

The test fast/events/ios/key-events-meta-alt-combinations.html frequently times out. Let's try
to break up this test into multiple files. Also add more modifier combination tests and group
all these combination tests under a new direcdtory: fast/events/ios/key-events-comprehensive.

  • fast/events/ios/key-events-comprehensive/key-events-control-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-control-expected.txt.
  • fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-control-option.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
  • fast/events/ios/key-events-comprehensive/key-events-control-shift-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-control-shift.html: Copied from LayoutTests/fast/events/ios/key-events-control.html.
  • fast/events/ios/key-events-comprehensive/key-events-control.html: Renamed from LayoutTests/fast/events/ios/key-events-control.html.
  • fast/events/ios/key-events-comprehensive/key-events-meta-control-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-meta-control.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
  • fast/events/ios/key-events-comprehensive/key-events-meta-expected.txt: Renamed from LayoutTests/fast/events/ios/key-events-meta-expected.txt.
  • fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-meta-option.html: Renamed from LayoutTests/fast/events/ios/key-events-meta-alt-combinations.html.
  • fast/events/ios/key-events-comprehensive/key-events-meta-shift-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-meta-shift.html: Copied from LayoutTests/fast/events/ios/key-events-meta.html.
  • fast/events/ios/key-events-comprehensive/key-events-meta.html: Renamed from LayoutTests/fast/events/ios/key-events-meta.html.
  • fast/events/ios/key-events-comprehensive/key-events-option-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-option-shift.html: Added.
  • fast/events/ios/key-events-comprehensive/key-events-option.html: Added.
  • fast/events/ios/key-events-comprehensive/key-events-shift-expected.txt: Added.
  • fast/events/ios/key-events-comprehensive/key-events-shift.html: Added.
  • fast/events/ios/key-events-meta-alt-combinations-expected.txt: Removed.
4:05 PM Changeset in webkit [246449] by youenn@apple.com
  • 10 edits in trunk

WebResourceLoadStatisticsStore should not use its network session if invalidated
https://bugs.webkit.org/show_bug.cgi?id=198814

Reviewed by Geoffrey Garen.

Source/WebKit:

Tell WebResourceLoadStatisticsStore that its network session is invalidated.
WebResourceLoadStatisticsStore will then clear its reference to the network session.

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
Added for test purposes to trigger further cookie processing.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::invalidateAndCancel):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::invalidateAndCancel):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

3:52 PM Changeset in webkit [246448] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit

[Cocoa] NSFileWrapper associated with _WKAttachment
https://bugs.webkit.org/show_bug.cgi?id=198871
<rdar://problem/51760625>

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/_WKAttachment.mm:

(-[_WKAttachment dealloc]):
Ensure we destruct the API::Object associated with this so RetainPtrs can release.

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

WebKit's NSAttributedString.h is not included in the WebKit.h umbrella header
https://bugs.webkit.org/show_bug.cgi?id=198869
<rdar://problem/51754437>

Reviewed by Timothy Hatcher.

  • Shared/API/Cocoa/WebKit.h:

Make the new API available to modularized clients and folks who just import WebKit.h

2:39 PM Changeset in webkit [246446] by jiewen_tan@apple.com
  • 7 edits in trunk/Source

Disable AppSSO for web processes and plugin processes
https://bugs.webkit.org/show_bug.cgi?id=198843
<rdar://problem/51642920>

Reviewed by Sam Weinig.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Adds a SPI to disable AppSSO for CFNetwork.

Source/WebKit:

This patch moves the disabling of AppSSO from AuxiliaryProcess to PluginProcess
and WebProcess such that NetworkingProcess will not be affected.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializePluginProcess):

  • Shared/ios/AuxiliaryProcessIOS.mm:

(WebKit::AuxiliaryProcess::platformInitialize):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::platformInitialize):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

2:17 PM Changeset in webkit [246445] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

[Pointer Events] button property is -1 for pointerdown and pointerup
https://bugs.webkit.org/show_bug.cgi?id=198868
<rdar://problem/51758109>

Reviewed by Dean Jackson.

Source/WebCore:

A value of -1 for "button", which means there was no change of pressed button since the last event, should only ever be used for "pointermove" events.

Test: pointerevents/mouse/pointer-button-and-buttons.html

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::pointerEventForMouseEvent):

LayoutTests:

  • pointerevents/mouse/pointer-button-and-buttons-expected.txt: Added.
  • pointerevents/mouse/pointer-button-and-buttons.html: Added.
  • pointerevents/utils.js:

(prototype._handlePointerEvent):

2:00 PM Changeset in webkit [246444] by Megan Gardner
  • 15 edits in trunk/Source

Move Synthetic Editing Commands to behind an experimental feature flag
https://bugs.webkit.org/show_bug.cgi?id=198842
<rdar://problem/50594700>

Reviewed by Simon Fraser.

Source/WebCore:

Moving from a quirk to a feature flag.

  • page/Quirks.cpp:

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

  • page/Quirks.h:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setSyntheticEditingCommandsEnabled):
(WebCore::RuntimeEnabledFeatures::syntheticEditingCommandsEnabled const):

Source/WebKit:

Add a feature flag to gate synthetic editing commands.

  • Shared/WebPreferences.yaml:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

Source/WebKitLegacy/mac:

Add plumbing for synthetic editing command feature flag.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences syntheticEditingCommandsEnabled]):
(-[WebPreferences setSyntheticEditingCommandsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

1:55 PM Changeset in webkit [246443] by Kocsen Chung
  • 7 edits in tags/Safari-608.1.29.1/Source

Versioning.

1:46 PM Changeset in webkit [246442] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.29.1

New tag.

1:10 PM Changeset in webkit [246441] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION(244439): platform/mac/media/encrypted-media/fps-* tests are crashing
https://bugs.webkit.org/show_bug.cgi?id=198612
<rdar://problem/51078978>

Reviewed by Eric Carlson.

There are two implementations of a 'cenc' initialiation data factory; an ASSERT fires when
the second one is added to the registry. Unify them.

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::extractKeyIDsCenc):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

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

  • platform/graphics/avfoundation/CDMFairPlayStreaming.h:
1:10 PM Changeset in webkit [246440] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Move http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html off of testRunner.setAlwaysAcceptCookies()
https://bugs.webkit.org/show_bug.cgi?id=198863
<rdar://problem/47854589>

Unreviewed test gardening.

testRunner.setAlwaysAcceptCookies() is not working right (tracked
in rdar://problem/51757107). Therefore, we need to change
http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html
to make it work properly.

  • http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
  • http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
11:59 AM Changeset in webkit [246439] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed. Follow up to r246438. This removes a debug assert until
we do further compiler work in: https://bugs.webkit.org/show_bug.cgi?id=198861

  • Modules/webgpu/WHLSL/WHLSLCheckDuplicateFunctions.cpp:

(WebCore::WHLSL::checkDuplicateFunctions):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
11:01 AM Changeset in webkit [246438] by sbarati@apple.com
  • 11 edits
    4 adds in trunk

[WHLSL] Implement out-of-bounds and nullptr behavior
https://bugs.webkit.org/show_bug.cgi?id=198600
<rdar://problem/51668853>

Reviewed by Robin Morisset.

Source/WebCore:

The behavior we're implementing is:

  • OOB writes are ignored.
  • OOB reads return zero.
  • Writes to null are ignored.
  • Reads from null return zero.
  • &*x == x, including &*null == null.


We implement this like so:

  • The value stack in FunctionWriter turns into a stack of pairs: rvalues and lvalues. rvalues are represented the same as before. Lvalues are always pointers.
  • Anything that produces an lvalue must push a pointer to the stack. Not all things produce lvalues, so that entry in the stack may be empty. However, all things that produce lvalues also produce rvalues. So, "*x = 42" works, and so does "foo(*x)". Nodes that produce lvalues are responsible for also producing an rvalue, which should be the value as if the lvalue was dereferenced at that point in program execution. So the "*x" in "thread int* x = null; *x" produces the int zero for its rvalue, and null for its lvalue.
  • Dereference just works, as dereference produces both an lvalue and rvalue. Dereference node's child must also be an lvalue. So we just forward that value along on the stack. For the rvalue, if we try to dereference nullptr, we just fill in zero bytes instead. Otherwise, the rvalue is the result of dereferencing the non-null pointer.
  • Assignment expressions check if the incoming lvalue is null. If it is, it skips the assignment.
  • operator&[] returns nullptr on an OOB access. Then, based on the above behavior, we get the desired OOB reads return zero, and OOB writes are ignored.
  • MakePointerExpression just takes the last lvalue off the stack (which must be a pointer) and returns it as an rvalue.
  • VariableReference will push both the variable value and a pointer to the variable onto the stack.

This patch also fixes a few bugs where we weren't giving certain AST nodes the
proper address space values.

This patch also removes code to generate native functions for operators
"operator[]" and "operator[]=" as we should never be generating these
ourselves. We should only be generating the "operator&[]" ander.

Tests: webgpu/whlsl-null-dereference.html

webgpu/whlsl-oob-access.html

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

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::FunctionDefinitionWriter):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendRightValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::appendLeftValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::takeLastLeftValue):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):

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

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

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

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):

  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:

(WebCore::WHLSL::PreserveLifetimes::assignVariableIntoStruct):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::trySetFunctions):

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

(WebCore::trySetFunctions):

LayoutTests:

  • webgpu/whlsl-null-dereference-expected.txt: Added.
  • webgpu/whlsl-null-dereference.html: Added.
  • webgpu/whlsl-oob-access-expected.txt: Added.
  • webgpu/whlsl-oob-access.html: Added.
10:42 AM Changeset in webkit [246437] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

CRASH(nullptr) in WebCore::jsAudioContextCurrentTime()
https://bugs.webkit.org/show_bug.cgi?id=198859
<rdar://problem/27986991>

Reviewed by Eric Carlson.

AudioContext's m_destinationNode can become null during iframe teardown,
but can AudioContext methods can still be called by JavaScript. Add null-checks
to all (remaing) unprotected dereferences of m_destinationNode.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::createBufferSource):
(WebCore::AudioContext::createScriptProcessor):
(WebCore::AudioContext::createBiquadFilter):
(WebCore::AudioContext::createPanner):
(WebCore::AudioContext::createConvolver):
(WebCore::AudioContext::createDynamicsCompressor):
(WebCore::AudioContext::createAnalyser):
(WebCore::AudioContext::createGain):
(WebCore::AudioContext::createDelay):
(WebCore::AudioContext::createChannelSplitter):
(WebCore::AudioContext::createChannelMerger):
(WebCore::AudioContext::createOscillator):

  • Modules/webaudio/AudioContext.h:

(WebCore::AudioContext::currentSampleFrame const):
(WebCore::AudioContext::currentTime const):
(WebCore::AudioContext::sampleRate const):

10:14 AM Changeset in webkit [246436] by youenn@apple.com
  • 21 edits in trunk

Cloning a MediaStreamTrack does not clone the logger
https://bugs.webkit.org/show_bug.cgi?id=198844

Reviewed by Eric Carlson.

Source/WebCore:

Make MediaStream and MediaStreamTrack rely on their private versions for logging.
Move from a RefPtr version to a Ref so as to forbid nullptr crashes.
Make sure that RealtimeIncomingAudioSource and RealtimeIncomingVideoSource check for their logger before logging.
Covered by existing tests and updated test.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::loggerFromContext):
(WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::loggerFromContext):
(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource):

  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::create):
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
(WebCore::MediaStreamPrivate::setLogger): Deleted.

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::create):
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
(WebCore::MediaStreamTrackPrivate::clone):
(WebCore::MediaStreamTrackPrivate::setLogger): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::createMediaStream):

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:

(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferPool):
(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

LayoutTests:

  • fast/mediastream/MediaStreamTrack-clone-expected.txt:
  • fast/mediastream/MediaStreamTrack-clone.html:
10:12 AM Changeset in webkit [246435] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

webgpu/compute-squares.html test was deleted in https://trac.webkit.org/changeset/246427
https://bugs.webkit.org/show_bug.cgi?id=198841

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Removing expectation for deleted teest
8:53 AM Changeset in webkit [246434] by youenn@apple.com
  • 5 edits in trunk/Tools

import-w3c-tests should respect WEBKIT_OUTPUTDIR
https://bugs.webkit.org/show_bug.cgi?id=198682
<rdar://problem/51536931>

Reviewed by Jonathan Bedard.

Check for WEBKIT_OUTPUTDIR environment variable to compute the w3c-tests folder.
Made some refactoring to also teach WPTPaths users about WEBKIT_OUTPUTDIR.

  • Scripts/webkitpy/common/webkit_finder.py:

(WebKitFinder.path_from_webkit_outputdir):

  • Scripts/webkitpy/w3c/common.py:

(WPTPaths):
(WPTPaths.checkout_directory):
(WPTPaths.wpt_checkout_path):

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(test_checkout_directory):

7:44 AM Changeset in webkit [246433] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win10] Some tests are failing only on specific machines
https://bugs.webkit.org/show_bug.cgi?id=197509

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:32 AM WebKitGTK/2.24.x edited by Philippe Normand
(diff)
6:05 AM Changeset in webkit [246432] by ajuma@chromium.org
  • 5 edits
    2 adds in trunk

IntersectionObserver rootMargin detection fails when root is an element
https://bugs.webkit.org/show_bug.cgi?id=198784

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Import https://github.com/web-platform-tests/wpt/pull/17323.

  • web-platform-tests/intersection-observer/root-margin-root-element-expected.txt: Added.
  • web-platform-tests/intersection-observer/root-margin-root-element.html: Added.

Source/WebCore:

When computing a target's bounds in root space, we were applying the root's
clip rect (if any), and then intersecting with the root rect expanded by the
root margin. This meant that if a target did not intersect the non-expanded root
rect, we would get an empty intersection even if the target did intersect the
expanded root rect. Fix this by not applying the root's clip rect when computing
a target's bounds in root space. Add a new VisibleRectContextOption::ApplyContainerClip
that determines whether RenderObject::computeVisibleRectInContainer should apply
the container's clip.

Test: imported/w3c/web-platform-tests/intersection-observer/root-margin-root-element.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::applyCachedClipAndScrollPosition const):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::visibleRectContextForRepaint):

  • rendering/RenderObject.h:
1:02 AM Changeset in webkit [246431] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[cairo] Entering text into forms on github.com creates a trapezoid artifact
https://bugs.webkit.org/show_bug.cgi?id=126124

Reviewed by Michael Catanzaro.

Mixing antialiasing modes in the same clip is not actually supported by cairo. In the case of rectangle clips we
are already ignoring the current antialiasing to not do any antialiasing. We could do the opposite for clips
receiving a path, we want to enforce antialiasing in that case since the paths might contain curves. Doing that
we ensure all calls to clip with a path use the same antialiasing, which is the case of the github bug.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::doClipWithAntialias): Helper to call cairo_clip() with the given antialising mode.
(WebCore::Cairo::clip): Use doClipWithAntialias().
(WebCore::Cairo::clipOut): Ditto.
(WebCore::Cairo::clipPath): Ditto.

Jun 13, 2019:

11:52 PM Changeset in webkit [246430] by Devin Rousso
  • 12 edits in trunk

Web Inspector: REGRESSION(r246178): extra spaces added in at-rules when formatting CSS
https://bugs.webkit.org/show_bug.cgi?id=198806

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/CSSFormatter.js:

(CSSFormatter.prototype._format):
Add more specific tests for at-rules, and add/remove whitespace depending on the type of
at-rule (e.g. @supports vs @media), as well as where the scanner is in the parameters of
the at at-rule (e.g. @supports | vs @media (|).

  • UserInterface/Workers/Formatter/FormatterContentBuilder.js:

(FormatterContentBuilder):
(FormatterContentBuilder.prototype.get lastToken): Added.
(FormatterContentBuilder.prototype.get currentLine):
(FormatterContentBuilder.prototype.removeLastNewline):
(FormatterContentBuilder.prototype.removeLastWhitespace):
(FormatterContentBuilder.prototype._popFormattedContent):
(FormatterContentBuilder.prototype._append):
Update lastTokenWasNewline and lastTokenWasWhitespace when removing newlines/whitespace.
Memoize the currentLine so it's less expensive to re-fetch.

LayoutTests:

  • inspector/formatting/resources/css-tests/keyframes.css:
  • inspector/formatting/resources/css-tests/keyframes-expected.css:
  • inspector/formatting/resources/css-tests/media-query.css:
  • inspector/formatting/resources/css-tests/media-query-expected.css:
  • inspector/formatting/resources/css-tests/selectors.css:
  • inspector/formatting/resources/css-tests/selectors-expected.css:
  • inspector/formatting/resources/css-tests/wrapping.css:
  • inspector/formatting/resources/css-tests/wrapping-expected.css:
11:50 PM Changeset in webkit [246429] by graouts@webkit.org
  • 7 edits in trunk

REGRESSION (r246103) [ Mojave+ WK1 ] Layout Test scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=198800
<rdar://problem/51679634>

Reviewed by Tim Horton.

Source/WebKitLegacy/mac:

Expose a private method that we need to use from DumpRenderTree.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _hitViewForEvent:]):

  • WebView/WebHTMLViewPrivate.h:

Tools:

We didn't detect an NSScroller in a sub-frame due to WebHTMLView's implementation of -[NSView hitTest:]. We now use a private method
which lets us use the default implementation and correctly returns an NSScroller in a sub-frame.

  • DumpRenderTree/mac/EventSendingController.mm:

(eventPressedMouseButtonsSwizzlerForViewAndEvent):
(-[EventSendingController mouseDown:withModifiers:]):
(-[EventSendingController mouseUp:withModifiers:]):
(-[EventSendingController mouseMoveToX:Y:]):

LayoutTests:

This test now passes reliably on WK1.

  • platform/mac-wk1/TestExpectations:
10:45 PM Changeset in webkit [246428] by mmaxfield@apple.com
  • 13 edits in trunk/Source/WebCore

[WHLSL] Remove unnecessary ASSERT()s and clean up visitor lambdas
https://bugs.webkit.org/show_bug.cgi?id=198706

Reviewed by Dean Jackson, Saam Barati, and Robin Morisset.

Some minor refactoring.

If the code is going to unconditionally downcast<Foo>(bar), there's no need
to guard that with an ASSERT(is<Foo>(bar)) because the downcast() call will
do that automatically.

No new tests because there is no behavior change.

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

(WebCore::WHLSL::AST::ConstantExpression::visit):
(WebCore::WHLSL::AST::ConstantExpression::visit const):

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

(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns):

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

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

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

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

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

(WebCore::WHLSL::Metal::writeNativeType):

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

(WebCore::WHLSL::Metal::find):
(WebCore::WHLSL::Metal::TypeNamer::createNameNode):
(WebCore::WHLSL::Metal::TypeNamer::insert):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::argumentTypeForAndOverload):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::inferTypesForTypeArguments):

  • Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:

(WebCore::WHLSL::Intrinsics::addFullTexture):
(WebCore::WHLSL::Intrinsics::addDepthTexture):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLVisitor.cpp:

(WebCore::WHLSL::Visitor::visit):

10:20 PM Changeset in webkit [246427] by mmaxfield@apple.com
  • 16 edits
    2 copies
    4 adds
    2 deletes in trunk

[WHLSL] Hook up compute
https://bugs.webkit.org/show_bug.cgi?id=198644

Reviewed by Saam Barati.

Source/WebCore:

This patch hooks up compute shaders in exactly the same way that vertex and fragment shaders
are hooked up. I've modified the two patchs (compute and rendering) to be almost exactly the
same code.

This patch also adds support for the WHLSL compiler to determine what the numthreads()
attribute in the shader says so that it can be hooked up to Metal's threads-per-threadgroup
argument in the dispatch call. There is some logic to make sure that there aren't two
numthreads() attributes on the same compute shader.

It also adds a little bit of type renaming. For built-in variables, sometimes Metal's type
doesn't always match WHLSL's (and HLSL's type). For example, in WHLSL and HLSL, SV_DispatchThreadID variables have to be a float3, but in Metal, they are a uint3.
Therefore, I've added a little bit of code during each entry point's pack and unpack stages
to handle this type conversion.

Test: webgpu/whlsl-compute.html

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

(WebCore::WHLSL::Metal::internalTypeForSemantic): Determine which Metal type corresponds to
each built-in variable.
(WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Perform the type
conversion.
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Ditto.

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Added. Add a pass to determine whether

or not any entry point has duplicate numthreads() attribute, and to determine what the
appropriate numthreads() values should be for the current entry point.
(WebCore::WHLSL::ComputeDimensionsVisitor::ComputeDimensionsVisitor):
(WebCore::WHLSL::ComputeDimensionsVisitor::computeDimensions const):
(WebCore::WHLSL::computeDimensions):

  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h.
  • Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp:

(WebCore::WHLSL::gatherEntryPointItems): Compute shaders don't need to have a semantic for their return type.

  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::prepare): Run the computeDimensions() pass.

  • Modules/webgpu/WHLSL/WHLSLPrepare.h:
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: In a left-value propertyAccessExpression,

the index expression can be a right-value. Treat it as such.
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):
(WebCore::WHLSL::LeftValueSimplifier::visit):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: We need support for multiplication (for a

test) and float3 for SV_DispatchThreadID.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUComputePipeline.h: Associate a compute dimensions with a particular

compute pipeline. This is how Metal knows what values to use for a dispatch.
(WebCore::GPUComputePipeline::computeDimensions const):

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Use the saved compute dimensions.

(WebCore::GPUComputePassEncoder::dispatch):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Make the code match GPURenderPipelineMetal.

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):
(WebCore::tryCreateMtlComputeFunction): Deleted.

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Added. Moved shared helper

functions to a file where they can be accessed by multiple places.
(WebCore::convertShaderStageFlags):
(WebCore::convertBindingType):
(WebCore::convertLayout):

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h.
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Delete the functions that were moved to GPUPipelineMetalConvertLayout.

(WebCore::trySetFunctions):
(WebCore::tryCreateMtlRenderPipelineState):
(WebCore::convertShaderStageFlags): Deleted.
(WebCore::convertBindingType): Deleted.
(WebCore::convertLayout): Deleted.

LayoutTests:

This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

  • webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
  • webgpu/compute-squares.html: Deleted. Ditto.
  • webgpu/whlsl-compute-expected.txt: Added.
  • webgpu/whlsl-compute.html: Added.
8:50 PM Changeset in webkit [246426] by Alan Bujtas
  • 1 edit
    1 copy
    1 add
    1 delete in trunk/LayoutTests

[ContentChangeObserver] LayoutTest/fast/content-observation/click-event-suppression-on-content-change.html is failing
https://bugs.webkit.org/show_bug.cgi?id=198848
<rdar://problem/51689630>

Reviewed by Dean Jackson.

  1. Enable content observation for this test.
  2. Add role attribute to trigger fast click-through -less flaky with the sleeps.
  3. Use UIHelper functions.
  • fast/content-observation/click-event-suppression-on-content-change.html: Removed.
  • fast/events/touch/ios/content-observation/click-event-suppression-on-content-change-expected.txt: Renamed from LayoutTests/fast/content-observation/click-event-suppression-on-content-change-expected.txt.
  • fast/events/touch/ios/content-observation/click-event-suppression-on-content-change.html: Added.
8:06 PM Changeset in webkit [246425] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Fix selection hang in Mail
https://bugs.webkit.org/show_bug.cgi?id=198845
<rdar://problem/51388180>

Reviewed by Tim Horton.

SelectionDidChange requires a selectionWillChange in order to keep things in line.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionChanged]):

8:06 PM Changeset in webkit [246424] by Kocsen Chung
  • 10 edits
    1 copy in branches/safari-607.3.1.2-branch/Source/JavaScriptCore

Apply patch. rdar://problem/51670916

7:59 PM Changeset in webkit [246423] by Kocsen Chung
  • 10 edits in branches/safari-607-branch/Source/JavaScriptCore

Apply patch. rdar://problem/51656841

7:54 PM Changeset in webkit [246422] by Kocsen Chung
  • 7 edits in branches/safari-608.1.27.20-branch/Source

Versioning.

7:30 PM Changeset in webkit [246421] by Kocsen Chung
  • 10 edits
    1 move
    1 add in branches/safari-607-branch

Apply patch. rdar://problem/51656608

7:30 PM Changeset in webkit [246420] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-607-branch

Apply patch. rdar://problem/51656844

7:11 PM Changeset in webkit [246419] by Devin Rousso
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: indent type and size settings aren't respected everywhere
https://bugs.webkit.org/show_bug.cgi?id=198804

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CodeMirrorEditor.js:

(WI.CodeMirrorEditor.create):
When creating a CodeMirror instance, default to using the global Settings as the options.
If an override is specified in options, it will take precedence and the CodeMirror will
ignore any changes to the Setting as well.

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor):
(WI.TextEditor.prototype.close): Deleted.

  • UserInterface/Views/AuditTestCaseContentView.js:

(WI.AuditTestCaseContentView.prototype.layout):

  • UserInterface/Views/BreakpointActionView.js:

(WI.BreakpointActionView.prototype._updateBody):

  • UserInterface/Views/ConsolePrompt.js:

(WI.ConsolePrompt):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
Remove overrides that aren't necessary for CodeMirror to fit in the container element:

  • showWhitespaceCharacters
  • indentWithTabs
  • indentUnit
  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.close):

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView.prototype.closed): Deleted.

  • UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.closed): Deleted.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.closed):
Delete the logic for removing event listeners from global Setting, as it didn't work
anyways, since none of the event listeners were added using a thisObject.

6:51 PM Changeset in webkit [246418] by Fujii Hironori
  • 2 edits in trunk/Tools

[WinCairo][WebKitTestRunner] pixel image dump outputs blank images
https://bugs.webkit.org/show_bug.cgi?id=198820

Reviewed by Ross Kirsling.

WebView window paints nothing because it is moved out of the
screen. Send WM_PRINT with memory DC instead of WM_PAINT as well
as DumpRenderTree does.

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::windowSnapshotImage): Send WM_PRINT instead of BitBlt.

4:01 PM Changeset in webkit [246417] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS] Normalize test result of fast/events/ios/keyboard-event-key-attribute.html to handle possible modifier dispatch
https://bugs.webkit.org/show_bug.cgi?id=198835
<rdar://problem/46082708>

Reviewed by Darin Adler.

WebKit now knows how to handle flag change events on iOS and dispatch DOM events just like Mac.
Until USE(UIKIT_KEYBOARD_ADDITIONS) is enabled by default WebKit does not expect to receive
modifier flag changes. But once this compile time flag is enabled it will and the test
fast/events/ios/keyboard-event-key-attribute.html will fail because it types '@' and only
expects to see a single keydown for '@' even though it actually requires two key downs to
generate an '@': Shift, and 2 (on a US keyboard layout). We have a bunch of other tests to
check that modifier key presses generate DOM events. So, let's just normalize the result of
this test to ignore Shift keydowns.

  • fast/events/ios/keyboard-event-key-attribute.html:
2:59 PM Changeset in webkit [246416] by Truitt Savell
  • 3 edits in trunk/LayoutTests

Test gardening after r246406
https://bugs.webkit.org/show_bug.cgi?id=198774

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:26 PM Changeset in webkit [246415] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

AVKit play button bypasses MediaElementSession playbackPermitted() checks.
https://bugs.webkit.org/show_bug.cgi?id=198813

Reviewed by Eric Carlson.

HTMLMediaElement::togglePlayState() is an internal-only method that doesn't
run playbackPermitted() checks. For our imitation AVPlayerController, translate
requests to -togglePlayback: into calls to play() and pause() depending on
playback state.

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController togglePlayback:]):

2:22 PM Changeset in webkit [246414] by timothy_horton@apple.com
  • 4 edits in trunk

Make it possible for validate-committer-lists to dump a mailmap file
https://bugs.webkit.org/show_bug.cgi?id=198517

Reviewed by Simon Fraser.

.:

  • .gitignore:

Ignore .mailmap files.

Tools:

Mailmaps wildly improve the output of various Git tools, including
git shortlog -sne, mapping committers to our canonical name/email pair.

  • Scripts/validate-committer-lists:

(CommitterListFromGit):
(CommitterListBugzillaChecker.print_committers_with_invalid_bugzilla_emails):
Add some missing legacy username mappings.

(dump_mailmap):
(dump_mailmap.format_email):
(dump_mailmap.format_email_with_gitsvn_uuid):
(dump_mailmap.map_emails_to_legacy_username):
(main):
Add validate-committer-lists --dump-mailmap, which generates
one given committers.json and the existing mapping of legacy username
to email addresses that exists in validate-committer-lists.

2:20 PM Changeset in webkit [246413] by timothy_horton@apple.com
  • 13 edits in trunk/Source/WebKit

No content shows up for WKWebView while locked even with _canShowWhileLocked is YES
https://bugs.webkit.org/show_bug.cgi?id=198819
<rdar://problem/51636240>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::didCreateContextForVisibilityPropagation):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::contextIDForVisibilityPropagation const):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::contextIDForVisibilityPropagation): Deleted.

  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _setupVisibilityPropagationView]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didCreateContextForVisibilityPropagation): Deleted.

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::didCreateContextForVisibilityPropagation): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shrinkToFitContentTimer):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Move the creation of the visibility propagation context to WebPage instead of WebProcess,
because canShowWhileLocked is per-page, not per-process.

Also, pass canShowWhileLocked into the context creation function for the visibility
propagation context, not just RemoteLayerTree contexts.

1:55 PM Changeset in webkit [246412] by Jonathan Bedard
  • 5 edits in trunk/LayoutTests

run-webkit-tests: Correctly garden fast/events/ios, fast/forms/ios tests
https://bugs.webkit.org/show_bug.cgi?id=198798

Reviewed by Aakash Jain.

Any expectations for fast/events/ios and fast/forms/ios tests are overriden
in ios-wk2 expectations, remove them since they don't do anything.

  • platform/ios-device/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ipad/TestExpectations:
1:36 PM Changeset in webkit [246411] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

webgpu/compute-squares.html is crashing on HighSierra
https://bugs.webkit.org/show_bug.cgi?id=198841

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Skipping on High Sierra
1:00 PM Changeset in webkit [246410] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: sticky header disappears when over scrolling
https://bugs.webkit.org/show_bug.cgi?id=198833

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SettingsTabContentView.css:

(.content-view.settings .navigation-bar):
(.content-view.settings > .settings-view): Added.
(.content-view.settings): Deleted.

12:06 PM Changeset in webkit [246409] by Shawn Roberts
  • 16 edits
    2 adds
    6 deletes in trunk

Unreviewed, rolling out r246396 and r246397.
https://bugs.webkit.org/show_bug.cgi?id=198837

Breaks internal builds (Requested by ShawnRoberts on #webkit).

Reverted changesets:

"[WHLSL] Hook up compute"
https://bugs.webkit.org/show_bug.cgi?id=198644
https://trac.webkit.org/changeset/246396

"[WHLSL] Hook up compute"
https://bugs.webkit.org/show_bug.cgi?id=198644
https://trac.webkit.org/changeset/246397

Patch by Commit Queue <commit-queue@webkit.org> on 2019-06-13

11:47 AM Changeset in webkit [246408] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

Yarr bytecode compilation failure should be gracefully handled
https://bugs.webkit.org/show_bug.cgi?id=198700

Reviewed by Michael Saboff.

JSTests:

  • stress/regexp-bytecode-compilation-fail.js: Added.

(shouldThrow):

Source/JavaScriptCore:

Currently, we assume that Yarr bytecode compilation does not fail. But in fact it can fail.
We should gracefully handle this failure as a runtime error, as we did for parse errors in [1].
We also harden Yarr's consumed character calculation by using Checked.

[1]: https://bugs.webkit.org/show_bug.cgi?id=185755

  • inspector/ContentSearchUtilities.cpp:

(Inspector::ContentSearchUtilities::findMagicComment):

  • runtime/RegExp.cpp:

(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):

  • yarr/YarrErrorCode.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::ByteCompiler):
(JSC::Yarr::ByteCompiler::compile):
(JSC::Yarr::ByteCompiler::atomCharacterClass):
(JSC::Yarr::ByteCompiler::atomBackReference):
(JSC::Yarr::ByteCompiler::atomParenthesesOnceBegin):
(JSC::Yarr::ByteCompiler::atomParenthesesTerminalBegin):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternBegin):
(JSC::Yarr::ByteCompiler::atomParentheticalAssertionBegin):
(JSC::Yarr::ByteCompiler::popParenthesesStack):
(JSC::Yarr::ByteCompiler::closeAlternative):
(JSC::Yarr::ByteCompiler::closeBodyAlternative):
(JSC::Yarr::ByteCompiler::alternativeBodyDisjunction):
(JSC::Yarr::ByteCompiler::alternativeDisjunction):
(JSC::Yarr::ByteCompiler::emitDisjunction):

11:36 AM Changeset in webkit [246407] by Antti Koivisto
  • 3 edits
    2 adds in trunk

twitch.tv: embedded video hovers down the screen when scrolling on iPad
https://bugs.webkit.org/show_bug.cgi?id=198832
<rdar://problem/51541439>

Reviewed by Simon Fraser.

Source/WebCore:

Test: compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

Overflow scroll layer may have composited descendants that are its paint order siblings. We need to invalidate
the tree of the paint order parent for compositing update (instead of just the tree of the overflow scroll layer).

This matches what RenderLayer::updateLayerPosition() does.

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling-expected.html: Added.
  • compositing/scrolling/async-overflow-scrolling/overflow-scroll-paint-order-sibling.html: Added.
11:35 AM Changeset in webkit [246406] by youenn@apple.com
  • 8 edits
    653 adds in trunk/LayoutTests

Import WPT websockets tests
https://bugs.webkit.org/show_bug.cgi?id=198774

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt:

Rebasing since we now have some websockets specific handlers.

  • web-platform-tests/websockets: Added.

LayoutTests:

11:14 AM Changeset in webkit [246405] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

SocketStreamHandle should not be destroyed in a background thread
https://bugs.webkit.org/show_bug.cgi?id=198781

Reviewed by Geoffrey Garen.

Make sure to destroy SocketStreamHandle on the main thread since it owns an URL created on the main thread.
Covered by WPT websocket tests from https://bugs.webkit.org/show_bug.cgi?id=198774.

  • platform/network/SocketStreamHandle.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

  • platform/network/SocketStreamHandle.h:
9:05 AM Changeset in webkit [246404] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

"display: contents" Content click does not trigger
https://bugs.webkit.org/show_bug.cgi?id=198559
<rdar://problem/51488524>

Patch by Antoine Quint <Antoine Quint> on 2019-06-13
Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/events/ios/click-event-and-display-contents.html

  • dom/Element.h:

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::commitPotentialTap):

LayoutTests:

Add a new test that checks that tapping on an element with "display: contents" correctly gets a "click" event.

  • fast/events/ios/click-event-and-display-contents-expected.txt: Added.
  • fast/events/ios/click-event-and-display-contents.html: Added.
8:07 AM Changeset in webkit [246403] by youenn@apple.com
  • 5 edits in trunk/LayoutTests

Update service worker test and expectation after revision 246363
https://bugs.webkit.org/show_bug.cgi?id=198808

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html:

Make sure the fetch load finishes so that removing the frame does not cancel the fetch.

LayoutTests:

Skip timing out test in Debug

7:50 AM Changeset in webkit [246402] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Update expectations after r246397.

  • platform/gtk/TestExpectations:
7:49 AM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
7:06 AM Changeset in webkit [246401] by commit-queue@webkit.org
  • 13 edits in trunk/Source

[curl] Remove member objects of CurlRequest not to share by different threads.
https://bugs.webkit.org/show_bug.cgi?id=198747

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-06-13
Reviewed by Fujii Hironori.

Source/WebCore:

Removed m_certificateInfo and m_networkLoadMetrics.
Before patch those objects were updated by different threads.

No tests needed, no functionality changes.

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::curlDidReceiveResponse):
(WebCore::CurlDownload::curlDidReceiveBuffer):
(WebCore::CurlDownload::curlDidComplete):
(WebCore::CurlDownload::curlDidFailWithError):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::start):
(WebCore::CurlRequest::didReceiveHeader):
(WebCore::CurlRequest::didCompleteTransfer):
(WebCore::CurlRequest::invokeDidReceiveResponse):
(WebCore::CurlRequest::networkLoadMetrics):
(WebCore::CurlRequest::updateNetworkLoadMetrics): Deleted.

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::setStartTime):
(WebCore::CurlRequest::certificateInfo const): Deleted.
(WebCore::CurlRequest::networkLoadMetrics const): Deleted.

  • platform/network/curl/CurlRequestClient.h:
  • platform/network/curl/CurlResourceHandleDelegate.cpp:

(WebCore::CurlResourceHandleDelegate::curlDidSendData):
(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
(WebCore::CurlResourceHandleDelegate::curlDidReceiveBuffer):
(WebCore::CurlResourceHandleDelegate::curlDidComplete):
(WebCore::CurlResourceHandleDelegate::curlDidFailWithError):

  • platform/network/curl/CurlResourceHandleDelegate.h:
  • platform/network/curl/CurlResponse.h:

(WebCore::CurlResponse::isolatedCopy const):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

Source/WebKit:

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::curlDidReceiveResponse):
(WebKit::NetworkDataTaskCurl::curlDidComplete):
(WebKit::NetworkDataTaskCurl::curlDidFailWithError):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:
7:05 AM Changeset in webkit [246400] by zandobersek@gmail.com
  • 10 edits
    2 adds in trunk/Source

[Nicosia] Add SceneIntegration
https://bugs.webkit.org/show_bug.cgi?id=198791

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add the SceneIntegration class to the Nicosia namespace, primarily for
the purpose of being able to conveniently trigger scene updates whenever
changes are done to the state of layers that are included in that scene.
Initially this would be used for layer changes done on a
scrolling-dedicated thread.

Each Nicosia::PlatformLayer can have a SceneIntegration object reference
associated. Helper createUpdateScope() method returns a
SceneIntegration::UpdateScope instance that triggers an update for the
scene when that instance is destroyed (normally when it goes out of the
scope).

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::PlatformLayer::setSceneIntegration):
(Nicosia::PlatformLayer::createUpdateScope):

  • platform/graphics/nicosia/NicosiaSceneIntegration.cpp: Added.

(Nicosia::SceneIntegration::SceneIntegration):
(Nicosia::SceneIntegration::~SceneIntegration):
(Nicosia::SceneIntegration::setClient):
(Nicosia::SceneIntegration::invalidate):
(Nicosia::SceneIntegration::requestUpdate):
(Nicosia::SceneIntegration::createUpdateScope):
(Nicosia::SceneIntegration::UpdateScope::UpdateScope):
(Nicosia::SceneIntegration::UpdateScope::~UpdateScope):

  • platform/graphics/nicosia/NicosiaSceneIntegration.h: Added.

Source/WebKit:

Have the LayerTreeHost own the SceneIntegration object that's to be
associated with layers used inside the LayerTreeHost's scene. The
class now also inherits the SceneIntegration::Client interface, with the
requestUpdate() method scheduling a scene update in ThreadedCompositor.

CompositingCoordinator now retrieves the SceneIntegration object from
the LayerTreeHost instance and manages association to that object for
layers under the coordinator's control.

ThreadedCompositor class gets a new public updateScene() method that
schedules an update, enabling the SceneIntegration class to invoke
scene updates.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::updateScene):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::createGraphicsLayer):
(WebKit::CompositingCoordinator::detachLayer):
(WebKit::CompositingCoordinator::attachLayer):

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

(WebKit::LayerTreeHost::LayerTreeHost):
(WebKit::LayerTreeHost::sceneIntegration):
(WebKit::LayerTreeHost::requestUpdate):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
7:04 AM Changeset in webkit [246399] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] HLS stream slow start
https://bugs.webkit.org/show_bug.cgi?id=198377

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcCreate): Cut down the adapter condition to 200 ms to
improve start-up times for HLS playback.

4:38 AM Changeset in webkit [246398] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[GTK] gdk_display_get_device_manager and gdk_screen_get_width/height are deprecated
https://bugs.webkit.org/show_bug.cgi?id=198822

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

GdkSeat and GdkRectangle should be used, respectively.

Source/WebCore:

No behaviour changes.

  • platform/gtk/GtkVersioning.c:

(getDefaultGDKPointerDevice):
(getScreenWorkArea):

Source/WebKit:

  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::doMouseEvent):
(WebKit::doMotionEvent):
(WebKit::doKeyStrokeEvent):

Jun 12, 2019:

11:28 PM Changeset in webkit [246397] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[WHLSL] Hook up compute
https://bugs.webkit.org/show_bug.cgi?id=198644

Unreviewed build fix. Release iOS build would complain that pipelineState was unused.

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

(WebCore::GPUComputePassEncoder::dispatch):

11:06 PM Changeset in webkit [246396] by mmaxfield@apple.com
  • 16 edits
    2 copies
    4 adds
    2 deletes in trunk

[WHLSL] Hook up compute
https://bugs.webkit.org/show_bug.cgi?id=198644

Reviewed by Saam Barati.

Source/WebCore:

This patch hooks up compute shaders in exactly the same way that vertex and fragment shaders
are hooked up. I've modified the two patchs (compute and rendering) to be almost exactly the
same code.

This patch also adds support for the WHLSL compiler to determine what the numthreads()
attribute in the shader says so that it can be hooked up to Metal's threads-per-threadgroup
argument in the dispatch call. There is some logic to make sure that there aren't two
numthreads() attributes on the same compute shader.

It also adds a little bit of type renaming. For built-in variables, sometimes Metal's type
doesn't always match WHLSL's (and HLSL's type). For example, in WHLSL and HLSL, SV_DispatchThreadID variables have to be a float3, but in Metal, they are a uint3.
Therefore, I've added a little bit of code during each entry point's pack and unpack stages
to handle this type conversion.

Test: webgpu/whlsl-compute.html

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

(WebCore::WHLSL::Metal::internalTypeForSemantic): Determine which Metal type corresponds to
each built-in variable.
(WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Perform the type
conversion.
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::VertexEntryPointScaffolding): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Ditto.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::FragmentEntryPointScaffolding): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Ditto.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Ditto.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Ditto.

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.cpp: Added. Add a pass to determine whether

or not any entry point has duplicate numthreads() attribute, and to determine what the
appropriate numthreads() values should be for the current entry point.
(WebCore::WHLSL::ComputeDimensionsVisitor::ComputeDimensionsVisitor):
(WebCore::WHLSL::ComputeDimensionsVisitor::computeDimensions const):
(WebCore::WHLSL::computeDimensions):

  • Modules/webgpu/WHLSL/WHLSLComputeDimensions.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h.
  • Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp:

(WebCore::WHLSL::gatherEntryPointItems): Compute shaders don't need to have a semantic for their return type.

  • Modules/webgpu/WHLSL/WHLSLPrepare.cpp:

(WebCore::WHLSL::prepare): Run the computeDimensions() pass.

  • Modules/webgpu/WHLSL/WHLSLPrepare.h:
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp: In a left-value propertyAccessExpression,

the index expression can be a right-value. Treat it as such.
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):
(WebCore::WHLSL::LeftValueSimplifier::visit):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt: We need support for multiplication (for a

test) and float3 for SV_DispatchThreadID.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUComputePipeline.h: Associate a compute dimensions with a particular

compute pipeline. This is how Metal knows what values to use for a dispatch.
(WebCore::GPUComputePipeline::computeDimensions const):

  • platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm: Use the saved compute dimensions.

(WebCore::GPUComputePassEncoder::dispatch):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm: Make the code match GPURenderPipelineMetal.

(WebCore::trySetMetalFunctions):
(WebCore::trySetFunctions):
(WebCore::convertComputePipelineDescriptor):
(WebCore::tryCreateMTLComputePipelineState):
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):
(WebCore::tryCreateMtlComputeFunction): Deleted.

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp: Added. Moved shared helper

functions to a file where they can be accessed by multiple places.
(WebCore::convertShaderStageFlags):
(WebCore::convertBindingType):
(WebCore::convertLayout):

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLPrepare.h.
  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Delete the functions that were moved to GPUPipelineMetalConvertLayout.

(WebCore::trySetFunctions):
(WebCore::tryCreateMtlRenderPipelineState):
(WebCore::convertShaderStageFlags): Deleted.
(WebCore::convertBindingType): Deleted.
(WebCore::convertLayout): Deleted.

LayoutTests:

This doesn't thoroughly test compute, but it's at least enough to unblock the WHLSL testing effort.

  • webgpu/compute-squares-expected.txt: Deleted. Covered by webgpu/whlsl-compute.html.
  • webgpu/compute-squares.html: Deleted. Ditto.
  • webgpu/whlsl-compute-expected.txt: Added.
  • webgpu/whlsl-compute.html: Added.
10:57 PM Changeset in webkit [246395] by graouts@webkit.org
  • 8 edits in trunk/Source

Show the web page URL when sharing an AR model
https://bugs.webkit.org/show_bug.cgi?id=198812
<rdar://problem/48689498>

Reviewed by Dean Jackson.

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/DownloadClient.mm:

(WebKit::DownloadClient::didStart):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource initWithMIMEType:originatingPageURL:]):
(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):
(WebKit::SystemPreviewController::start):
(-[_WKPreviewControllerDataSource initWithMIMEType:]): Deleted.

  • UIProcess/SystemPreviewController.h:

Source/WTF:

  • wtf/Platform.h:
10:38 PM Changeset in webkit [246394] by mmaxfield@apple.com
  • 17 edits
    2 copies
    2 adds
    2 deletes in trunk

[WHLSL] Implement array references
https://bugs.webkit.org/show_bug.cgi?id=198163

Reviewed by Saam Barati.

Source/WebCore:

The compiler automatically generates anders for every array reference. Luckily, the infrastructure
to generate those anders and emit Metal code to represent them already exists in the compiler.
There are two pieces remaining (which this patch implements):

  1. The JavaScript compiler has a behavior where anders that are called with an array reference as an argument don't wrap the argument in a MakePointerExpression. This is because the array reference is already a reference type, so it's silly to operate on a pointer to a reference. This patch implements this by teaching the type checker about which types should be passed to the ander call, and by actually constructing those types in the property resolver. The property resolver does this by placing the logic to construct an ander argument in a single function which also has logic to save the argument in a temporary if the thread ander will be called. The semantics about which functions are called in which situations are not changed; instead, we just simply don't wrap array references with MakePointerExpressions.
  1. Creating a bind group from the WebGPU API has to retain information about buffer lengths for each buffer so the shader can properly perform bounds checks. This can be broken down into a few pieces:
    • Creating a bind group layout has to assign extra id indexes for each buffer which will be filled in to represent the buffer's length
    • Creating the bind group itself needs to fill in the buffer length into the Metal argument buffer
    • The shader compiler needs to emit code at the beginning of entry point to find the buffer lengths and pack them together into the array reference (array references correspond to a Metal struct with two fields: a pointer and a length).

This patch doesn't actually implement bounds checks themselves; it just hooks up the buffer
lengths so https://bugs.webkit.org/show_bug.cgi?id=198600 can implement it.

The shader compiler's API is modified to allow for this extra buffer length information to be
passed in from the WebGPU implementation.

Unfortunately, I don't think I could split this patch up into two pieces because both are
required to test the compiler with buffers.

Tests: webgpu/whlsl-buffer-fragment.html

webgpu/whlsl-buffer-vertex.html

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

(WebCore::WHLSL::AST::PropertyAccessExpression::baseReference):

  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.cpp:

(WebCore::WHLSL::AST::ResourceSemantic::isAcceptableType const): Arrays can't be resources
because the compiler has no way of guaranteeing if the resource is long enough to hold the
array at compile time.

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

(WebCore::WHLSL::Metal::EntryPointScaffolding::EntryPointScaffolding): Generate an extra
variable name to represent the buffer length. Only do it for resources which have lengths.
(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Perform
the appropriate math to turn byte lengths into element counts and store the element count
in the array reference.

  • Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveWithOperatorAnderIndexer): Refactor.
(WebCore::WHLSL::resolveWithOperatorLength): Ditto.
(WebCore::WHLSL::resolveWithReferenceComparator): Ditto.
(WebCore::WHLSL::resolveByInstantiation): Ditto.
(WebCore::WHLSL::argumentTypeForAndOverload): Given an ander, what should the type of the
argument be?
(WebCore::WHLSL::Checker::finishVisiting): Call argumentTypeForAndOverload(). Also, if
we couldn't find an ander, try automatically generating it, the same way that function
calls do. (This is how array references get their anders.)
(WebCore::WHLSL::Checker::visit):

  • Modules/webgpu/WHLSL/WHLSLPipelineDescriptor.h: New WHLSL API to provide the length

information.

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit): SimplifyRightValue() can't fail any more.
(WebCore::WHLSL::wrapAnderCallArgument): If the ander argument should be wrapped in a
MakePointer or a MakeArrayReference, do that. Also, if the ander is a thread ander, save
the argument in a local variable and use that.
(WebCore::WHLSL::anderCallArgument): The equivalent of argumentTypeForAndOverload().
(WebCore::WHLSL::setterCall): Call anderCallArgument().
(WebCore::WHLSL::getterCall): Ditto.
(WebCore::WHLSL::modify): We used to have special-case code for handling pointer-to-argument
values as distinct from just the argument values themselves. However, emitting
chains of &* operators is valid and won't even make it through the Metal code generator
after https://bugs.webkit.org/show_bug.cgi?id=198600 is fixed. So, in order to simplify
wrapAnderCallArgument(), don't special case these values and just create &* chains instead.
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting): Call anderCallArgument().

  • Modules/webgpu/WHLSL/WHLSLSemanticMatcher.cpp: Update to support the new compiler API.

(WebCore::WHLSL::matchMode):
(WebCore::WHLSL::matchResources):

  • Modules/webgpu/WebGPUBindGroupDescriptor.cpp: Ditto.

(WebCore::WebGPUBindGroupDescriptor::tryCreateGPUBindGroupDescriptor const):

  • platform/graphics/gpu/GPUBindGroupLayout.h: Add some internal implementation data inside

the bindings object. Use a Variant to differentiate between the various bindings types, and
put the extra length field on just those members of the variant that represent buffers.

  • platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm: Update to support the new compiler API.

(WebCore::argumentDescriptor):
(WebCore::GPUBindGroupLayout::tryCreate):

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

(WebCore::setBufferOnEncoder):
(WebCore::GPUBindGroup::tryCreate):

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

(WebCore::convertBindingType):
(WebCore::convertLayout):

LayoutTests:

  • webgpu/buffer-resource-triangles-expected.html: Deleted. This test doens't make any sense and triggers

Metal to read out-of-bounds of a vertex buffer.

  • webgpu/buffer-resource-triangles.html: Deleted.
  • webgpu/whlsl-buffer-fragment-expected.html: Added.
  • webgpu/whlsl-buffer-fragment.html: Added.
  • webgpu/whlsl-buffer-vertex-expected.html: Added.
  • webgpu/whlsl-buffer-vertex.html: Added.
  • webgpu/whlsl-dont-crash-parsing-enum.html:
  • webgpu/whlsl.html:
10:10 PM Changeset in webkit [246393] by Justin Fan
  • 5 edits
    2 adds in trunk

[WebGL] ANGLE Extension directive location incorrectly enforced for webgl 1.0
https://bugs.webkit.org/show_bug.cgi?id=198811

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

Apply ANGLE change from https://chromium-review.googlesource.com/c/angle/angle/+/1648661 to
prevent enforcing ESSL late extension rule on WebGL 1.0 shaders.

  • src/compiler/preprocessor/DiagnosticsBase.cpp:

(angle::pp::Diagnostics::message):

  • src/compiler/preprocessor/DiagnosticsBase.h:
  • src/compiler/preprocessor/DirectiveParser.cpp:

(angle::pp::DirectiveParser::parseExtension):

LayoutTests:

ANGLE was updated so that this case should not be an error.

  • webgl/webgl-extension-directive-location-no-error-expected.txt: Added.
  • webgl/webgl-extension-directive-location-no-error.html: Added.
10:06 PM Changeset in webkit [246392] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Try to fix iOS build.

  • NetworkProcess/Downloads/DownloadMap.cpp:
9:10 PM Changeset in webkit [246391] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

[cairo][SVG] If clipPath has multiple elements, clip-path doesn't work with transform
https://bugs.webkit.org/show_bug.cgi?id=198746
Source/WebCore:

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-06-12
Reviewed by Don Olmstead.

We need to save the current transformation matrix at the moment the image mask is set and set it again on
restore right before applying the mask. This patch also creates a pattern for the image mask surface and set its
transformation matrix according to the mask position, so that we don't need to save the mask rectangle too.

Tests: svg/clip-path/clip-hidpi-expected.svg

svg/clip-path/clip-hidpi.svg
svg/clip-path/clip-opacity-translate-expected.svg
svg/clip-path/clip-opacity-translate.svg

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::restore):
(WebCore::PlatformContextCairo::pushImageMask):

LayoutTests:

<rdar://problem/51620347>

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-06-12
Reviewed by Don Olmstead.

  • svg/clip-path/clip-hidpi-expected.svg: Added.
  • svg/clip-path/clip-hidpi.svg: Added.
  • svg/clip-path/clip-opacity-translate-expected.svg: Added.
  • svg/clip-path/clip-opacity-translate.svg: Added.
8:44 PM Changeset in webkit [246390] by mmaxfield@apple.com
  • 52 edits in trunk/LayoutTests

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

Unreviewed test gardening.

Failing WebGPU tests should fail instead of time out.

  • webgpu/blend-color-triangle-strip.html:
  • webgpu/blend-triangle-strip.html:
  • webgpu/blit-commands.html:
  • webgpu/buffer-command-buffer-races.html:
  • webgpu/buffer-resource-triangles.html:
  • webgpu/color-write-mask-triangle-strip.html:
  • webgpu/depth-enabled-triangle-strip.html:
  • webgpu/draw-indexed-triangles.html:
  • webgpu/propertyresolver/ander-abstract-lvalue.html:
  • webgpu/propertyresolver/ander-lvalue-3-levels.html:
  • webgpu/propertyresolver/ander-lvalue.html:
  • webgpu/propertyresolver/ander.html:
  • webgpu/propertyresolver/getter.html:
  • webgpu/propertyresolver/indexer-ander-abstract-lvalue.html:
  • webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html:
  • webgpu/propertyresolver/indexer-ander-lvalue.html:
  • webgpu/propertyresolver/indexer-ander.html:
  • webgpu/propertyresolver/indexer-getter.html:
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html:
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue.html:
  • webgpu/propertyresolver/indexer-setter-lvalue.html:
  • webgpu/propertyresolver/indexer-setter.html:
  • webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html:
  • webgpu/propertyresolver/setter-abstract-lvalue.html:
  • webgpu/propertyresolver/setter-lvalue.html:
  • webgpu/simple-triangle-strip.html:
  • webgpu/texture-triangle-strip.html:
  • webgpu/vertex-buffer-triangle-strip.html:
  • webgpu/viewport-scissor-rect-triangle-strip.html:
  • webgpu/whlsl-arbitrary-vertex-attribute-locations.html:
  • webgpu/whlsl-dereference-pointer-should-type-check.html:
  • webgpu/whlsl-do-while-loop-break.html:
  • webgpu/whlsl-do-while-loop-continue.html:
  • webgpu/whlsl-do-while-loop.html:
  • webgpu/whlsl-dont-crash-parsing-enum.html:
  • webgpu/whlsl-dot-expressions.html:
  • webgpu/whlsl-ensure-proper-variable-lifetime-2.html:
  • webgpu/whlsl-ensure-proper-variable-lifetime-3.html:
  • webgpu/whlsl-ensure-proper-variable-lifetime.html:
  • webgpu/whlsl-loops-break.html:
  • webgpu/whlsl-loops-continue.html:
  • webgpu/whlsl-loops.html:
  • webgpu/whlsl-nested-dot-expression-rvalue.html:
  • webgpu/whlsl-nested-loop.html:
  • webgpu/whlsl-return-local-variable.html:
  • webgpu/whlsl-store-to-property-updates-properly.html:
  • webgpu/whlsl-while-loop-break.html:
  • webgpu/whlsl-while-loop-continue.html:
  • webgpu/whlsl-zero-initialize-values-2.html:
  • webgpu/whlsl-zero-initialize-values.html:
  • webgpu/whlsl.html:
8:21 PM Changeset in webkit [246389] by Simon Fraser
  • 6 edits
    2 adds in trunk

paddingBoxRect() is wrong with RTL scrollbars on the left
https://bugs.webkit.org/show_bug.cgi?id=198816

Reviewed by Jon Lee.

Source/WebCore:

RenderBox::paddingBoxRect() needs to offset the left side of the box for the
vertical scrollbar, if it's placed on the left.

Test: compositing/geometry/rtl-overflow-scroll.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paddingBoxRect const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::paddingBoxRect const): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::controlClipRect const):

LayoutTests:

  • compositing/geometry/rtl-overflow-scroll-expected.html: Added.
  • compositing/geometry/rtl-overflow-scroll.html: Added.
6:04 PM Changeset in webkit [246388] by youenn@apple.com
  • 38 edits
    4 copies
    7 adds in trunk/Source

Use NSURLSession for WebSocket
https://bugs.webkit.org/show_bug.cgi?id=198568

Reviewed by Geoffrey Garen.

Source/WebCore:

Add a runtime flag to either choose the new WebSocket code path or the previously existing one.
The switch is done at WebSocket channel API level which offers the necessary high level API to abstract the two code paths.
By default, we continue using the current WebSocket implementation.
Covered by manual testing on current WebSocket tests.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::document):

  • Modules/websockets/WebSocketChannel.h:
  • WebCore.xcodeproj/project.pbxproj:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::isNSURLSessionWebSocketEnabled const):
(WebCore::RuntimeEnabledFeatures::setIsNSURLSessionWebSocketEnabled):

  • page/SocketProvider.cpp:

(WebCore::SocketProvider::createWebSocketChannel):

  • page/SocketProvider.h:

Source/WebKit:

Implement socket channel provider on WebProcess level by sending IPC to NetworkProcess.
On NetworkProcess side, use NSURLSession API to implement the WebSocket functionality.
This is a partial implementation:

  • inspector integration is not working.
  • some error cases are not well handled or are not producing the same error messages.
  • some features are not implemented (extensions, subprotocols, handshake authentication challenge, cookie handling...).
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::removeSocketChannel):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::createWebSocketTask):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::removeWebSocketTask):
(WebKit::NetworkSession::addWebSocketTask):

  • NetworkProcess/NetworkSocketChannel.cpp: Added.

(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
(WebKit::NetworkSocketChannel::~NetworkSocketChannel):
(WebKit::NetworkSocketChannel::sendString):
(WebKit::NetworkSocketChannel::sendData):
(WebKit::NetworkSocketChannel::finishClosingIfPossible):
(WebKit::NetworkSocketChannel::close):
(WebKit::NetworkSocketChannel::didConnect):
(WebKit::NetworkSocketChannel::didReceiveText):
(WebKit::NetworkSocketChannel::didReceiveBinaryData):
(WebKit::NetworkSocketChannel::didClose):
(WebKit::NetworkSocketChannel::messageSenderConnection const):

  • NetworkProcess/NetworkSocketChannel.h: Added.
  • NetworkProcess/NetworkSocketChannel.messages.in: Added.
  • NetworkProcess/NetworkSocketStream.messages.in:
  • NetworkProcess/WebSocketTask.h: Added.

(WebKit::WebSocketTask::sendString):
(WebKit::WebSocketTask::sendData):
(WebKit::WebSocketTask::close):
(WebKit::WebSocketTask::cancel):
(WebKit::WebSocketTask::resume):

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

(-[WKNetworkSessionDelegate existingWebSocketTask:]):
(-[WKNetworkSessionDelegate URLSession:webSocketTask:didOpenWithProtocol:]):
(-[WKNetworkSessionDelegate URLSession:webSocketTask:didCloseWithCode:reason:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
(WebKit::NetworkSessionCocoa::addWebSocketTask):
(WebKit::NetworkSessionCocoa::removeWebSocketTask):
(WebKit::NetworkSessionCocoa::webSocketDataTaskForIdentifier):

  • NetworkProcess/cocoa/WebSocketTaskCocoa.h: Added.
  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm: Added.

(WebKit::WebSocketTask::WebSocketTask):
(WebKit::WebSocketTask::~WebSocketTask):
(WebKit::WebSocketTask::readNextMessage):
(WebKit::WebSocketTask::cancel):
(WebKit::WebSocketTask::resume):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didClose):
(WebKit::WebSocketTask::sendString):
(WebKit::WebSocketTask::sendData):
(WebKit::WebSocketTask::close):
(WebKit::WebSocketTask::identifier const):

  • Shared/WebPreferences.yaml:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/Network/WebSocketChannel.cpp: Added.

(WebKit::WebSocketChannel::create):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::~WebSocketChannel):
(WebKit::WebSocketChannel::messageSenderConnection const):
(WebKit::WebSocketChannel::messageSenderDestinationID const):
(WebKit::WebSocketChannel::subprotocol):
(WebKit::WebSocketChannel::extensions):
(WebKit::WebSocketChannel::connect):
(WebKit::WebSocketChannel::send):
(WebKit::WebSocketChannel::bufferedAmount const):
(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::disconnect):
(WebKit::WebSocketChannel::didConnect):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didFail):
(WebKit::WebSocketChannel::networkProcessCrashed):

  • WebProcess/Network/WebSocketChannel.h: Added.
  • WebProcess/Network/WebSocketChannel.messages.in: Added.
  • WebProcess/Network/WebSocketChannelManager.cpp: Added.

(WebKit::WebSocketChannelManager::createWebSocketChannel):
(WebKit::WebSocketChannelManager::networkProcessCrashed):
(WebKit::WebSocketChannelManager::didReceiveMessage):

  • WebProcess/Network/WebSocketChannelManager.h: Added.
  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createWebSocketChannel):

  • WebProcess/Network/WebSocketProvider.h:
  • WebProcess/Network/WebSocketStream.cpp:
  • WebProcess/Network/WebSocketStream.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::webSocketChannelManager):

Source/WTF:

  • wtf/Platform.h:

Introduce compile flag for WebSocket NSURLSession

5:02 PM Changeset in webkit [246387] by eric.carlson@apple.com
  • 2 edits in trunk/LayoutTests

[High Sierra / Mojave Debug WK2] Layout Test media/video-restricted-invisible-autoplay-allowed-when-visible.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190885
<rdar://problem/45590590>

Reviewed by Youenn Fablet.

  • media/video-restricted-invisible-autoplay-allowed-when-visible.html: Increase the amount of time it takes for the test to fail so it isn't flaky on slow machines.
4:07 PM Changeset in webkit [246386] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

[iOS] Adjust tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html following r243808
https://bugs.webkit.org/show_bug.cgi?id=198799
<rdar://problem/50181023>

Reviewed by Brent Fulgham.

Following r243808 we no longer defocus a <select> on iPad when its popover is dismissed as a
result of picking a value for it. This is to make the behavior of <select> on iPad like the Mac.
However the tests platform/ipad/fast/forms/{select-form-run-twice, unfocus-inside-fixed-hittest}.html
depend on the old behavior. So, we need to update them to no longer expect a defocusing of the
<select>/the end of form control interaction.

  • platform/ipad/fast/forms/select-form-run-twice.html:
  • platform/ipad/fast/forms/unfocus-inside-fixed-hittest.html:
3:59 PM Changeset in webkit [246385] by mmaxfield@apple.com
  • 12 edits
    35 adds in trunk

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

Reviewed by Saam Barati.

Source/WebCore:

This is part one of two patches which will allow buffers to work. This patch
adds support in the property resolver for index expressions. Index expressions
get turned into calls to "getter indexers", "setter indexers", or "ander
indexers". They work almost identically to dot expressions, except there is an
extra "index" expression which gets turned into an extra argument to those
functions.

There's actually a bit of a trick here. Let's say we need to run a getter and
a setter separately (e.g. "foo[3]++;"). The index expression can't be duplicated
for both the getter and the setter (e.g. the functions are
int operator[](Foo, uint) and Foo operator[]=(Foo, uint, int), and we aren't
allowed to execute the index expression multiple times. Consider if that "3"
in the example is actually "bar()" with some side effect. So, we have to run
the index expression once at the correct time, and save its result to a temporary
variable, and then pass in the temporary variable into the getter and setter.

So, if the code says "foo[bar()][baz()] = quux();" the following sequence of
functions get run:

  • bar()
  • operator[](Foo, uint)
  • baz()
  • quux()
  • operator[]=(OtherType, uint, OtherOtherType)
  • operator[]=(Foo, uint, OtherType)

The next patch will modify the WebGPU JavaScript implementation to send buffer
lengths to the shader, and for the shader compiler to correctly unpack this
information and place it inside the array references. That should be everything
that's needed to get buffers to work. After that, hooking up compute should be
fairly trivial.

Tests: webgpu/propertyresolver/ander-abstract-lvalue.html

webgpu/propertyresolver/ander-lvalue-3-levels.html
webgpu/propertyresolver/ander-lvalue.html
webgpu/propertyresolver/ander.html
webgpu/propertyresolver/getter.html
webgpu/propertyresolver/indexer-ander-abstract-lvalue.html
webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html
webgpu/propertyresolver/indexer-ander-lvalue.html
webgpu/propertyresolver/indexer-ander.html
webgpu/propertyresolver/indexer-getter.html
webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html
webgpu/propertyresolver/indexer-setter-abstract-lvalue.html
webgpu/propertyresolver/indexer-setter-lvalue.html
webgpu/propertyresolver/indexer-setter.html
webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html
webgpu/propertyresolver/setter-abstract-lvalue.html
webgpu/propertyresolver/setter-lvalue.html

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

(WebCore::WHLSL::AST::toString):

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

(WebCore::WHLSL::AST::toString):

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

(WebCore::WHLSL::AST::IndexExpression::takeIndex):

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::writeNativeFunction):
(WebCore::WHLSL::Metal::convertAddressSpace): Deleted.

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

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

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

(WebCore::WHLSL::PropertyResolver::visit):
(WebCore::WHLSL::setterCall):
(WebCore::WHLSL::getterCall):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):
(WebCore::WHLSL::LeftValueSimplifier::visit):

  • Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
  • Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:

(WebCore::WHLSL::synthesizeStructureAccessors):

LayoutTests:

  • webgpu/propertyresolver/ander-abstract-lvalue-expected.html: Added.
  • webgpu/propertyresolver/ander-abstract-lvalue.html: Added.
  • webgpu/propertyresolver/ander-expected.html: Added.
  • webgpu/propertyresolver/ander-lvalue-3-levels-expected.html: Added.
  • webgpu/propertyresolver/ander-lvalue-3-levels.html: Added.
  • webgpu/propertyresolver/ander-lvalue-expected.html: Added.
  • webgpu/propertyresolver/ander-lvalue.html: Added.
  • webgpu/propertyresolver/ander.html: Added.
  • webgpu/propertyresolver/getter-expected.html: Added.
  • webgpu/propertyresolver/getter.html: Added.
  • webgpu/propertyresolver/indexer-ander-abstract-lvalue-expected.html: Added.
  • webgpu/propertyresolver/indexer-ander-abstract-lvalue.html: Added.
  • webgpu/propertyresolver/indexer-ander-expected.html: Added.
  • webgpu/propertyresolver/indexer-ander-lvalue-3-levels-expected.html: Added.
  • webgpu/propertyresolver/indexer-ander-lvalue-3-levels.html: Added.
  • webgpu/propertyresolver/indexer-ander-lvalue-expected.html: Added.
  • webgpu/propertyresolver/indexer-ander-lvalue.html: Added.
  • webgpu/propertyresolver/indexer-ander.html: Added.
  • webgpu/propertyresolver/indexer-getter-expected.html: Added.
  • webgpu/propertyresolver/indexer-getter.html: Added.
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels-expected.html: Added.
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue-3-levels.html: Added.
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue-expected.html: Added.
  • webgpu/propertyresolver/indexer-setter-abstract-lvalue.html: Added.
  • webgpu/propertyresolver/indexer-setter-expected.html: Added.
  • webgpu/propertyresolver/indexer-setter-lvalue-expected.html: Added.
  • webgpu/propertyresolver/indexer-setter-lvalue.html: Added.
  • webgpu/propertyresolver/indexer-setter.html: Added.
  • webgpu/propertyresolver/setter-abstract-lvalue-3-levels-expected.html: Added.
  • webgpu/propertyresolver/setter-abstract-lvalue-3-levels.html: Added.
  • webgpu/propertyresolver/setter-abstract-lvalue-expected.html: Added.
  • webgpu/propertyresolver/setter-abstract-lvalue.html: Added.
  • webgpu/propertyresolver/setter-lvalue-expected.html: Added.
  • webgpu/propertyresolver/setter-lvalue.html: Added.
3:46 PM Changeset in webkit [246384] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: artificial context menus don't work when Web Inspector is zoomed
https://bugs.webkit.org/show_bug.cgi?id=198801

Reviewed by Joseph Pecoraro.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
Use the absoluteLocation of the MouseEvent, which takes into account zoom and scale.

3:38 PM Changeset in webkit [246383] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.27.20.3

Tag Safari-608.1.27.20.3.

3:36 PM Changeset in webkit [246382] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebKit

Add assertions to help debug crash at WebKit::HistoryEntryDataEncoder::operator<<
https://bugs.webkit.org/show_bug.cgi?id=198766

Reviewed by Geoffrey Garen.

  • Shared/SessionState.h:

(WebKit::FrameState::~FrameState):

  • UIProcess/API/C/WKPage.cpp:

(WKPageCopySessionState):

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::HistoryEntryDataEncoder::encodeFixedLengthData):
(WebKit::encodeFrameStateNode):

3:20 PM Changeset in webkit [246381] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WebCore

Cherry-pick r246182. rdar://problem/51656840

Avoid generating new XSLT-based document when already changing the document.
https://bugs.webkit.org/show_bug.cgi?id=198525
<rdar://problem/51393787>

Reviewed by Ryosuke Niwa.

We should not allow a pending XSLT transform to change the current document when
that current document is int he process of being replaced.

  • dom/Document.cpp: (WebCore::Document::applyPendingXSLTransformsTimerFired):

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

3:20 PM Changeset in webkit [246380] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/JavaScriptCore

Cherry-pick r246084. rdar://problem/51656856

Unreviewed, update exception scope for putByIndexBeyondVectorLength
https://bugs.webkit.org/show_bug.cgi?id=198477

  • runtime/JSObject.cpp: (JSC::JSObject::putByIndexBeyondVectorLength):

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

3:20 PM Changeset in webkit [246379] by Kocsen Chung
  • 4 edits
    1 add in branches/safari-607-branch

Cherry-pick r246071. rdar://problem/51656838

Argument elimination should check for negative indices in GetByVal
https://bugs.webkit.org/show_bug.cgi?id=198302
<rdar://problem/51188095>

Reviewed by Filip Pizlo.

JSTests:

  • stress/eliminate-arguments-negative-rest-access.js: Added. (inlinee): (opt):

Source/JavaScriptCore:

In DFG::ArgumentEliminationPhase, the index is treated as unsigned, but there's no check
for overflow in the addition. In compileGetMyArgumentByVal, there's a check for overflow,
but the index is treated as signed, resulting in an index lower than numberOfArgumentsToSkip.

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):

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

3:20 PM Changeset in webkit [246378] by Kocsen Chung
  • 4 edits
    3 adds in branches/safari-607-branch

Cherry-pick r246040. rdar://problem/51656856

[JSC] JSObject::attemptToInterceptPutByIndexOnHole should use getPrototype instead of getPrototypeDirect
https://bugs.webkit.org/show_bug.cgi?id=198477
<rdar://problem/51299504>

Reviewed by Saam Barati.

Source/JavaScriptCore:

JSObject::attemptToInterceptPutByIndexOnHole uses getPrototypeDirect, but it should use getPrototype to
handle getPrototype methods in derived JSObject classes correctly.

  • runtime/JSArrayInlines.h: (JSC::JSArray::pushInline):
  • runtime/JSObject.cpp: (JSC::JSObject::putByIndex): (JSC::JSObject::attemptToInterceptPutByIndexOnHoleForPrototype): (JSC::JSObject::attemptToInterceptPutByIndexOnHole): (JSC::JSObject::putByIndexBeyondVectorLength):

LayoutTests:

Ensure that JSWindow::getPrototype is used.

  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-getPrototypeOf-in-put-test.html: Added.

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

3:20 PM Changeset in webkit [246377] by Kocsen Chung
  • 2 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r245298. rdar://problem/51656613

Crash under WebKit::WebProcessProxy::didBecomeUnresponsive()
https://bugs.webkit.org/show_bug.cgi?id=197883
<rdar://problem/50665984>

Reviewed by Alex Christensen.

Protect |this| in didBecomeUnresponsive() and didExceedCPULimit() since we call client
delegates and those may cause |this| to get destroyed.

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didBecomeUnresponsive): (WebKit::WebProcessProxy::didExceedCPULimit):

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

3:20 PM Changeset in webkit [246376] by Kocsen Chung
  • 5 edits
    1 add in branches/safari-607-branch

Cherry-pick r243631. rdar://problem/51656612

API::Data::createWithoutCopying should do a null check before calling CFRelease
https://bugs.webkit.org/show_bug.cgi?id=196276
<rdar://problem/48059859>

Reviewed by Alex Christensen.

Source/WebKit:

  • Shared/Cocoa/APIDataCocoa.mm: (API::Data::createWithoutCopying):

Tools:

Add an API test that will pass a nil to API::Data::createWithoutCopying via NavigationState::NavigationClient::webCryptoMasterKey.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html:
  • TestWebKitAPI/Tests/WebKitCocoa/WebCryptoMasterKey.mm: Added. (-[WebCryptoMasterKeyNavigationDelegate _webCryptoMasterKeyForWebView:]): (-[WebCryptoMasterKeyNavigationDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): (TestWebKitAPI::TEST):

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

2:57 PM Changeset in webkit [246375] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Remove dead code in user agent construction
https://bugs.webkit.org/show_bug.cgi?id=198802

Reviewed by Anders Carlsson.

  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::platform const):
Drop dead architures.

1:43 PM Changeset in webkit [246374] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[GTK] GTK_STOCK_* types have been deprecated since GTK 3.10
https://bugs.webkit.org/show_bug.cgi?id=198787

Patch by Ludovico de Nittis <ludovico.denittis@collabora.com> on 2019-06-12
Reviewed by Michael Catanzaro.

Source/WebCore:

No behaviour changes.

  • platform/graphics/gtk/IconGtk.cpp:

(WebCore::lookupIconName):

  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::loadMissingImageIconFromTheme):

Source/WebKit:

We completely remove the gtkStockIDFromContextMenuAction function in order to get rid of the stock items.
This function was used only in "createActionIfNeeded" where now we pass a nullptr as a stock_id variable.

  • Shared/glib/WebContextMenuItemGlib.cpp:

(WebKit::gtkStockIDFromContextMenuAction):

1:38 PM Changeset in webkit [246373] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Replace double-quotes with single quotes in loadConfig.py
https://bugs.webkit.org/show_bug.cgi?id=198792

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/steps_unittest.py:
1:31 PM Changeset in webkit [246372] by ysuzuki@apple.com
  • 7 edits
    4 adds in trunk

[JSC] Polymorphic call stub's slow path should restore callee saves before performing tail call
https://bugs.webkit.org/show_bug.cgi?id=198770

Reviewed by Saam Barati.

JSTests:

  • stress/poly-call-stub-slow-path-should-restore-callee-saves-when-doing-tail-call.js: Added.

(test):

Source/JavaScriptCore:

Polymorphic call stub is a bit specially patched in JS call site. Typical JS call site for tail calls
are the following.

if (callee == patchableCallee) {

restore callee saves for tail call
prepare for tail call
jump to the target function

}
restore callee saves for slow path
call the slow path function

And linking patches patchableCallee, target function, and slow path function. But polymorphic call stub
patches the above if statement with the jump to the stub.

jump to the polymorphic call stub

This is because polymorphic call stub wants to use CallFrameShuffler to get scratch registers. As a result,
"restore callee saves for tail call" thing needs to be done in the polymorphic call stubs. While it is
correctly done for the major cases, we have slowPath skips, and that path missed restoring callee saves.
This skip happens if the callee is non JSCell or non JS function, so typically, InternalFunction is handled
in that path.

This patch does that skips after restoring callee saves.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::CallLinkInfo):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::setUpCall):
(JSC::CallLinkInfo::calleeGPR):
(JSC::CallLinkInfo::setCalleeGPR): Deleted.

  • jit/Repatch.cpp:

(JSC::revertCall):
(JSC::linkVirtualFor):
(JSC::linkPolymorphicCall):

  • jit/Repatch.h:
  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

1:21 PM Changeset in webkit [246371] by Shawn Roberts
  • 2 edits in trunk/LayoutTests

scrollbars/scrollbar-iframe-click-does-not-blur-content.html is timing out on WK1 testers
https://bugs.webkit.org/show_bug.cgi?id=198800

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Updating expecations for test
12:52 PM Changeset in webkit [246370] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed fix after r246360.

12:06 PM Changeset in webkit [246369] by jiewen_tan@apple.com
  • 4 edits in trunk

REGRESSION (r245043) [Mac WK2 Debug] ASSERTION FAILED: m_services.isEmpty() && transports.size() <= maxTransportNumber seen with two http/wpt/webauthn/public-key-credential-* tests
https://bugs.webkit.org/show_bug.cgi?id=197917
<rdar://problem/51524958>

Reviewed by Brent Fulgham.

Source/WebKit:

This is a race condition that when a new request comes in the middle between the previous one finishes and the clearStateAsync is queued in the main thread.
Therefore, when the new request starts discovery, it will still see previous request's state.

To fix this issue, clearState() will be called unconditionally for every request. And a guard is added to clearState() to prevent double clearance.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::makeCredential):
(WebKit::AuthenticatorManager::getAssertion):
(WebKit::AuthenticatorManager::clearState):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
11:40 AM Changeset in webkit [246368] by commit-queue@webkit.org
  • 60 edits
    1 copy in trunk/Source

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

"It's a huge page load regression on iOS" (Requested by
saamyjoon on #webkit).

Reverted changeset:

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

11:27 AM Changeset in webkit [246367] by Antti Koivisto
  • 6 edits
    10 adds in trunk

(Async scrolling) Handle 'position:fixed' inside 'position:sticky' correctly.
https://bugs.webkit.org/show_bug.cgi?id=198788
<rdar://problem/51589759>

Reviewed by Simon Fraser.

Source/WebCore:

Handle 'position:fixed' inside 'position:sticky' correctly.

Also fix nested 'position:fixed' in case where there is an overflow scroller between them.

Tests: scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html

scrollingcoordinator/ios/fixed-inside-sticky-frame.html
scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html
scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html
scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html

  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::applyLayerPositions):

Take offsets from sticky nodes into account.

  • page/scrolling/cocoa/ScrollingTreeStickyNode.h:

(WebCore::ScrollingTreeStickyNode::layer):

  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

Factor into a function.

(WebCore::ScrollingTreeStickyNode::applyLayerPositions):
(WebCore::ScrollingTreeStickyNode::scrollDeltaSinceLastCommit const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):

We need to generate a scrolling tree node for position:fixed in nested case if there is an overflow scroller
between the layers.

LayoutTests:

  • scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed-expected.html: Added.
  • scrollingcoordinator/ios/fixed-inside-overflow-inside-fixed.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-frame-expected.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-frame.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2-expected.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-2.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context-expected.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-no-stacking-context.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-stacking-context-expected.html: Added.
  • scrollingcoordinator/ios/fixed-inside-sticky-stacking-context.html: Added.
11:17 AM Changeset in webkit [246366] by Alan Coon
  • 7 edits in branches/safari-607.3.1.2-branch/Source

Versioning.

11:16 AM Changeset in webkit [246365] by Alan Coon
  • 2 edits in branches/safari-607.3.1.2-branch/Source/JavaScriptCore

Cherry-pick r246084. rdar://problem/51670920

Unreviewed, update exception scope for putByIndexBeyondVectorLength
https://bugs.webkit.org/show_bug.cgi?id=198477

  • runtime/JSObject.cpp: (JSC::JSObject::putByIndexBeyondVectorLength):

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

11:16 AM Changeset in webkit [246364] by Alan Coon
  • 4 edits
    3 adds in branches/safari-607.3.1.2-branch

Cherry-pick r246040. rdar://problem/51670920

[JSC] JSObject::attemptToInterceptPutByIndexOnHole should use getPrototype instead of getPrototypeDirect
https://bugs.webkit.org/show_bug.cgi?id=198477
<rdar://problem/51299504>

Reviewed by Saam Barati.

Source/JavaScriptCore:

JSObject::attemptToInterceptPutByIndexOnHole uses getPrototypeDirect, but it should use getPrototype to
handle getPrototype methods in derived JSObject classes correctly.

  • runtime/JSArrayInlines.h: (JSC::JSArray::pushInline):
  • runtime/JSObject.cpp: (JSC::JSObject::putByIndex): (JSC::JSObject::attemptToInterceptPutByIndexOnHoleForPrototype): (JSC::JSObject::attemptToInterceptPutByIndexOnHole): (JSC::JSObject::putByIndexBeyondVectorLength):

LayoutTests:

Ensure that JSWindow::getPrototype is used.

  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt: Added.
  • http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html: Added.
  • http/tests/security/resources/cross-frame-iframe-for-object-getPrototypeOf-in-put-test.html: Added.

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

10:47 AM Changeset in webkit [246363] by youenn@apple.com
  • 98 edits
    129 adds in trunk/LayoutTests

Update WPT service workers test up to 0df7c68
https://bugs.webkit.org/show_bug.cgi?id=198720

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers: Resynced.

LayoutTests:

10:26 AM Changeset in webkit [246362] by Michael Catanzaro
  • 2 edits in trunk

Also fix incorrect bug titles in ChangeLog

There's nothing we can do to fix the old commit messages, but at least we can fix the ChangeLog.

10:22 AM Changeset in webkit [246361] by Michael Catanzaro
  • 2 edits in trunk

Fix ChangeLog entries referencing the wrong bug and rdar

10:18 AM Changeset in webkit [246360] by Brent Fulgham
  • 5 edits in trunk

Add mechanism and test case to check if ITP is active
https://bugs.webkit.org/show_bug.cgi?id=198694
<rdar://problem/51557704>

10:13 AM WebKitGTK/2.24.x edited by Michael Catanzaro
(diff)
9:58 AM Changeset in webkit [246359] by Kocsen Chung
  • 7 edits in branches/safari-607-branch/Source

Versioning.

9:52 AM Changeset in webkit [246358] by youenn@apple.com
  • 5 edits in trunk/Source/ThirdParty/libwebrtc

Make sure libwebrtc ObjC codec interfaces do not conflict
https://bugs.webkit.org/show_bug.cgi?id=198782
<rdar://problem/51503247>

Reviewed by Eric Carlson.

Rename some ObjC interfaces that we are now using in libwebrtc.

  • Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP8.h:
  • Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoDecoder.h:
  • Source/webrtc/sdk/objc/api/video_codec/RTCWrappedNativeVideoEncoder.h:
  • libwebrtc.xcodeproj/project.pbxproj:
9:45 AM Changeset in webkit [246357] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Many layout tests are failing on iPad simulator due to unexpected viewport dimensions
https://bugs.webkit.org/show_bug.cgi?id=198789
<rdar://problem/51595519>

Reviewed by Simon Fraser.

Prevent the shrink-to-fit-content timer from activating on layout tests that use the testing viewport
configuration.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::immediatelyShrinkToFitContent):

9:29 AM Changeset in webkit [246356] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:28 AM Changeset in webkit [246355] by Kocsen Chung
  • 1 copy in tags/Safari-608.1.29

Tag Safari-608.1.29.

9:21 AM Changeset in webkit [246354] by Truitt Savell
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r246350.

r246350 Introduced a failing and timing out test svg/clip-path
/clip-hidpi.svg

Reverted changeset:

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

9:07 AM Changeset in webkit [246353] by Michael Catanzaro
  • 11 edits in trunk

[WPE][GTK] Deprecate WebSQL APIs
https://bugs.webkit.org/show_bug.cgi?id=195011

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkit_website_data_manager_class_init):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:

Tools:

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(testWebsiteDataDatabases):

7:50 AM Changeset in webkit [246352] by Michael Catanzaro
  • 4 edits in trunk

[WPE][GTK] Enable hyperlink auditing
https://bugs.webkit.org/show_bug.cgi?id=197845

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_class_init):

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitSettings.cpp:

(testWebKitSettings):

7:09 AM Changeset in webkit [246351] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] gtk_misc_set_alignment is deprecated since GTK 3.14
https://bugs.webkit.org/show_bug.cgi?id=198785

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

Replace the deprecated gtk_misc_set_alignment with halign and valign.

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(createLabelWithLineWrap):

6:43 AM Changeset in webkit [246350] by Carlos Garcia Campos
  • 3 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
<rdar://problem/51620347>

Reviewed by Don Olmstead.

Source/WebCore:

We need to save the current transformation matrix at the moment the image mask is set and set it again on
restore right before applying the mask. This patch also creates a pattern for the image mask surface and set its
transformation matrix according to the mask position, so that we don't need to save the mask rectangle too.

Tests: svg/clip-path/clip-hidpi-expected.svg

svg/clip-path/clip-hidpi.svg
svg/clip-path/clip-opacity-translate-expected.svg
svg/clip-path/clip-opacity-translate.svg

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::restore):
(WebCore::PlatformContextCairo::pushImageMask):

LayoutTests:

  • svg/clip-path/clip-hidpi-expected.svg: Added.
  • svg/clip-path/clip-hidpi.svg: Added.
  • svg/clip-path/clip-opacity-translate-expected.svg: Added.
  • svg/clip-path/clip-opacity-translate.svg: Added.
3:39 AM Changeset in webkit [246349] by Fujii Hironori
  • 3 edits in trunk/LayoutTests

[GTK] Some reftest fail with only one or two pixel differences in diff image
https://bugs.webkit.org/show_bug.cgi?id=168426

Unreviewed test gardening.

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

svg/clip-path/clip-opacity.html results in 0.01% image diff. Marked it as ImageOnlyFailure of Bug 168426.

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.
Note: See TracTimeline for information about the timeline view.