Timeline



Dec 8, 2018:

11:09 PM Changeset in webkit [239017] by Darin Adler
  • 2 edits in trunk/Source/WTF

Fix stray-semicolon warning seen with a new version of clang in Xcode
https://bugs.webkit.org/show_bug.cgi?id=192534

Reviewed by Alexey Proskuryakov.

  • wtf/Lock.h: Removed an unneeded semicolon.
9:36 PM Changeset in webkit [239016] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

[MediaStream] Scaled video frames should be resized in letterbox mode
https://bugs.webkit.org/show_bug.cgi?id=192528
<rdar://problem/46576638>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/mediastream/resize-letterbox.html

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::ImageTransferSessionVT): Use letterbox resize mode, not trim.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::captureSize const): "Capture" at the preset size, not
necessarily at the requested size to be more like a physical camera.
(WebCore::MockRealtimeVideoSource::settingsDidChange):
(WebCore::MockRealtimeVideoSource::drawAnimation):
(WebCore::MockRealtimeVideoSource::drawBoxes):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::generateFrame):
(WebCore::MockRealtimeVideoSource::imageBuffer const):

  • platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

  • fast/mediastream/resize-letterbox-expected.txt: Added.
  • fast/mediastream/resize-letterbox.html: Added.
8:11 PM Changeset in webkit [239015] by achristensen@apple.com
  • 4 edits in trunk/Source

Don't programmatically capitalize safe browsing warning buttons
https://bugs.webkit.org/show_bug.cgi?id=192531
<rdar://problem/46417791>

Reviewed by Darin Adler.

Source/WebCore:

This doesn't work so well in other languages.
Capitalize the source strings in English instead.

  • en.lproj/Localizable.strings:

Source/WebKit:

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(makeButton):

5:55 PM Changeset in webkit [239014] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Safe browsing warning should respect text size from settings
https://bugs.webkit.org/show_bug.cgi?id=192205

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(fontWithSize):
(makeButton):
(-[WKSafeBrowsingWarning addContent]):
(-[WKSafeBrowsingWarning showDetailsClicked]):

3:53 PM Changeset in webkit [239013] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Reduce size of PropertySlot and PutPropertySlot.
https://bugs.webkit.org/show_bug.cgi?id=192526

Reviewed by Keith Miller.

With some minor adjustments, we can reduce the size of PropertySlot from 80 bytes
(19 padding bytes) to 64 bytes (3 padding bytes), and PutPropertySlot from 40
bytes (4 padding bytes) to 32 bytes (0 padding bytes but with 6 unused bits).
These measurements are for a 64-bit build.

  • runtime/PropertySlot.h:
  • runtime/PutPropertySlot.h:

(JSC::PutPropertySlot::PutPropertySlot):

2:10 PM Changeset in webkit [239012] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WTF

[WTF] Debug build fails due conflicting abort() method
https://bugs.webkit.org/show_bug.cgi?id=192491

Reviewed by Michael Catanzaro.

  • wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes

inside classes which have an ::abort() method, but only when cplusplus is defined to
allow inclusion of the header in plain C sources.

1:53 PM Changeset in webkit [239011] by dbates@webkit.org
  • 2 edits in trunk/Tools

Fix lldb_webkit.py following r238771
(https://bugs.webkit.org/show_bug.cgi?id=190234)

Substitute WTFURLProvider for WebCoreURLProvider in one call site that was inadvertently
missed in r238771.

  • lldb/lldb_webkit.py:

(WebCoreDocumentProvider.url):

1:08 PM Changeset in webkit [239010] by Simon Fraser
  • 12 edits in trunk

Allow control over child order when adding nodes to the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=176914
<rdar://problem/46542237>

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-08
Reviewed by Simon Fraser.

Based on an earlier patch by Simon Fraser.

Previously ScrollingCoordinator just allowed nodes to be "attached" with a given parent,
but with no control over sibling order. To allow for correct hit-testing overflow and
frame scrolling nodes, we have to build the scrolling tree in z-order.

This patch adds a 'childIndex' parameter to attachNode() which gives control over
sibling order. For now, RenderLayerCompositor always uses the default 'notFound' value
for childIndex so the current behavior (appending new nodes at the end of child list) is
preserved.

One test marked as flakey, since scrolling tree order is currently dependent on HashSet
traversal order.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::attachToStateTree):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::attachToStateTree):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::insertChild):
(WebCore::ScrollingStateNode::indexOfChild const):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::nodeTypeAndParentMatch const):
(WebCore::ScrollingStateTree::attachNode):

  • page/scrolling/ScrollingStateTree.h:

Source/WebKit:

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-08
Reviewed by Simon Fraser.

Based on an earlier patch by Simon Fraser.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::RemoteScrollingCoordinatorTransaction::decode):

LayoutTests:

Reviewed by Simon Fraser.

  • platform/mac-wk2/TestExpectations: Mark fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state.html

as flakey, which it will be until we attach in z-order.

6:57 AM Changeset in webkit [239009] by dinfuehr@igalia.com
  • 4 edits in trunk/Source/JavaScriptCore

Record right offset with aligned wide instructions
https://bugs.webkit.org/show_bug.cgi?id=192006

Reviewed by Yusuke Suzuki.

Aligning bytecode instructions inserts nops into the instruction stream.
Emitting an instruction did not record the actual start of the instruction with
aligned instructions, but the nop just before the actual instruction. This was
problematic with the StaticPropertyAnalyzer that used the wrong instruction offset.

  • bytecode/InstructionStream.h:

(JSC::InstructionStream::MutableRef::clone):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::alignWideOpcode):
(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitNewObject):

  • generator/Opcode.rb:
5:02 AM Changeset in webkit [239008] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] check-patch-relevance failure should not mark the overall build as failure
https://bugs.webkit.org/show_bug.cgi?id=192510

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(CheckPatchRelevance.start):

Dec 7, 2018:

11:35 PM Changeset in webkit [239007] by commit-queue@webkit.org
  • 30 edits in trunk/Source/WebKit

Remove unused API in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=192415

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-07
Reviewed by Alex Christensen.

This patch removed some unused API and headers in NetworkProcess.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::startPreflight):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkContentRuleListManager.h:
  • NetworkProcess/NetworkDataTask.cpp:
  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/NetworkLoad.cpp:
  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadChecker.cpp:
  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveBuffer):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkSession.cpp:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/NetworkSocketStream.cpp:
  • NetworkProcess/NetworkSocketStream.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::PreconnectTask):
(WebKit::PreconnectTask::frameID const): Deleted.
(WebKit::PreconnectTask::pageID const): Deleted.

  • NetworkProcess/PreconnectTask.h:
7:11 PM Changeset in webkit [239006] by eric.carlson@apple.com
  • 16 edits
    3 adds in trunk

[MediaStream] 'devicechange' event should not fire in frames that can't access capture devices
https://bugs.webkit.org/show_bug.cgi?id=192511
<rdar://problem/46562063>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: http/tests/media/media-stream/device-change-event-in-iframe.html

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::addEventListener): Don't fire the event unless the document can
access a camera or microphone.

Source/WebKit:

  • UIProcess/UserMediaPermissionCheckProxy.cpp:

(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): Remove userMediaID parameter.
(WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): ID not passed to callback.

  • UIProcess/UserMediaPermissionCheckProxy.h:

(WebKit::UserMediaPermissionCheckProxy::create):
(WebKit::UserMediaPermissionCheckProxy::completionHandler): Deleted.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::generateRequestID): New.
(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): Don't notify if
the page does not have a granted request and does not have persistent access.
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Use generateRequestID.
(WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Change variable name.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Use generateRequestID.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

LayoutTests:

  • fast/mediastream/device-change-event.html: Fix bogus title.
  • http/tests/media/media-stream/device-change-event-in-iframe-expected.txt: Added.
  • http/tests/media/media-stream/device-change-event-in-iframe.html: Added.
  • http/tests/media/media-stream/resources/device-change-iframe.html: Added.
7:10 PM Changeset in webkit [239005] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[MediaStream] Address post-review comments after r238904
https://bugs.webkit.org/show_bug.cgi?id=192514
<rdar://problem/46564302>

Reviewed by Youenn Fablet.

No new tests, no functional change.

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::setSize):

  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):

5:19 PM Changeset in webkit [239004] by Michael Catanzaro
  • 4 edits in releases/WebKitGTK/webkit-2.22

Merge r235253 - [CMake] Have checks are not getting set inside CMake properly
https://bugs.webkit.org/show_bug.cgi?id=188901

Reviewed by Michael Catanzaro.

.:

Make sure the variable's value is sent to SET_AND_EXPOSE_TO_BUILD
within the WEBKIT_CHECK_HAVE_* macros.

  • Source/cmake/WebKitFeatures.cmake:

PerformanceTests:

Add notification that MallocBench is disabled.

  • CMakeLists.txt:
5:19 PM Changeset in webkit [239003] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r237491 - Make VIDEO enabled if ENCRYPTED_MEDIA is enabled.
https://bugs.webkit.org/show_bug.cgi?id=190983

Unreviewed build update.

  • Source/cmake/WebKitFeatures.cmake:
5:19 PM Changeset in webkit [239002] by Michael Catanzaro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r238082 - [GTK] Silence ATK_XY_PARENT warnings
https://bugs.webkit.org/show_bug.cgi?id=191504

Reviewed by Carlos Garcia Campos.

  • accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:

(atkToContents):

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(textExtents):

  • accessibility/atk/WebKitAccessibleUtil.cpp:

(contentsRelativeToAtkCoordinateType):

5:19 PM Changeset in webkit [239001] by Michael Catanzaro
  • 3 edits in releases/WebKitGTK/webkit-2.22

Merge r238619 - [CMake] Automatically disable JIT and enable USE_SYSTEM_MALLOC on unfamiliar architectures
https://bugs.webkit.org/show_bug.cgi?id=186722

Reviewed by Žan Doberšek.

Time for part #2! This change was defeated for GTK and WPE by the code that makes the
options public. We have three options: (a) duplicate the architecture check currently in
WebKitFeatures.cmake in both OptionsGTK.cmake and OptionsWPE.cmake, (b) rely on the result
of that check in OptionsGTK.cmake and OptionsWPE.cmake by using ENABLE_JIT_DEFAULT and
USE_SYSTEM_MALLOC_DEFAULT, a fragile encapsulation violation, or (c) just make the options
private. They have been public up until now because they needed to be turned off on
unsupported architectures. But now they are off by default and enabled only for particular
whitelisted architectures, so they shouldn't be needed anymore.

Note we have to hide ENABLE_SAMPLING_PROFILER as well, since it needs to match the value of
ENABLE_JIT. Again, this is handled properly in WebKitFeatures.cmake, and defeated here in
OptionsGTK.cmake. (This is not a problem for WPE.)

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
5:19 PM Changeset in webkit [239000] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Revert "Merge r235356 - [JSC] Array.prototype.reverse modifies JSImmutableButterfly"

This reverts commit 729388b8e4bc924eacddcb4e40e0e2ae41588085.

This commit had already been backported in r236061, but was missing the 'Merged' in the commit message so I failed to find it. All I managed to accomplish here was duplicating the ChangeLog entries.

5:19 PM Changeset in webkit [238999] by Michael Catanzaro
  • 5 edits in releases/WebKitGTK/webkit-2.22

Merge r238929 - [GStreamer] -DENABLE_VIDEO=ON -DENABLE_OPENGL=OFF still tries to build GstreamerGL
https://bugs.webkit.org/show_bug.cgi?id=191998

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-12-06
Reviewed by Philippe Normand.

Fix compilation with -DENABLE_VIDEO=ON and -DENABLE_OPENGL=OFF due to GStreamerGL.

.:

  • Source/cmake/GStreamerDependencies.cmake: "DEFINED ENABLE_OPENGL" is always false because ENABLE_OPENGL

is not a CMake variable (WEBKIT_OPTION_DEFINE macro does not define ENABLE_OPENGL variable per se, but other
variables and appends it to a list).

  • Source/cmake/OptionsGTK.cmake: GStreamerDefinitions.cmake was included twice by mistake. Second should be GStreamerDependencies.cmake.

Source/WebCore:

No new tests required. Only fixing the build with certain flags.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): add required #if ENABLE(WEBGL).

5:19 PM Changeset in webkit [238998] by Michael Catanzaro
  • 6 edits in releases/WebKitGTK/webkit-2.22

Merge r238928 - REGRESSION(r231043): [GTK] Undefined references to WebCore::LayerRepresentation::* with -DENABLE_OPENGL=OFF builds
https://bugs.webkit.org/show_bug.cgi?id=191997

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-12-06
Reviewed by Philippe Normand.

.:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF

  • Source/cmake/OptionsGTK.cmake: make ENABLE_ASYNC_SCROLLING depend on ENABLE_OPENGL

Source/WebCore:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF.

No new tests required. Only fixing build.

  • platform/gtk/PlatformWheelEventGtk.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent): add required #if ENABLE(ASYNC_SCROLLING)

Source/WebKit:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF.

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent): add required #if ENABLE(ASYNC_SCROLLING)

5:12 PM Changeset in webkit [238997] by Tadeu Zagallo
  • 4 edits in trunk/Source/JavaScriptCore

Align the metadata table on all platforms
https://bugs.webkit.org/show_bug.cgi?id=192050
<rdar://problem/46312674>

Reviewed by Mark Lam.

Although certain platforms don't require the metadata to be aligned,
values were being concurrently read and written to ValueProfiles,
which caused crashes since these operations are not atomic on unaligned
addresses.

  • bytecode/Opcode.cpp:

(JSC::metadataAlignment):

  • bytecode/Opcode.h:
  • bytecode/UnlinkedMetadataTableInlines.h:

(JSC::UnlinkedMetadataTable::finalize):

4:45 PM Changeset in webkit [238996] by youenn@apple.com
  • 61 edits
    5 deletes in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc up to 2fb890f08c
https://bugs.webkit.org/show_bug.cgi?id=192517

Reviewed by Eric Carlson.

Merge changes to track libwebrtc M72.

  • Source/webrtc/DEPS:
  • Source/webrtc/api/audio/echo_canceller3_config.h:
  • Source/webrtc/api/rtp_headers.h:
  • Source/webrtc/api/video/encoded_frame.h:
  • Source/webrtc/api/video/encoded_image.h:
  • Source/webrtc/call/rtp_transport_controller_send_interface.h:
  • Source/webrtc/call/video_receive_stream.h:
  • Source/webrtc/call/video_send_stream.h:
  • Source/webrtc/common_types.h:

(webrtc::RtcpStatistics::RtcpStatistics):
(webrtc::RtcpStatisticsCallback::~RtcpStatisticsCallback):

  • Source/webrtc/logging/rtc_event_log/rtc_event_log_impl.cc:
  • Source/webrtc/media/engine/webrtcvideoengine.cc:
  • Source/webrtc/modules/audio_coding/BUILD.gn:
  • Source/webrtc/modules/audio_coding/neteq/neteq_unittest.cc:
  • Source/webrtc/modules/audio_processing/aec3/BUILD.gn:
  • Source/webrtc/modules/audio_processing/aec3/aec_state.cc:
  • Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.cc: Removed.
  • Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics.h: Removed.
  • Source/webrtc/modules/audio_processing/aec3/api_call_jitter_metrics_unittest.cc: Removed.
  • Source/webrtc/modules/audio_processing/aec3/echo_canceller3.cc:
  • Source/webrtc/modules/audio_processing/aec3/echo_canceller3.h:
  • Source/webrtc/modules/audio_processing/aec3/filter_analyzer.cc:
  • Source/webrtc/modules/audio_processing/aec3/filter_analyzer.h:
  • Source/webrtc/modules/audio_processing/aec3/suppression_gain.cc:
  • Source/webrtc/modules/rtp_rtcp/BUILD.gn:
  • Source/webrtc/modules/rtp_rtcp/include/receive_statistics.h:
  • Source/webrtc/modules/rtp_rtcp/include/rtcp_statistics.h: Removed.
  • Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp.h:
  • Source/webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h:
  • Source/webrtc/modules/rtp_rtcp/source/rtcp_receiver.h:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h:

(webrtc::HdrMetadataExtension::ValueSize):

  • Source/webrtc/modules/rtp_rtcp/source/rtp_packet_received.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc:
  • Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:
  • Source/webrtc/modules/video_coding/codecs/test/videocodec_test_libvpx.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.h:
  • Source/webrtc/modules/video_coding/encoded_frame.h:

(webrtc::VCMEncodedFrame::video_timing_mutable):
(webrtc::VCMEncodedFrame::SetCodecSpecific):

  • Source/webrtc/modules/video_coding/frame_buffer2.cc:
  • Source/webrtc/modules/video_coding/frame_buffer2.h:
  • Source/webrtc/modules/video_coding/frame_buffer2_unittest.cc:
  • Source/webrtc/modules/video_coding/frame_object.cc:
  • Source/webrtc/modules/video_coding/rtp_frame_reference_finder.cc:
  • Source/webrtc/p2p/base/p2ptransportchannel.cc:
  • Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
  • Source/webrtc/p2p/base/port.cc:
  • Source/webrtc/p2p/base/port.h:
  • Source/webrtc/p2p/client/basicportallocator.cc:
  • Source/webrtc/p2p/client/basicportallocator.h:
  • Source/webrtc/p2p/client/basicportallocator_unittest.cc:
  • Source/webrtc/pc/peerconnection.cc:
  • Source/webrtc/pc/rtcstats_integrationtest.cc:
  • Source/webrtc/pc/test/peerconnectiontestwrapper.cc:
  • Source/webrtc/pc/test/peerconnectiontestwrapper.h:
  • Source/webrtc/rtc_base/stringize_macros.h:
  • Source/webrtc/sdk/objc/components/video_codec/nalu_rewriter_unittest.cc: Removed.
  • Source/webrtc/test/fuzzers/rtp_packet_fuzzer.cc:
  • Source/webrtc/tools_webrtc/ios/internal.client.webrtc/iOS64_Perf.json:
  • Source/webrtc/tools_webrtc/ios/internal.tryserver.webrtc/ios_arm64_perf.json:
  • Source/webrtc/tools_webrtc/whitespace.txt:
  • Source/webrtc/video/report_block_stats.h:
  • Source/webrtc/video/rtp_video_stream_receiver.cc:
  • Source/webrtc/video/video_receive_stream.cc:
4:26 PM Changeset in webkit [238995] by Antti Koivisto
  • 18 edits
    2 moves in trunk/Source/WebCore

[LFC] Rename LayoutFormattingState files to LayoutState
https://bugs.webkit.org/show_bug.cgi?id=192520

Reviewed by Zalan Bujtas.

Match the class name.

  • layout/FormattingContext.cpp:
  • layout/FormattingContextQuirks.cpp:
  • layout/FormattingState.h:
  • layout/LayoutFormattingState.cpp: Removed.
  • layout/LayoutFormattingState.h: Removed.
  • layout/LayoutState.cpp: Copied from Source/WebCore/layout/LayoutFormattingState.cpp.
  • layout/LayoutState.h: Copied from Source/WebCore/layout/LayoutFormattingState.h.
  • layout/Verification.cpp:
  • layout/blockformatting/BlockFormattingContext.cpp:
  • layout/blockformatting/BlockFormattingContextQuirks.cpp:
  • layout/blockformatting/BlockInvalidation.cpp:
  • layout/floats/FloatAvoider.cpp:
  • layout/floats/FloatingContext.cpp:
  • layout/floats/FloatingState.cpp:
  • layout/inlineformatting/InlineFormattingContext.cpp:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:
  • layout/inlineformatting/InlineInvalidation.cpp:
  • layout/layouttree/LayoutTreeBuilder.cpp:
  • page/FrameViewLayoutContext.cpp:
4:26 PM Changeset in webkit [238994] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236554 - JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

4:25 PM Changeset in webkit [238993] by Michael Catanzaro
  • 6 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236587 - ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

4:25 PM Changeset in webkit [238992] by Michael Catanzaro
  • 6 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236576 - DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

  • dfg/DFGJITCode.h:

(JSC::DFG::JITCode::appendOSREntryData):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dumpInContext const):
(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:
  • runtime/JSCPtrTag.h:
4:25 PM Changeset in webkit [238991] by Michael Catanzaro
  • 5 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236585 - DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>

Reviewed by Mark Lam.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.

  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilationInfo.h:
4:25 PM Changeset in webkit [238990] by Michael Catanzaro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236584 - Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>

Reviewed by Mark Lam.

  • bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::finalize):

4:25 PM Changeset in webkit [238989] by Michael Catanzaro
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236161 - Ensure that ForInContexts are invalidated if their loop local is over-written.
https://bugs.webkit.org/show_bug.cgi?id=189571
<rdar://problem/44402277>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189571.js: Added.

Source/JavaScriptCore:

Instead of hunting down every place in the BytecodeGenerator that potentially
needs to invalidate an enclosing ForInContext (if one exists), we simply iterate
the bytecode range of the loop body when the ForInContext is popped, and
invalidate the context if we ever find the loop temp variable over-written.

This has 2 benefits:

  1. It ensures that every type of opcode that can write to the loop temp will be handled appropriately, not just the op_mov that we've hunted down.
  2. It avoids us having to check the BytecodeGenerator's m_forInContextStack every time we emit an op_mov (or other opcodes that can write to a local) even when we're not inside a for-in loop.

JSC benchmarks show that that this change is performance neutral.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::popIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::BytecodeGenerator::popStructureForInScope):
(JSC::ForInContext::finalize):
(JSC::StructureForInContext::finalize):
(JSC::IndexedForInContext::finalize):
(JSC::BytecodeGenerator::invalidateForInContextForLocal): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::ForInContext::ForInContext):
(JSC::ForInContext::bodyBytecodeStartOffset const):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue const):
(JSC::AssignmentElementNode::bindValue const):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

4:25 PM Changeset in webkit [238988] by Michael Catanzaro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236018 - Refactor some ForInContext code for better encapsulation.
https://bugs.webkit.org/show_bug.cgi?id=189626
<rdar://problem/44466415>

Reviewed by Keith Miller.

  1. Add a ForInContext::m_type field to store the context type. This does not increase the class size, but eliminates the need for a virtual call to get the type.

Note: we still need a virtual destructor because we'll be mingling
IndexedForInContexts and StructureForInContexts in the BytecodeGenerator::m_forInContextStack.

  1. Add ForInContext::isIndexedForInContext() and ForInContext::isStructureForInContext() convenience methods.
  1. Add ForInContext::asIndexedForInContext() and ForInContext::asStructureForInContext() to do the casting to the subclass types. This ensures that we'll properly assert that the casting is legal.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetByVal):
(JSC::BytecodeGenerator::popIndexedForInScope):
(JSC::BytecodeGenerator::popStructureForInScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::ForInContext::type const):
(JSC::ForInContext::isIndexedForInContext const):
(JSC::ForInContext::isStructureForInContext const):
(JSC::ForInContext::asIndexedForInContext):
(JSC::ForInContext::asStructureForInContext):
(JSC::ForInContext::ForInContext):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):
(JSC::ForInContext::~ForInContext): Deleted.

4:25 PM Changeset in webkit [238987] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Revert "[GTK] Cannot make debug builds of JSC using release 2.22.3"

This reverts commit 4f5957964086375c1ada9728c533e7beb4ea3c86.

This was needed due to an error backporting the previous commit, which I am about to re-backport without conflicts.

4:25 PM Changeset in webkit [238986] by Michael Catanzaro
  • 6 edits
    1 delete in releases/WebKitGTK/webkit-2.22

Revert "Merged r236161 - Ensure that ForInContexts are invalidated if their loop local is over-written. https://bugs.webkit.org/show_bug.cgi?id=189571 <rdar://problem/44402277>"

This reverts commit 3fec08985ee04d132fd0dfcbb77709e9a73c5477.

Going to try backporting this again after first backporting an older commit. The history is a bit difficult otherwise.

4:25 PM Changeset in webkit [238985] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r235356 - [JSC] Array.prototype.reverse modifies JSImmutableButterfly
https://bugs.webkit.org/show_bug.cgi?id=188794

Reviewed by Saam Barati.

JSTests:

  • stress/reverse-with-immutable-butterfly.js: Added.

(shouldBe):
(reverseInt):
(reverseDouble):
(reverseContiguous):

Source/JavaScriptCore:

While Array.prototype.reverse modifies the butterfly of the given Array,
it does not account JSImmutableButterfly case. So it accidentally modifies
the content of JSImmutableButterfly.
This patch converts CoW arrays to writable arrays before reversing.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncReverse):

  • runtime/JSObject.h:

(JSC::JSObject::ensureWritable):

4:25 PM Changeset in webkit [238984] by Michael Catanzaro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r236227 - Crash under WebPageProxy::decidePolicyForNavigationAction()
https://bugs.webkit.org/show_bug.cgi?id=189763
<rdar://problem/44597111>

Reviewed by Alex Christensen.

Update WebNavigationState::navigation() / WebNavigationState::takeNavigation()
to return a pointer instead of a reference as we have evidence that they can
return null. I kept the debug assertions to try and catch the cases where we
return null but at least we stop crashing in release builds.

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::navigation):
(WebKit::WebNavigationState::takeNavigation):

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

(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

4:25 PM Changeset in webkit [238983] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r238788 - Lifetime of HTMLMediaElement is not properly handled in asynchronous actions
https://bugs.webkit.org/show_bug.cgi?id=192087
<rdar://problem/45975230>

Reviewed by Dean Jackson.

The HTMLMediaElement performs operations that allow arbitrary JavaScript to run. We need to make
sure the active media element is protected until those calls complete.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didFinishInsertingNode):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured):
(WebCore::HTMLMediaElement::scheduleConfigureTextTracks):
(WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated):
(WebCore::HTMLMediaElement::scheduleUpdatePlayState):
(WebCore::HTMLMediaElement::scheduleUpdateMediaState):

4:25 PM Changeset in webkit [238982] by Michael Catanzaro
  • 16 edits
    1 copy
    7 adds in releases/WebKitGTK/webkit-2.22

Merge r238562 - Disallow loading webarchives as iframes
https://bugs.webkit.org/show_bug.cgi?id=191728
<rdar://problem/45524528>

Reviewed by Youenn Fablet.

Source/WebCore:

Disallow loading webarchives as iframes. We don't allow loading remote webarchives.
Now, this policy is hardened to disallow loading webarchives as iframes for local
documents as well.

To allow old tests still be able to run, a flag is added to always allow loading local
webarchives in document. The flag can be set via window.internals.

Tests: webarchive/loading/test-loading-archive-subresource.html

webarchive/loading/test-loading-top-archive.html

  • dom/Document.h:

(WebCore::Document::setAlwaysAllowLocalWebarchive):
(WebCore::Document::alwaysAllowLocalWebarchive):

  • loader/DocumentLoader.cpp:

(WebCore::disallowWebArchive):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::isRemoteWebArchive): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::setAlwaysAllowLocalWebarchive const):

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

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::unableToImplementPolicy):
Add a check to prevent null pointer dereference.

LayoutTests:

  • platform/mac-wk1/webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
  • platform/mac/fast/loader/webarchive-encoding-respected.html:
  • webarchive/loading/cache-expired-subresource.html:
  • webarchive/loading/mainresource-null-mimetype-crash.html:
  • webarchive/loading/missing-data.html:
  • webarchive/loading/resources/test-loading-archive-main.webarchive: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
  • webarchive/loading/test-loading-archive-subresource-expected.txt: Added.
  • webarchive/loading/test-loading-archive-subresource-null-mimetype.html:
  • webarchive/loading/test-loading-archive-subresource.html: Copied from LayoutTests/webarchive/loading/test-loading-archive.html.
  • webarchive/loading/test-loading-archive.html:
  • webarchive/loading/test-loading-top-archive-expected.txt: Added.
  • webarchive/loading/test-loading-top-archive.html: Added.
4:25 PM Changeset in webkit [238981] by Michael Catanzaro
  • 3 edits
    1 add
    1 delete in releases/WebKitGTK/webkit-2.22

Merge r238270 - RegExpObject's collectMatches should not be using JSArray::push to fill in its match results.
https://bugs.webkit.org/show_bug.cgi?id=191730
<rdar://problem/46048517>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-187006.js: Removed.
    • this test is invalid because its sole purpose is to test for the non-spec compliant behavior that we just fixed.
  • stress/regress-191730.js: Added.

Source/JavaScriptCore:

According to the spec https://www.ecma-international.org/ecma-262/9.0/index.html#sec-regexp.prototype-@@match,
the RegExp match results are filled in using the spec's CreateDataProperty()
function which does not consult the prototype for setters. JSArray:push()
consults the prototype for setters. We should be using putDirectIndex() instead.

  • runtime/RegExpObjectInlines.h:

(JSC::collectMatches):

4:25 PM Changeset in webkit [238980] by Michael Catanzaro
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r238267 - RegExp operations should not take fast patch if lastIndex is not numeric.
https://bugs.webkit.org/show_bug.cgi?id=191731
<rdar://problem/46017305>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-191731.js: Added.

Source/JavaScriptCore:

This is because if lastIndex is an object with a valueOf() method, it can execute
arbitrary code which may have side effects, and side effects are not permitted by
the RegExp fast paths.

  • builtins/RegExpPrototype.js:

(globalPrivate.hasObservableSideEffectsForRegExpMatch):
(overriddenName.string_appeared_here.search):
(globalPrivate.hasObservableSideEffectsForRegExpSplit):
(intrinsic.RegExpTestIntrinsic.test):

  • builtins/StringPrototype.js:

(globalPrivate.hasObservableSideEffectsForStringReplace):

4:25 PM Changeset in webkit [238979] by Michael Catanzaro
  • 6 edits
    3 adds in releases/WebKitGTK/webkit-2.22

Merge r238326 - All users of ArrayBuffer should agree on the same max size
https://bugs.webkit.org/show_bug.cgi?id=191771

Reviewed by Mark Lam.

JSTests:

  • stress/big-wasm-memory-grow-no-max.js: Added.

(foo):
(catch):

  • stress/big-wasm-memory-grow.js: Added.

(foo):
(catch):

  • stress/big-wasm-memory.js: Added.

(foo):
(catch):

Source/JavaScriptCore:

Array buffers cannot be larger than 0x7fffffff, because otherwise loading typedArray.length in the DFG/FTL would produce
a uint32 or would require a signedness check, neither of which sounds reasonable. It's better to just bound their max size
instead.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBufferContents::ArrayBufferContents):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBufferContents::transferTo):
(JSC::ArrayBufferContents::copyTo):
(JSC::ArrayBufferContents::shareWith):

  • runtime/ArrayBuffer.h:
  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::tryCreate):
(JSC::Wasm::Memory::grow):

  • wasm/WasmPageCount.h:
4:25 PM Changeset in webkit [238978] by Michael Catanzaro
  • 4 edits
    1 copy
    1 add in releases/WebKitGTK/webkit-2.22

Merge r238877 - Don't report resource timing to parent frame for history items
https://bugs.webkit.org/show_bug.cgi?id=192273
<rdar://problem/45163764>

Reviewed by Youenn Fablet.

Source/WebCore:

We should not report history items to its parent frame as those are less
interested to its parent and might not be the first navigation in the iframes.

This change aligns the behavior when a cached document is not available for the
history item with the available case as we don't report resource timing for any
cached main document.

Test: http/tests/misc/resource-timing-navigation-in-restored-iframe-2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

LayoutTests:

  • http/tests/misc/resource-timing-navigation-in-restored-iframe-2-expected.txt: Added.
  • http/tests/misc/resource-timing-navigation-in-restored-iframe-2.html: Copied from LayoutTests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html.
  • http/tests/misc/resource-timing-navigation-in-restored-iframe.html:
4:24 PM Changeset in webkit [238977] by Michael Catanzaro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r238798 - Alignment padding needs to be zeroed out in IPC::Encoder
https://bugs.webkit.org/show_bug.cgi?id=192304

Reviewed by Chris Dumez.

Might be useful to make a regression test for this, but I couldn't find any
other tests for this code.

  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::grow): Use std::memset to zero-fill padding bytes.

  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::HistoryEntryDataEncoder::grow): Ditto.

4:24 PM Changeset in webkit [238976] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r238578 - [Re-landing] NaNs read from Wasm code needs to be be purified.
https://bugs.webkit.org/show_bug.cgi?id=191056
<rdar://problem/45660341>

Reviewed by Filip Pizlo.

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

4:24 PM Changeset in webkit [238975] by Michael Catanzaro
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r238408 - Return nullptr immediately if the key doesn't exist in the HashMap.
https://bugs.webkit.org/show_bug.cgi?id=191841

Reviewed by Chris Dumez.
Source/WebKit:

  • Shared/API/APIDictionary.h:

Tools:

Add a test that would crash prior to the fix for this bug.

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

(TestWebKitAPI::TEST):

4:24 PM Changeset in webkit [238974] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WTF

Merge r236969 - StringTypeAdapter constructor is not properly enforcing String::MaxLength.
https://bugs.webkit.org/show_bug.cgi?id=190392
<rdar://problem/45116210>

Reviewed by Saam Barati.

Previously, the StringTypeAdapter constructor for a UChar* string was summing the
unsigned length of the source string without an overflow check. We now make that
length a size_t which removes this issue, and assert that it's within
String::MaxLength thereafter.

Also made the StringTypeAdapter constructor for a LChar* string behave in an
equivalent manner for consistency. In both cases, we'll crash in a RELEASE_ASSERT
if the source string length exceeds String::MaxLength.

  • wtf/text/StringConcatenate.h:
4:24 PM Changeset in webkit [238973] by Michael Catanzaro
  • 10 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236804 - Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=190187
<rdar://problem/42512909>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-190187.js: Added.

Source/JavaScriptCore:

Allowing different max string lengths at each level opens up opportunities for
bugs to creep in. With 2 different max length values, it is more difficult to
keep the story straight on how we do overflow / bounds checks at each place in
the code. It's also difficult to tell if a seemingly valid check at the WTF level
will have bad ramifications at the JSC level. Also, it's also not meaningful to
support a max length > INT_MAX. To eliminate this class of bugs, we'll
standardize on a MaxLength of INT_MAX at all levels.

We'll also standardize the way we do length overflow checks on using
CheckedArithmetic, and add some asserts to document the assumptions of the code.

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • Fix OOM error handling which crashed a test after the new MaxLength was applied.
  • runtime/JSString.h:

(JSC::JSString::finishCreation):
(JSC::JSString::createHasOtherOwner):
(JSC::JSString::setLength):

  • runtime/JSStringInlines.h:

(JSC::jsMakeNontrivialString):

  • runtime/Operations.h:

(JSC::jsString):

Source/WTF:

  • wtf/text/StringConcatenate.h:

(WTF::tryMakeStringFromAdapters):
(WTF::sumWithOverflow): Deleted.

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.h:
3:56 PM Changeset in webkit [238972] by Chris Dumez
  • 2 edits in trunk/Tools

ProcessSwap.UseSessionCookiesAfterProcessSwapInPrivateBrowsing API test is failing
https://bugs.webkit.org/show_bug.cgi?id=192362
<rdar://problem/46460360>

Reviewed by Ryosuke Niwa.

Move the call to _setCookieAcceptPolicy *after* we've constructed a WKWebView and thus
*after* we know for sure we have a network process to communicate the policy to.
This should address the failures on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
3:38 PM Changeset in webkit [238971] by youenn@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Update libwebrtc up to 0d007d7c4f
https://bugs.webkit.org/show_bug.cgi?id=192316
<rdar://problem/46563726>

Unreviewed.

  • Source/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe: Removed.

Unneeded file.

3:14 PM Changeset in webkit [238970] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Add keychain access entitlement to WebKitTestRunnerApp
https://bugs.webkit.org/show_bug.cgi?id=192489
<rdar://problem/45057952>

Reviewed by Alexey Proskuryakov.

  • WebKitTestRunner/Configurations/WebKitTestRunnerApp-iOS.entitlements:
2:35 PM Changeset in webkit [238969] by sbarati@apple.com
  • 5 edits
    3 adds in trunk

WKWebProcessPlugInLoadDelegate should have API for saying which rendering events it wants to listen for
https://bugs.webkit.org/show_bug.cgi?id=192473

Reviewed by Andy Estes.

Source/WebKit:

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(PageLoaderClient::layoutMilestones const):

Tools:

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

(-[DidFirstMeaningfulPaintRemoteObject didFirstMeaningfulPaint]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RenderingProgressPlugIn.mm: Added.

(-[RenderingProgressPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[RenderingProgressPlugIn webProcessPlugInBrowserContextControllerRenderingProgressEvents:]):
(-[RenderingProgressPlugIn webProcessPlugInBrowserContextController:renderingProgressDidChange:]):

  • TestWebKitAPI/Tests/WebKitCocoa/RenderingProgressProtocol.h: Added.
1:57 PM Changeset in webkit [238968] by Justin Michaud
  • 9 edits in trunk/Source/WebCore

CSS Painting API code cleanup
https://bugs.webkit.org/show_bug.cgi?id=192480

Reviewed by Dean Jackson.

No new tests, since the existing tests should cover it.

  • bindings/js/JSDOMWrapper.cpp:

(WebCore::outputConstraintSubspaceFor):
(WebCore::globalObjectOutputConstraintSubspaceFor):

  • bindings/js/JSWorkletGlobalScopeBase.cpp:

(WebCore::toJS):

  • css/CSSPaintCallback.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::doCustomPaint):

  • platform/graphics/CustomPaintImage.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::addCustomPaintWatchProperty):
(WebCore::changedCustomPaintWatchedProperty):
(WebCore::RenderStyle::changeRequiresRepaint const):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

  • worklets/PaintWorkletGlobalScope.h:
1:38 PM Changeset in webkit [238967] by youenn@apple.com
  • 1889 edits
    268 adds
    121 deletes in trunk/Source

Update libwebrtc up to 0d007d7c4f
https://bugs.webkit.org/show_bug.cgi?id=192316

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Updating to latest libwebrtc will allows cherry-picking important bug fixes.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/third_party/abseil-cpp: refreshed.
  • Source/webrtc: refreshed.
  • WebKit/0001-libwebrtc-changes.patch: Removed.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Update include according new libwebrtc.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

Source/WebKit:

Update code base according new libwebrtc backend
In particular, use directly int64_t for packet time.

  • Configurations/WebKit.xcconfig:
  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::signalReadPacket):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:
  • NetworkProcess/webrtc/NetworkRTCSocket.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::signalReadPacket):

1:15 PM Changeset in webkit [238966] by Jonathan Bedard
  • 2 edits in trunk/Tools

REGRESSION: run-webkit-tests may fail when using booted simulators (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=192470
<rdar://problem/46532001>

Unreviewed infrastructure fix.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort.setup_test_run): Check that the number of initialized devices matches the
number of child processes.

1:10 PM Changeset in webkit [238965] by dino@apple.com
  • 6 edits
    2 adds in trunk/Source/WebCore

[iOS] Make WebGPU work with remote layer hosting
https://bugs.webkit.org/show_bug.cgi?id=192508
<rdar://problem/46560649>

Reviewed by Tim Horton.

WebGPU wasn't working on iOS because we were not correctly
identifying the CALayers for remote hosting. Fix this by
adding a new CALayer type, WebGPULayer. This will also
eventually hold the code to render WebGPU into a canvas.

Covered by the existing reference tests (on device).

  • SourcesCocoa.txt: Add new files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: Recognise the WebGPULayer

class for remote hosting.
(WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer):
(WebCore::PlatformCALayerCocoa::PlatformCALayerCocoa):

  • platform/graphics/cocoa/WebGPULayer.h: Added. Very simple inheritance

from CAMetalLayer.

  • platform/graphics/cocoa/WebGPULayer.mm: Added.

(-[WebGPULayer init]):
(-[WebGPULayer copyImageSnapshotWithColorSpace:]):

  • platform/graphics/gpu/GPUSwapChain.h: Reference WebGPULayer rather

than CALayer.

  • platform/graphics/gpu/cocoa/GPUSwapChainMetal.mm: Ensure that

the WebGPULayer has a reference back to this object, which it
will use in the future.
(WebCore::GPUSwapChain::create):
(WebCore::GPUSwapChain::GPUSwapChain):

12:41 PM Changeset in webkit [238964] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Debug ] Layout Test webgl/2.0.0/conformance2/textures/misc/tex-unpack-params.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=190892

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:10 PM Changeset in webkit [238963] by Antti Koivisto
  • 26 edits
    2 moves in trunk/Source/WebCore

Rename LayoutState to RenderLayoutState
https://bugs.webkit.org/show_bug.cgi?id=192504

Reviewed by Zalan Bujtas.

The name is better used in LFC.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layoutState const):
(WebCore::FrameViewLayoutContext::pushLayoutState):
(WebCore::FrameViewLayoutContext::pushLayoutStateForPaginationIfNeeded):

  • page/FrameViewLayoutContext.h:
  • rendering/LayoutState.cpp: Removed.
  • rendering/LayoutState.h: Removed.
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):

  • rendering/RenderBlockLineLayout.cpp:
  • rendering/RenderBox.cpp:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderFragmentedFlow.cpp:
  • rendering/RenderGrid.cpp:
  • rendering/RenderImage.cpp:
  • rendering/RenderInline.cpp:
  • rendering/RenderLayoutState.cpp: Copied from Source/WebCore/rendering/LayoutState.cpp.

(WebCore::RenderLayoutState::RenderLayoutState):
(WebCore::RenderLayoutState::computeOffsets):
(WebCore::RenderLayoutState::computeClipRect):
(WebCore::RenderLayoutState::computePaginationInformation):
(WebCore::RenderLayoutState::pageLogicalOffset const):
(WebCore::RenderLayoutState::computeLineGridPaginationOrigin):
(WebCore::RenderLayoutState::propagateLineGridInfo):
(WebCore::RenderLayoutState::establishLineGrid):
(WebCore::RenderLayoutState::addLayoutDelta):
(WebCore::RenderLayoutState::layoutDeltaMatches const):
(WebCore::LayoutState::LayoutState): Deleted.
(WebCore::LayoutState::computeOffsets): Deleted.
(WebCore::LayoutState::computeClipRect): Deleted.
(WebCore::LayoutState::computePaginationInformation): Deleted.
(WebCore::LayoutState::pageLogicalOffset const): Deleted.
(WebCore::LayoutState::computeLineGridPaginationOrigin): Deleted.
(WebCore::LayoutState::propagateLineGridInfo): Deleted.
(WebCore::LayoutState::establishLineGrid): Deleted.
(WebCore::LayoutState::addLayoutDelta): Deleted.
(WebCore::LayoutState::layoutDeltaMatches const): Deleted.

  • rendering/RenderLayoutState.h: Copied from Source/WebCore/rendering/LayoutState.h.

(WebCore::RenderLayoutState::RenderLayoutState):
(WebCore::LayoutState::LayoutState): Deleted.
(WebCore::LayoutState::isPaginated const): Deleted.
(WebCore::LayoutState::pageLogicalHeight const): Deleted.
(WebCore::LayoutState::pageLogicalHeightChanged const): Deleted.
(WebCore::LayoutState::lineGrid const): Deleted.
(WebCore::LayoutState::lineGridOffset const): Deleted.
(WebCore::LayoutState::lineGridPaginationOrigin const): Deleted.
(WebCore::LayoutState::paintOffset const): Deleted.
(WebCore::LayoutState::layoutOffset const): Deleted.
(WebCore::LayoutState::pageOffset const): Deleted.
(WebCore::LayoutState::needsBlockDirectionLocationSetBeforeLayout const): Deleted.
(WebCore::LayoutState::renderer const): Deleted.
(WebCore::LayoutState::clipRect const): Deleted.
(WebCore::LayoutState::isClipped const): Deleted.
(WebCore::LayoutState::layoutDelta const): Deleted.

  • rendering/RenderListBox.cpp:
  • rendering/RenderMediaControlElements.cpp:
  • rendering/RenderMultiColumnFlow.cpp:
  • rendering/RenderTable.cpp:
  • rendering/RenderTableRow.cpp:
  • rendering/RenderTableSection.cpp:
  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:
  • rendering/RenderView.h:
  • rendering/RootInlineBox.cpp:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

11:32 AM Changeset in webkit [238962] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Layout Test fast/css/counters/element-removal-crash.xhtml is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=183389

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:25 AM Changeset in webkit [238961] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

[LFC] Rename formattingContext() to createFormattingContext()
https://bugs.webkit.org/show_bug.cgi?id=192500

Reviewed by Zalan Bujtas.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):

  • layout/FormattingState.h:
  • layout/LayoutFormattingState.cpp:

(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingState.cpp:

(WebCore::Layout::BlockFormattingState::createFormattingContext):
(WebCore::Layout::BlockFormattingState::formattingContext): Deleted.

  • layout/blockformatting/BlockFormattingState.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const):

  • layout/inlineformatting/InlineFormattingState.h:
10:53 AM Changeset in webkit [238960] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Send bug id as a build property
https://bugs.webkit.org/show_bug.cgi?id=192494

Reviewed by Lucas Forschler.

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

(BugzillaPatchFetcher.fetch):

10:51 AM Changeset in webkit [238959] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Builds should have a link to patch and bug
https://bugs.webkit.org/show_bug.cgi?id=192492

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/steps.py:

(ConfigureBuild.add_patch_id_url): Method to add Patch URL.
(ConfigureBuild.add_bug_id_url): Method to add Bug URL.
(ConfigureBuild.getPatchURL): Method to get Patch URL.
(ConfigureBuild.getBugURL): Method to get Bug URL.

10:51 AM Changeset in webkit [238958] by Truitt Savell
  • 10 edits in trunk/Source

Unreviewed, rolling out r238947.

Revision caused fast/visual-viewport/tiled-drawing/zoomed-
fixed-scrolling-layers-state.html to constantly fail

Reverted changeset:

"Allow control over child order when adding nodes to the
scrolling tree"
https://bugs.webkit.org/show_bug.cgi?id=176914
https://trac.webkit.org/changeset/238947

10:51 AM Changeset in webkit [238957] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Configure logfile for ews-app logs
https://bugs.webkit.org/show_bug.cgi?id=192493

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/init.py:
10:48 AM Changeset in webkit [238956] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Style queue exception on some security bugs
https://bugs.webkit.org/show_bug.cgi?id=190793

Reviewed by Lucas Forschler.

  • Scripts/webkitpy/tool/steps/applywatchlist.py:

(ApplyWatchList.run):

10:40 AM Changeset in webkit [238955] by aestes@apple.com
  • 2 edits in trunk/Source/WTF

[Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
https://bugs.webkit.org/show_bug.cgi?id=192498

Reviewed by Tim Horton.

Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
which behave like their non-optional variants but do not require their classes to exist.

  • wtf/cocoa/SoftLinking.h:
10:37 AM Changeset in webkit [238954] by Wenson Hsieh
  • 5 edits in trunk

[Attachment Support] Cloned attachment elements lose their unique identifiers
https://bugs.webkit.org/show_bug.cgi?id=192483

Reviewed by Tim Horton.

Source/WebCore:

This patch adds logic to ensure that the unique identifier of a cloned attachment element is the same as the
unique identifier of the original attachment element. If the cloned attachment is inserted into the same
document as the original attachment, then we will exercise the same codepath for copied-and-pasted attachments,
and assign a new unique identifier to the attachment element, while creating a new _WKAttachment in the client
that's backed by the same NSFileWrapper.

Test: WKAttachmentTests.AttachmentIdentifierOfClonedAttachment

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::copyNonAttributePropertiesFromElement):

  • html/HTMLAttachmentElement.h:

Tools:

Introduce a new API test.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

10:33 AM Changeset in webkit [238953] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
https://bugs.webkit.org/show_bug.cgi?id=192288

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-07
Reviewed by Frédéric Wang.

Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
as they do the same thing. Also remove std::optional from parseAccessControlAllowList
since the function can't fail.

  • WebCore.order:
  • loader/CrossOriginAccessControl.cpp:

(WebCore::validatePreflightResponse):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::parse):

  • loader/CrossOriginPreflightResultCache.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseAccessControlExposeHeadersAllowList): Deleted.

  • platform/network/HTTPParsers.h:

(WebCore::parseAccessControlAllowList):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

10:08 AM Changeset in webkit [238952] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Don't update AVPlayerViewController currentTime while scrubbing
https://bugs.webkit.org/show_bug.cgi?id=192438
<rdar://problem/42977046>

Reviewed by Jer Noble.

No new tests, tested manually.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::currentTimeChanged): Don't report change during scrubbing.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController beginScrubbing:]): Set _isScrubbing.
(-[WebAVPlayerController endScrubbing:]): Ditto.
(-[WebAVPlayerController isScrubbing]): Return _isScrubbing.

2:48 AM Changeset in webkit [238951] by commit-queue@webkit.org
  • 15 edits in trunk

[WPE][GTK] Implement WebAudioSourceProviderGStreamer to allow bridging MediaStream and the WebAudio APIs
https://bugs.webkit.org/show_bug.cgi?id=186933

Source/WebCore:

Reusing the AudioSourceProviderGStreamer itself as it was doing almost everything we needed,
just added a constructor to be able to create it from a MediaStreamTrackPrivate and made it a
WebAudioSourceProvider which only means it is now a ThreadSafeRefCounted.

Sensibily refactored GStreamerMediaStreamSource so that we could reuse it to track a single
MediaStreamTrack.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-12-07
Reviewed by Philippe Normand.

Enabled all tests depending on that feature.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::~AudioSourceProviderGStreamer):
(WebCore::AudioSourceProviderGStreamer::setClient):

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.h:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::audioSourceProvider):

  • platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:

(WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer):

  • platform/mediastream/gstreamer/GStreamerAudioStreamDescription.h:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::webkitMediaStreamSrcSetupSrc):
(WebCore::webkitMediaStreamSrcSetupAppSrc):
(WebCore::webkitMediaStreamSrcAddTrack):
(WebCore::webkitMediaStreamSrcSetStream):
(WebCore::webkitMediaStreamSrcNew):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.h:
  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource):
(WebCore::WrappedMockRealtimeAudioSource::start):
(WebCore::WrappedMockRealtimeAudioSource::addHum):
(WebCore::WrappedMockRealtimeAudioSource::render):
(WebCore::WrappedMockRealtimeAudioSource::settingsDidChange):
(WebCore::MockGStreamerAudioCaptureSource::startProducingData):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData): Handle the case where input buffers

are "big" and process all the data we can for each runs of the method.

LayoutTests:

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-12-07
Reviewed by Philippe Normand.

Enabled all tests depending on that feature.

  • platform/gtk/TestExpectations:
  • webrtc/clone-audio-track.html:

Dec 6, 2018:

10:18 PM Changeset in webkit [238950] by Jonathan Bedard
  • 2 edits in trunk/Tools

Consecutive DumpRenderTree crashes are happening again on WinCairo BuildBots since r238903
https://bugs.webkit.org/show_bug.cgi?id=192486

Unreviewed infrastructure fix.

WinCairo bots define WEBKIT_TEST_CHILD_PROCESSES to run less processes due to RAM restrictions.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(_set_up_derived_options):

9:51 PM Changeset in webkit [238949] by ap@apple.com
  • 4 edits in trunk/Source

Move USE_NEW_THEME out of WebCore's config.h
https://bugs.webkit.org/show_bug.cgi?id=192426

Reviewed by Tim Horton.

Source/WebCore:

  • config.h:

Source/WTF:

  • wtf/Platform.h:
9:34 PM Changeset in webkit [238948] by ddkilzer@apple.com
  • 8 edits in trunk

Injected bundle for WebKitTestRunner leaks WKTypeRef objects
<https://webkit.org/b/192481>
<rdar://problem/46539059>

Reviewed by Simon Fraser.

Source/WebKit:

Change function parameter name from returnData[Ref] to
returnRetainedData[Ref] to document that the value returned is
a +1 retained WKTypeRef object.

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

(WKBundlePostSynchronousMessage):

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

(WKBundlePagePostSynchronousMessageForTesting):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:

Tools:

This patch:

  • Fixes leaks in various injected bundle methods that return +1 retained WKTypeRef objects via pointer.
  • Asserts the returned object is the expected WKTypeRef.
  • Replaces 0 with nullptr in many places.
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didCreatePage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::shouldDumpPixels const):
(WTR::TestRunner::whatToDump const):
(WTR::TestRunner::shouldWaitUntilDone const):
(WTR::TestRunner::shouldDumpFrameLoadCallbacks):
(WTR::TestRunner::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestRunner::clearDidReceiveServerRedirectForProvisionalNavigation):
(WTR::TestRunner::secureEventInputIsEnabled const):
(WTR::TestRunner::isStatisticsPrevalentResource):
(WTR::TestRunner::isStatisticsVeryPrevalentResource):
(WTR::TestRunner::isStatisticsRegisteredAsSubresourceUnder):
(WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
(WTR::TestRunner::isStatisticsHasHadUserInteraction):
(WTR::TestRunner::isStatisticsGrandfathered):
(WTR::TestRunner::statisticsProcessStatisticsAndDataRecords):
(WTR::TestRunner::statisticsUpdateCookieBlocking):
(WTR::TestRunner::statisticsSubmitTelemetry):
(WTR::TestRunner::statisticsClearInMemoryAndPersistentStore):
(WTR::TestRunner::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestRunner::statisticsResetToConsistentState):
(WTR::TestRunner::getAllStorageAccessEntries):
(WTR::TestRunner::hasDOMCache):
(WTR::TestRunner::domCacheSize):
(WTR::TestRunner::injectUserScript):
(WTR::TestRunner::keyExistsInKeychain):

5:47 PM Changeset in webkit [238947] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Allow control over child order when adding nodes to the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=176914

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-06
Reviewed by Simon Fraser.

Based on an earlier patch by Simon Fraser.

Source/WebCore:

Previously ScrollingCoordinator just allowed nodes to be "attached" with a given parent,
but with no control over sibling order. To allow for correct hit-testing overflow and
frame scrolling nodes, we have to build the scrolling tree in z-order.

This patch adds a 'childIndex' parameter to attachNode() which gives control over
sibling order. For now, RenderLayerCompositor always uses the default 'notFound' value
for childIndex so the current behavior (appending new nodes at the end of child list) is
preserved.

No new tests, behavior unchanged and already covered by existing tests.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::attachToStateTree):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::attachToStateTree):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::insertChild):
(WebCore::ScrollingStateNode::indexOfChild const):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::nodeTypeAndParentMatch const):
(WebCore::ScrollingStateTree::attachNode):

  • page/scrolling/ScrollingStateTree.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::RemoteScrollingCoordinatorTransaction::decode): Make explicit that we want to append
the new node at the end of child list.

5:35 PM Changeset in webkit [238946] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk

We should ignore minimumEffectiveDeviceWidth if the page specifies device-width in viewport meta-tag.
https://bugs.webkit.org/show_bug.cgi?id=192377
<rdar://problem/46364206>

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

Source/WebCore:

If the page specifies width=device-width or initial-scale=1 in the viewport meta tag, we should use the
native device width and ignore the minimum effective device width in ViewportConfiguration. The patch
also introduces scalableNativeWebpageParameters() which uses the device width as default and also allows the page
to shrink-to-fit. If a page doesn't have viewport meta tag, or if the width argument isn't device-width
and the initial scale isn't 1, we will use scalableNativeWebpageParameters() as the default configuration.

Tests: fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width.html

fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::updateDefaultConfiguration): pick the default configuration based on

the page's viewport arguments. Also, we will always fall back to scalableNativeWebpageParameters() if we
can ignore scaling constraints.

(WebCore::ViewportConfiguration::setViewportArguments): When page sends us new ViewportArguments, pick

up the correponsding default configuration before updating the configuration.

(WebCore::ViewportConfiguration::setCanIgnoreScalingConstraints): When m_canIgnoreScalingConstraints is

changed, try to pick up the correponsding default configuration.

(WebCore::ViewportConfiguration::scalableNativeWebpageParameters): Add a new default set of viewport Parameters

this is very close to nativeWebpageParameters() excpet that it allows shrink to fit and its minimum scale
is 0.25. We will use this Parameters for pages that doesn't have viewport meta tag; or the width is
not device-width and initial scale is not 1.

(WebCore::ViewportConfiguration::updateConfiguration): If the page's viewport argument doesn't override

the default width, use the m_minimumLayoutSize.width().

  • page/ViewportConfiguration.h:

(WebCore::ViewportConfiguration::shouldIgnoreMinimumEffectiveDeviceWidth const): A helper method to tell

if we should avoid using minimum effective device width.

(WebCore::ViewportConfiguration::canOverrideConfigurationParameters const): If we are using a default

configuration that is neither nativeWebpageParameters() nor scalableNativeWebpageParameters(), don't override
it.

(WebCore::ViewportConfiguration::minimumEffectiveDeviceWidth const): Add a helper method to return minimum

effective device width based on shouldIgnoreMinimumEffectiveDeviceWidth().

(WebCore::ViewportConfiguration::effectiveLayoutSizeScaleFactor const): Use minimumEffectiveDeviceWidth().

Source/WebKit:

Since we are using page's viewport arguments to decide the default viewport parameters and
whether we can use mininum effective device width, we should always call setViewportArguments()
regardless of shouldIgnoreMetaViewport settings.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::viewportPropertiesDidChange): Always call setViewportArguments().
(WebKit::WebPage::didCommitLoad): Ditto.

LayoutTests:

  • fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width-expected.txt: Added.
  • fast/viewport/ios/ignore-minimum-device-width-for-page-with-viewport-device-width.html: Added.
  • fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta-expected.txt: Added.
  • fast/viewport/ios/use-minimum-device-width-for-page-without-viewport-meta.html: Added.
3:48 PM Changeset in webkit [238945] by Alan Coon
  • 1 copy in tags/Safari-606.4.3

Tag Safari-606.4.3.

3:21 PM Changeset in webkit [238944] by Jonathan Bedard
  • 8 edits in trunk/Tools

REGRESSION: run-webkit-tests may fail when using booted simulators
https://bugs.webkit.org/show_bug.cgi?id=192470
<rdar://problem/46532001>

Reviewed by Lucas Forschler.

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

(Manager.run): Logging uses the number of child processes to print out information about how efficiently tests
were sharded after the fact. This number is the most meaningful if it is the maximum number of child processes used.

  • Scripts/webkitpy/port/base.py:

(Port.max_child_processes): By default, Ports do not support running on any specific kind of device.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort.default_child_processes): Rather than using the currently initialized devices as a proxy for how many
child processes are being used, check the device manager every time. Regardless of which devices are attached or
available, iOS cannot boot watchOS devices and vice-versa. dedicated_simulators is not a known argument to
device_count_for_type, use use_booted_simulator instead.
(DevicePort.max_child_processes): Simulators can boot more devices than what is specified by device_count_for_type,
but, if no devices are available, then max_child_processes should return 0 even for simulators.

  • Scripts/webkitpy/port/ios_device_unittest.py:

(IOSDeviceTest):
(IOSDeviceTest.test_max_child_processes):

  • Scripts/webkitpy/port/ios_simulator_unittest.py:

(IOSSimulatorTest):
(IOSSimulatorTest.test_max_child_processes):

  • Scripts/webkitpy/port/port_testcase.py:

(PortTestCase):
(PortTestCase.test_max_child_processes):

  • Scripts/webkitpy/port/watch_simulator_unittest.py:

(WatchSimulatorTest):
(WatchSimulatorTest.test_max_child_processes):

3:05 PM Changeset in webkit [238943] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Ignore case when comparing device types (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=192409
<rdar://problem/46491558>

Unreviewed typo fix.

  • Scripts/webkitpy/xcode/device_type_unittest.py:

(DeviceTypeTest.test_comparison_lower_case):
(DeviceTypeTest.test_comparsion_lower_case): Deleted.

2:34 PM Changeset in webkit [238942] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

Content Extensions: Misc fixes to debugging / perf testing code
https://bugs.webkit.org/show_bug.cgi?id=192474

Reviewed by Mark Lam.

This make it possible to build the content extensions support with the
debugging features enabled. In particular, building with
CONTENT_EXTENSIONS_PERFORMANCE_REPORTING enabled was broken.

No new tests needed.

  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList): Remove usage of removed
variables machinesWihthoutConditionsCount,
totalBytecodeSizeForMachinesWithoutConditions,
machinesWithConditionsCount, and
totalBytecodeSizeForMachinesWithConditions.

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::debugPrintDot const):
Use "%" PRIu64 instead of "%llu" to format uint64_t values.

  • contentextensions/NFA.cpp:

(WebCore::ContentExtensions::NFA::debugPrintDot const):
Use "%" PRIu64 instead of "%llu" to format uint64_t values.

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

Web Share API: share overlay does not stick to the Safari window
https://bugs.webkit.org/show_bug.cgi?id=192469
<rdar://problem/46074833>

Reviewed by Wenson Hsieh.

  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet sharingServicePicker:didChooseSharingService:]):
(-[WKShareSheet sharingServicePicker:delegateForSharingService:]):
(-[WKShareSheet sharingService:sourceWindowForShareItems:sharingContentScope:]):
(-[WKShareSheet sharingService:didFailToShareItems:error:]):
(-[WKShareSheet sharingService:didShareItems:]):
Implement another NSSharingServicePickerDelegate method to return
an *NSSharingService* delegate when needed.

Implement an NSSharingServiceDelegate method to return the window that
the service's UI should attach to.

Also, instead of notifying the Web Content process when a service is picked
(or not) in the NSSharingServicePicker, wait until the share has completed
(or failed) to send didComplete. This both makes the return completion
value more accurate (matching iOS, if you cancel the share during the
recipient choice step, it will now fail), and avoids explicitly tearing
down the NSSharingServicePicker too early, which breaks the UI attaching mechanism.

2:09 PM Changeset in webkit [238940] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Create device given lower-case DeviceType
<https://bugs.webkit.org/show_bug.cgi?id=192472>
<rdar://problem/46532650>

Reviewed by Lucas Forschler.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager._get_device_identifier_for_type): Comparing simctl device identifiers with DeviceTypes
should be letter-case agnostic.

  • Scripts/webkitpy/xcode/simulated_device_unittest.py:

(test_lower_case_device_type):

1:22 PM Changeset in webkit [238939] by Wenson Hsieh
  • 34 edits
    3 adds in trunk

[iOS] WKWebView should match UITextView behavior when editing text with an RTL keyboard
https://bugs.webkit.org/show_bug.cgi?id=187554
<rdar://problem/42075638>

Reviewed by Tim Horton.

Source/WebKit:

Add support for automatically switching the base writing direction to the default writing direction with respect
to the current keyboard in an editable WKWebView by implementing -setBaseWritingDirection:forRange:. On iOS 12
and earlier, UIKit invokes this protocol method whenever the keyboard is changed to one with a different writing
direction, although in some other versions of iOS, this only happens when first focusing an editable area.

Test: editing/input/ios/rtl-keyboard-input-on-focus.html

  • Platform/spi/ios/UIKitSPI.h:

Declare UIKeyboardImpl IPI methods mostly for use in WebKitTestRunner (with the exception of
-setInitialDirection, which we may invoke when we receive the first post-layout EditorState update after
focusing an editable element).

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

(WebKit::WebPageProxy::increaseListLevel):
(WebKit::WebPageProxy::decreaseListLevel):
(WebKit::WebPageProxy::changeListType):
(WebKit::WebPageProxy::setBaseWritingDirection):

Drive-by style fixes: make these bail and return early if !isValid().

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Reset assisted node state in the UI process upon web process termination.

  • UIProcess/WebPageProxy.h:

Add plumbing for setBaseWritingDirection, from WebPageProxy to WebPage to Editor.

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

(WebKit::PageClientImpl::didReceiveEditorStateUpdateAfterFocus):

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

(-[WKContentView baseWritingDirectionForPosition:inDirection:]):
(coreWritingDirection):
(-[WKContentView setBaseWritingDirection:forRange:]):

Support -setBaseWritingDirectionForPosition:forRange:, but only in the case where the given range is the
selected range. This is all that's currently needed to fulfill the requirements in <rdar://problem/42075638>,
though we could potentially add full support for this in the future by mapping the given text range to a DOM
range and moving the selection prior to setting the base writing direction.

(-[WKContentView _didReceiveEditorStateUpdateAfterFocus]):

Add a hook to notify WKContentView when the first post-layout EditorState has been received in the UI process.
When this is invoked, if the web view is editable and the selection is not a range, we call into UIKeyboardImpl
to change the initial writing direction if necessary.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::startAssistingNode):
(WebKit::WebPageProxy::stopAssistingNode):
(WebKit::WebPageProxy::editorStateChanged):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setBaseWritingDirection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add support for simulating the keyboard input mode in layout tests using UIScriptController, as well as a new
TestOption to make the web view editable.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setKeyboardInputModeIdentifier):

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

(WTR::UIScriptController::setKeyboardInputModeIdentifier):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::overriddenKeyboardInputMode const):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::setEditable):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::setEditable):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::swizzleCurrentInputMode):
(WTR::TestController::setKeyboardInputModeIdentifier):

Swizzle out several UIKeyboardInputModeController methods in order to convince UIKit that the user has
selected a UIKeyboardInputMode corresponding to the given identifier. The call to
-prepareKeyboardInputModeFromPreferences: is also necessary on iOS 12 in order to update cached writing
direction state in UIKit.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setKeyboardInputModeIdentifier):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::setEditable):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::setEditable):

  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::setEditable):

LayoutTests:

Add a new layout test to verify that when focusing an editable WKWebView using a right-to-left keyboard input
mode, we will set the base writing direction to be right-to-left, and vice versa.

  • TestExpectations:
  • editing/input/ios/rtl-keyboard-input-on-focus-expected.txt: Added.
  • editing/input/ios/rtl-keyboard-input-on-focus.html: Added.
  • platform/ios-wk2/TestExpectations:
  • resources/ui-helper.js:

Add a UIHelper method to set the keyboard input mode to the given identifier. Example identifiers are "en_US"
(the default U.S. English keyboard) and "he_IL" (the Hebrew keyboard, which is right-to-left).

(window.UIHelper.setKeyboardInputModeIdentifier):
(window.UIHelper):

12:37 PM Changeset in webkit [238938] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r238602): Elements: collapsing a DOM node with the left arrow doesn't work
https://bugs.webkit.org/show_bug.cgi?id=192353
<rdar://problem/46455019>

Reviewed by Devin Rousso.

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.deselect):
Don't early return when the element is not the selected tree element.
This condition no longer holds now that TreeOutline supports multiple selection.

12:07 PM Changeset in webkit [238937] by david_quesada@apple.com
  • 6 edits in trunk/Source/WebKit

-[WKProcessPool _resumeDownloadFromData:path:] should allow specifying the originating web view
https://bugs.webkit.org/show_bug.cgi?id=192411
rdar://problem/46492487

Reviewed by Alex Christensen.

  • UIProcess/API/C/WKContext.cpp:

(WKContextResumeDownload):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _resumeDownloadFromData:path:originatingWebView:]):
(-[WKProcessPool _resumeDownloadFromData:path:]): Deleted.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::resumeDownload):

  • Set the originating page of the DownloadProxy.
  • If the originating page is non-null, use its session ID for the download.
  • Remove a FIXME. It's possible to do this now by providing the web view whose session should be used for the download.
  • UIProcess/WebProcessPool.h:
11:35 AM Changeset in webkit [238936] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a quick fix after r238919

Add an early return such that the error message is actually meaningful.

  • UIProcess/WebAuthentication/Mock/MockHidService.cpp:

(WebKit::MockHidService::platformStartDiscovery):

11:32 AM Changeset in webkit [238935] by jiewen_tan@apple.com
  • 5 edits in trunk/LayoutTests

Layout Test http/tests/misc/resource-timing-resolution.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181957

Reviewed by Youenn Fablet.

Since the timing information is a multiplier of a small delta, it is likely that
two timing information are the same as they are so close that fall into the same
bucket. Therefore, this patch releases the check of 't0 !== t1'.

  • http/tests/misc/resource-timing-resolution-expected.txt:
  • http/tests/misc/resource-timing-resolution.html:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:59 AM Changeset in webkit [238934] by keith_miller@apple.com
  • 4 edits in trunk/JSTests

stress/big-wasm-memory tests failing on 32-bit JSC bot
https://bugs.webkit.org/show_bug.cgi?id=192020

Reviewed by Saam Barati.

Not every platform has WebAssembly, e.g. 32-bit, so we should exit
the wasm stress tests if the WebAssembly object does not exist.

  • stress/big-wasm-memory-grow-no-max.js:

(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.

  • stress/big-wasm-memory-grow.js:

(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.

  • stress/big-wasm-memory.js:

(test.foo):
(test):
(foo): Deleted.
(catch): Deleted.

8:55 AM Changeset in webkit [238933] by achristensen@apple.com
  • 23 edits in trunk/Source

Remove unused LoaderStrategy::storeDerivedDataToCache and associated dead code
https://bugs.webkit.org/show_bug.cgi?id=192452

Reviewed by Anders Carlsson.

Source/WebCore:

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

(WebCore::ResourceLoader::didRetrieveDerivedDataFromCache): Deleted.

  • loader/ResourceLoader.h:
  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didRetrieveDerivedDataFromCache): Deleted.

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::isolatedCopy const):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::didRetrieveDerivedDataFromCache): Deleted.

Source/WebKit:

This was introduced in r210835 but never used.
It's preventing me from making the disk cache associated with a SessionID/NetworkSession.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::storeDerivedDataToCache): Deleted.

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

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse): Deleted.

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

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::storeDerivedDataToCache): Deleted.

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

(WebKit::WebResourceLoader::didRetrieveDerivedData): Deleted.

  • WebProcess/Network/WebResourceLoader.messages.in:

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.h:
8:48 AM Changeset in webkit [238932] by Truitt Savell
  • 2 edits in trunk/LayoutTests

imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=191565

Unreviewed test gardening.

  • platform/mac/TestExpectations:
7:24 AM Changeset in webkit [238931] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] HeightAndMargin::margin is always the non-collapsed margin value.
https://bugs.webkit.org/show_bug.cgi?id=192345

Reviewed by Antti Koivisto.

Rename HeightAndMargin::margin to HeightAndMargin::nonCollapsedMargin.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const):

  • layout/LayoutUnits.h:

(WebCore::Layout::HeightAndMargin::usedMarginValues const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedHeight):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin const):

7:21 AM Changeset in webkit [238930] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Add MarginCollapse::establishesBlockFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=192297

Reviewed by Antti Koivisto.

WebKit treats the document element renderer as a block formatting context root.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::establishesBlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginTopCollapsedWithParent):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginBottomCollapsedWithParent):

5:07 AM Changeset in webkit [238929] by commit-queue@webkit.org
  • 5 edits in trunk

[GStreamer] -DENABLE_VIDEO=ON -DENABLE_OPENGL=OFF still tries to build GstreamerGL
https://bugs.webkit.org/show_bug.cgi?id=191998

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-12-06
Reviewed by Philippe Normand.

Fix compilation with -DENABLE_VIDEO=ON and -DENABLE_OPENGL=OFF due to GStreamerGL.

.:

  • Source/cmake/GStreamerDependencies.cmake: "DEFINED ENABLE_OPENGL" is always false because ENABLE_OPENGL

is not a CMake variable (WEBKIT_OPTION_DEFINE macro does not define ENABLE_OPENGL variable per se, but other
variables and appends it to a list).

  • Source/cmake/OptionsGTK.cmake: GStreamerDefinitions.cmake was included twice by mistake. Second should be GStreamerDependencies.cmake.

Source/WebCore:

No new tests required. Only fixing the build with certain flags.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged): add required #if ENABLE(WEBGL).

4:40 AM Changeset in webkit [238928] by commit-queue@webkit.org
  • 6 edits in trunk

REGRESSION(r231043): [GTK] Undefined references to WebCore::LayerRepresentation::* with -DENABLE_OPENGL=OFF builds
https://bugs.webkit.org/show_bug.cgi?id=191997

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-12-06
Reviewed by Philippe Normand.

.:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF

  • Source/cmake/OptionsGTK.cmake: make ENABLE_ASYNC_SCROLLING depend on ENABLE_OPENGL

Source/WebCore:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF.

No new tests required. Only fixing build.

  • platform/gtk/PlatformWheelEventGtk.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent): add required #if ENABLE(ASYNC_SCROLLING)

Source/WebKit:

Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF.

  • Shared/WebEventConversion.cpp:

(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent): add required #if ENABLE(ASYNC_SCROLLING)

Dec 5, 2018:

10:12 PM Changeset in webkit [238927] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION(PSON): Process swapping code doesn't set DisplayID in WebContent process
https://bugs.webkit.org/show_bug.cgi?id=192290

Reviewed by Simon Fraser.

Fixed the bug by updating the DisplayID upon attaching to a WebContent process
after a process swap as well as after the previous WebContent process had crashed.

Unfortunately no new tests since WebKitTestRunner / DumpRenderTree should use 0 as DisplayID
as they have an off-screen NSWindow. The issue that this results in no fallback for
the animation timer is tracked by webkit.org/b/192448.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::didRelaunchProcess):

8:45 PM Changeset in webkit [238926] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 12.0.2

Added a tag for Safari 12.0.2.

8:45 PM Changeset in webkit [238925] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 12.1.1

Added a tag for iOS 12.1.1.

8:45 PM Changeset in webkit [238924] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 71

Added a tag for Safari Technology Preview release 71.

8:34 PM Changeset in webkit [238923] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

speculationFromCell() should speculate non-Identifier strings as SpecString instead of SpecStringVar.
https://bugs.webkit.org/show_bug.cgi?id=192441
<rdar://problem/46480355>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-192441.js: Added.

Source/JavaScriptCore:

This is because a regular String (non-Identifier) can be converted into an
Identifier. During DFG/FTL compilation, AbstractValue::checkConsistency() may
expect a value to be of type SpecStringVar, but the mutator thread may have
converted the string into an Identifier. This creates a race where
AbstractValue::checkConsistency() may fail because it sees a SpecStringIdent when
it expects the a SpecStringVar.

The fix is to speculate non-Identifier strings as type SpecString which allows it
to be SpecStringVar or SpecStringIndent.

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromCell):

7:46 PM Changeset in webkit [238922] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Remove a document entry from NetworkMDNSRegister::m_services when document goes away
https://bugs.webkit.org/show_bug.cgi?id=192429

Reviewed by Eric Carlson.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::unregisterMDNSNames):
We should remove the entry to limit the size of the map.

7:09 PM Changeset in webkit [238921] by Wenson Hsieh
  • 11 edits
    4 moves in trunk/Tools

[Cocoa] Share ClassMethodSwizzler and InstanceMethodSwizzler between TestWebKitAPI and WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=192437

Reviewed by Tim Horton.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • TestRunnerShared/cocoa/ClassMethodSwizzler.h: Renamed from Tools/TestWebKitAPI/ClassMethodSwizzler.h.
  • TestRunnerShared/cocoa/ClassMethodSwizzler.mm: Renamed from Tools/TestWebKitAPI/ClassMethodSwizzler.mm.

(ClassMethodSwizzler::ClassMethodSwizzler):
(ClassMethodSwizzler::~ClassMethodSwizzler):

  • TestRunnerShared/cocoa/InstanceMethodSwizzler.h: Renamed from Tools/TestWebKitAPI/cocoa/InstanceMethodSwizzler.h.
  • TestRunnerShared/cocoa/InstanceMethodSwizzler.mm: Renamed from Tools/TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm.

(InstanceMethodSwizzler::InstanceMethodSwizzler):
(InstanceMethodSwizzler::~InstanceMethodSwizzler):

Move these swizzling helper classes into TestRunnerShared.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageClear.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(safeBrowsingView):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDefaultNavigationDelegate.mm:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView initWithFrame:configuration:addToWindow:]):

Remove namespacing around ClassMethodSwizzler and InstanceMethodSwizzler in a few API tests.

  • TestWebKitAPI/mac/TestFontOptions.mm:
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::ClassMethodSwizzler::ClassMethodSwizzler): Deleted.
(WTR::ClassMethodSwizzler::~ClassMethodSwizzler): Deleted.

Remove this duplicate implementation of ClassMethodSwizzler in WebKitTestRunner.

7:02 PM Changeset in webkit [238920] by aboya@igalia.com
  • 10 edits in trunk/LayoutTests

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

  • platform/gtk/TestExpectations:
  • platform/gtk/editing/deleting/delete-emoji-1-expected.txt:
  • platform/gtk/editing/deleting/delete-emoji-expected.txt:
  • platform/wpe/animations/lineheight-animation-expected.txt:
  • platform/wpe/animations/simultaneous-start-transform-expected.txt:
  • platform/wpe/animations/width-using-ems-expected.txt:
  • platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt:
  • platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
  • platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt:
6:28 PM Changeset in webkit [238919] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

[Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=192061

Reviewed by Dewei Zhu.

Part 1.

Add some loggings to determine possible causes for the flakiness.

  • UIProcess/WebAuthentication/Cocoa/HidService.mm:

(WebKit::HidService::continueAddDeviceAfterGetInfo):

  • UIProcess/WebAuthentication/Mock/MockHidService.cpp:

(WebKit::MockHidService::platformStartDiscovery):

4:26 PM Changeset in webkit [238918] by Alan Coon
  • 2 edits in branches/safari-606-branch/Source/WebCore

Apply patch. rdar://problem/46085280

4:13 PM Changeset in webkit [238917] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

REGRESSION: Layout Test http/tests/security/cross-origin-css-resource-timing.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=192408
<rdar://problem/46492201>

Reviewed by Ryosuke Niwa.

Some of the tests are loading the same subresource and check for resource timing.
We need to clear internal caches to have stable results.

  • http/tests/security/clean-origin-css-exposed-resource-timing.html:
  • http/tests/security/cross-origin-clean-css-resource-timing.html:
  • http/tests/security/cross-origin-css-resource-timing.html:
3:51 PM Changeset in webkit [238916] by Alan Coon
  • 16 edits
    1 copy
    7 adds in branches/safari-606-branch

Apply patch. rdar://problem/45997392

3:51 PM Changeset in webkit [238915] by Alan Coon
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r238799. rdar://problem/46432866

[Cocoa] Check descriptor types in createMessageDecoder
https://bugs.webkit.org/show_bug.cgi?id=192302

Reviewed by Chris Dumez.

Not sure how to construct a test case for Connection, so not adding any
tests at this time.

  • Platform/IPC/mac/ConnectionMac.mm: (IPC::createMessageDecoder): Check descriptor types and return nullptr if they are incorrect. Retained the assertions to help with debugging. (IPC::Connection::receiveSourceEventHandler): Ignore the message if no decoder is created, which means the message is invalid.

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

3:50 PM Changeset in webkit [238914] by Matt Baker
  • 5 edits in trunk

Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false
https://bugs.webkit.org/show_bug.cgi?id=192390
<rdar://problem/46473624>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Controllers/SelectionController.js:

(WI.SelectionController.prototype.selectItem):

LayoutTests:

  • inspector/table/table-selection-expected.txt:
  • inspector/table/table-selection.html:

Drive-by fix: removed allowsMultipleSelection check from test case
Table.SelectMultipleRows.ExtendSelection since it is tested in Table.AllowsMultipleSelection.

3:25 PM Changeset in webkit [238913] by don.olmstead@sony.com
  • 8 edits
    1 copy
    19 adds in trunk

[PlayStation] Enable WebCore
https://bugs.webkit.org/show_bug.cgi?id=192384

Reviewed by Brent Fulgham.

.:

Adds CMake options for building WebCore on PlayStation.

  • Source/cmake/FindLibPSL.cmake:
  • Source/cmake/FindNghttp2.cmake: Copied from Source/cmake/FindWPE.cmake.
  • Source/cmake/FindPixman.cmake: Added.
  • Source/cmake/FindWPE.cmake:
  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

Implements WebCore for the PlayStation platform.

  • PlatformPlayStation.cmake: Added.
  • loader/cache/CachedResourceLoader.cpp:
  • platform/generic/KeyedDecoderGeneric.cpp: Added.

(WebCore::KeyedDecoder::decoder):
(WebCore::KeyedDecoderGeneric::KeyedDecoderGeneric):
(WebCore::KeyedDecoderGeneric::~KeyedDecoderGeneric):
(WebCore::KeyedDecoderGeneric::decodeBytes):
(WebCore::KeyedDecoderGeneric::decodeBool):
(WebCore::KeyedDecoderGeneric::decodeUInt32):
(WebCore::KeyedDecoderGeneric::decodeUInt64):
(WebCore::KeyedDecoderGeneric::decodeInt32):
(WebCore::KeyedDecoderGeneric::decodeInt64):
(WebCore::KeyedDecoderGeneric::decodeFloat):
(WebCore::KeyedDecoderGeneric::decodeDouble):
(WebCore::KeyedDecoderGeneric::decodeString):
(WebCore::KeyedDecoderGeneric::beginObject):
(WebCore::KeyedDecoderGeneric::endObject):
(WebCore::KeyedDecoderGeneric::beginArray):
(WebCore::KeyedDecoderGeneric::beginArrayElement):
(WebCore::KeyedDecoderGeneric::endArrayElement):
(WebCore::KeyedDecoderGeneric::endArray):

  • platform/generic/KeyedDecoderGeneric.h: Added.
  • platform/generic/KeyedEncoderGeneric.cpp: Added.

(WebCore::KeyedEncoder::encoder):
(WebCore::KeyedEncoderGeneric::KeyedEncoderGeneric):
(WebCore::KeyedEncoderGeneric::~KeyedEncoderGeneric):
(WebCore::KeyedEncoderGeneric::encodeBytes):
(WebCore::KeyedEncoderGeneric::encodeBool):
(WebCore::KeyedEncoderGeneric::encodeUInt32):
(WebCore::KeyedEncoderGeneric::encodeUInt64):
(WebCore::KeyedEncoderGeneric::encodeInt32):
(WebCore::KeyedEncoderGeneric::encodeInt64):
(WebCore::KeyedEncoderGeneric::encodeFloat):
(WebCore::KeyedEncoderGeneric::encodeDouble):
(WebCore::KeyedEncoderGeneric::encodeString):
(WebCore::KeyedEncoderGeneric::beginObject):
(WebCore::KeyedEncoderGeneric::endObject):
(WebCore::KeyedEncoderGeneric::beginArray):
(WebCore::KeyedEncoderGeneric::beginArrayElement):
(WebCore::KeyedEncoderGeneric::endArrayElement):
(WebCore::KeyedEncoderGeneric::endArray):
(WebCore::KeyedEncoderGeneric::finishEncoding):

  • platform/generic/KeyedEncoderGeneric.h: Added.
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::defaultCookieJarPath):

  • platform/network/playstation/CurlSSLHandlePlayStation.cpp: Added.

(WebCore::getCACertPathEnv):
(WebCore::CurlSSLHandle::platformInitialize):

  • platform/network/playstation/NetworkStateNotifierPlayStation.cpp: Added.

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):
(WebCore::NetworkStateNotifier::startObserving):

  • platform/playstation/EventLoopPlayStation.cpp: Added.

(WebCore::EventLoop::cycle):

  • platform/playstation/MIMETypeRegistryPlayStation.cpp: Added.

(WebCore::MIMETypeRegistry::getMIMETypeForExtension):
(WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):

  • platform/playstation/PlatformScreenPlayStation.cpp: Added.

(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenSupportsExtendedColor):

  • platform/playstation/ScrollbarThemePlayStation.cpp: Added.

(WebCore::ScrollbarTheme::nativeTheme):
(WebCore::ScrollbarThemePlayStation::scrollbarThickness):
(WebCore::ScrollbarThemePlayStation::hasButtons):
(WebCore::ScrollbarThemePlayStation::hasThumb):
(WebCore::ScrollbarThemePlayStation::backButtonRect):
(WebCore::ScrollbarThemePlayStation::forwardButtonRect):
(WebCore::ScrollbarThemePlayStation::trackRect):
(WebCore::ScrollbarThemePlayStation::paintTrackBackground):
(WebCore::ScrollbarThemePlayStation::paintThumb):

  • platform/playstation/ScrollbarThemePlayStation.h: Added.
  • platform/playstation/UserAgentPlayStation.cpp: Added.

(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):

  • rendering/RenderThemePlayStation.cpp: Added.

(WebCore::RenderTheme::singleton):
(WebCore::RenderThemePlayStation::updateCachedSystemFontDescription const):

  • rendering/RenderThemePlayStation.h: Added.

Source/WebCore/PAL:

Implements PAL for the PlayStation platform.

  • pal/PlatformPlayStation.cmake: Added.
3:06 PM Changeset in webkit [238912] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Null pointer crash in DocumentOrderedMap::getElementById via FormAssociatedElement::findAssociatedForm
https://bugs.webkit.org/show_bug.cgi?id=192392

Reviewed by Dean Jackson.

Source/WebCore:

The crash was caused by FormAssociatedElement::findAssociatedForm invoking DocumentOrderedMap::getElementById
and de-referencing nullptr Attribute* via IdTargetObserver before Element::attributeChanged had updated
ElementData::m_idForStyleResolution.

Fixed it by updating m_idForStyleResolution before invoking IdTargetObservers.

Test: fast/dom/remove-id-form-associated-elemet-id-observer-crash.html

  • dom/Element.cpp:

(WebCore::Element::attributeChanged): Fixed the bug.

LayoutTests:

Added a regression test.

  • fast/dom/remove-id-form-associated-elemet-id-observer-crash-expected.txt: Added.
  • fast/dom/remove-id-form-associated-elemet-id-observer-crash.html: Added.
2:44 PM Changeset in webkit [238911] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Simplify logic inside WebPageProxy::continueNavigationInNewProcess()
https://bugs.webkit.org/show_bug.cgi?id=192404

Reviewed by Alex Christensen.

Simplify get the item state from the current back/forward list item, instead of
relying on WebBackForwardList::filteredItemStates().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):

2:34 PM Changeset in webkit [238910] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Clean-up apple_additions
https://bugs.webkit.org/show_bug.cgi?id=192413
<rdar://problem/46493491>

Reviewed by Lucas Forschler.

After the addition of watchOS, some functions which were originally iOS specific were
generalized to include all devices.

  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort._driver_class): Replace iOS specific call with generalized device call.
(IOSDevicePort.path_to_crash_logs): Ditto.
(IOSDevicePort.clean_up_test_run): Ditto.

2:32 PM Changeset in webkit [238909] by youenn@apple.com
  • 13 edits in trunk/Source

Enable the possibility to do video capture in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=192394

Reviewed by Eric Carlson.

Source/WebCore:

Create IOSurface-backed sample buffers so that we can easily send them through IPC.
Manually tested.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):

Source/WebKit:

Add two web preferences to toggle audio/video capture in UIProcess or WebProcess.
Add mechanism for video capture that was not implemented yet.

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

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCaptureAudioInUIProcessEnabled):
(WKPreferencesGetCaptureAudioInUIProcessEnabled):
(WKPreferencesSetCaptureVideoInUIProcessEnabled):
(WKPreferencesGetCaptureVideoInUIProcessEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::createWebPage):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::initialize):

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

Update ServiceWorkerContainer::getRegistration lambdas
https://bugs.webkit.org/show_bug.cgi?id=192376

Reviewed by Chris Dumez.

There is no need to pass 'this' in lambdas as the last lambda
takes a ScriptExecutionContext&.
No change of behavior.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):

1:15 PM Changeset in webkit [238907] by youenn@apple.com
  • 7 edits in trunk/LayoutTests

[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189727
<rdar://problem/44584993>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Make the test more deterministic and output more test to ease debugging.

  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html:
  • web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html:

LayoutTests:

1:02 PM Changeset in webkit [238906] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Ignore case when comparing device types
https://bugs.webkit.org/show_bug.cgi?id=192409
<rdar://problem/46491558>

Reviewed by Lucas Forschler.

This allows DeviceTypes constructed with lowercase strings to correctly compare
against DeviceTypes coming from the simulator runtime.

  • Scripts/webkitpy/xcode/device_type.py:

(DeviceType.eq):
(DeviceType.contains):

  • Scripts/webkitpy/xcode/device_type_unittest.py:

(DeviceTypeTest):
(DeviceTypeTest.test_comparsion_lower_case):

12:58 PM Changeset in webkit [238905] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::cachedDocumentWrapper()
https://bugs.webkit.org/show_bug.cgi?id=192421
<rdar://problem/37114163>

Reviewed by Alex Christensen.

Fix potential null defererence of the value returned by toJSDOMWindow(). For example,
if the window is frameless, it would return null.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::cachedDocumentWrapper):

12:21 PM Changeset in webkit [238904] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[MediaStream] Cleanup up Mac screen capture class
https://bugs.webkit.org/show_bug.cgi?id=192379
<rdar://problem/46465458>

Reviewed by Youenn Fablet.

No new tests, tested manually.

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::captureDevices): Initialize Screen devices first so
they are first in the list of devices.

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

(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Cleanup. Always capture at the
native screen size to work around a bug.
(WebCore::ScreenDisplayCaptureSourceMac::settingsDidChange): Deleted.

11:30 AM Changeset in webkit [238903] by Jonathan Bedard
  • 13 edits in trunk/Tools

webkitpy: Sort tests by associated device type
https://bugs.webkit.org/show_bug.cgi?id=192161
<rdar://problem/46345392>

Reviewed by Lucas Forschler.

Sort tests by device type and make an effort to run each specified device type.
Do not run tests if their specified device is not available.

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

(PlatformInfo.is_watchos): Add watchos bits to platform info.
(PlatformInfo._determine_os_name): Ditto.

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

(Manager.run): Assign each test a device type. Then, generate a list of
device types to sequentially iterate through. Note that a test will run
on the first device which matches.
(Manager._end_test_run): Handle the case where no devices are available and no
tests are run.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(_set_up_derived_options): Manage child processes in manager.

  • Scripts/webkitpy/port/base.py:

(Port):
(Port.default_child_processes): Accept additional arguments.
(Port.max_child_processes): Add upper limit for number of child processes.

  • Scripts/webkitpy/port/device_port.py:

(DevicePort):
(DevicePort._device_type_with_version): Adds version to the DeviceType.
(DevicePort.default_child_processes): Allows default_child_processes to be
attached to a device type.
(DevicePort.max_child_processes): Add upper limit to the maximum number of child processes.
(DevicePort.setup_test_run): Use _device_type_with_version.

  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort):
(IOSDevicePort.default_child_processes): Deleted.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort.default_child_processes): Deleted.
(IOSSimulatorPort.check_sys_deps): Deleted.

  • Scripts/webkitpy/port/mac.py:

(MacPort.default_child_processes): Accept additional arguments.

  • Scripts/webkitpy/port/test.py:
  • Scripts/webkitpy/port/watch_device.py:

(WatchDevicePort):
(WatchDevicePort.default_child_processes): Deleted.

  • Scripts/webkitpy/port/watch_simulator.py:

(WatchSimulatorPort.default_child_processes): Deleted.
(WatchSimulatorPort.check_sys_deps): Deleted.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager):
(SimulatedDeviceManager.device_count_for_type): Count the number of devices
available for a specific device type.

11:21 AM Changeset in webkit [238902] by commit-queue@webkit.org
  • 17 edits
    9 deletes in trunk

Unreviewed, rolling out r238844, r238846, and r238874.
https://bugs.webkit.org/show_bug.cgi?id=192414

The layout tests added with this change are flaky. (Requested
by ryanhaddad on #webkit).

Reverted changesets:

"Implement non-timeslice mode encoding for MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=192069
https://trac.webkit.org/changeset/238844

"Fix the build"
https://trac.webkit.org/changeset/238846

"Fix MediaRecorder flaky tests"
https://bugs.webkit.org/show_bug.cgi?id=192371
https://trac.webkit.org/changeset/238874

11:19 AM Changeset in webkit [238901] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, add myself to some watch lists.

  • Scripts/webkitpy/common/config/watchlist:
10:42 AM Changeset in webkit [238900] by achristensen@apple.com
  • 24 edits
    3 adds in trunk/Source/WebKit

Make WebsiteDataStoreConfiguration a proper API object
https://bugs.webkit.org/show_bug.cgi?id=192380

Reviewed by Youenn Fablet.

In the immediate future I'll need to add things to _WKWebsiteDataStoreConfiguration.
Instead of making ivars, setting them, copying them to a local object, make this a wrapper of an API::Object
like all our other ObjC API objects are.

  • Shared/API/APIObject.h:

(API::Object::wrapper const):
(API::Object::wrapper): Deleted.

  • Shared/Cocoa/APIObject.mm:

(API::Object::ref const):
(API::Object::deref const):
(API::Object::newObject):
(API::Object::ref): Deleted.
(API::Object::deref): Deleted.

  • Sources.txt:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::createLegacy):
(API::WebsiteDataStore::WebsiteDataStore):
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration _webStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _indexedDBDatabaseDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setIndexedDBDatabaseDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _webSQLDatabaseDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setWebSQLDatabaseDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _cookieStorageFile]):
(-[_WKWebsiteDataStoreConfiguration _setCookieStorageFile:]):
(-[_WKWebsiteDataStoreConfiguration _resourceLoadStatisticsDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setResourceLoadStatisticsDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _cacheStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _serviceWorkerRegistrationDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]):
(-[_WKWebsiteDataStoreConfiguration setSourceApplicationBundleIdentifier:]):
(-[_WKWebsiteDataStoreConfiguration sourceApplicationBundleIdentifier]):
(-[_WKWebsiteDataStoreConfiguration sourceApplicationSecondaryIdentifier]):
(-[_WKWebsiteDataStoreConfiguration setSourceApplicationSecondaryIdentifier:]):
(-[_WKWebsiteDataStoreConfiguration _apiObject]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfigurationInternal.h: Added.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::create):
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::Configuration::Configuration): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::cacheStoragePerOriginQuota const):
(WebKit::WebsiteDataStore::setCacheStoragePerOriginQuota):
(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::setCacheStorageDirectory):
(WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const):
(WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStore::resolvedApplicationCacheDirectory const):
(WebKit::WebsiteDataStore::resolvedMediaCacheDirectory const):
(WebKit::WebsiteDataStore::resolvedMediaKeysDirectory const):
(WebKit::WebsiteDataStore::resolvedDatabaseDirectory const):
(WebKit::WebsiteDataStore::resolvedJavaScriptConfigurationDirectory const):
(WebKit::WebsiteDataStore::resolvedCookieStorageFile const):
(WebKit::WebsiteDataStore::resolvedIndexedDatabaseDirectory const):
(WebKit::WebsiteDataStore::resolvedServiceWorkerRegistrationDirectory const):
(WebKit::WebsiteDataStore::resolvedResourceLoadStatisticsDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: Added.

(WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: Added.

(WebKit::WebsiteDataStoreConfiguration::create):
(WebKit::WebsiteDataStoreConfiguration::cacheStoragePerOriginQuota):
(WebKit::WebsiteDataStoreConfiguration::setCacheStoragePerOriginQuota):
(WebKit::WebsiteDataStoreConfiguration::applicationCacheDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setApplicationCacheDirectory):
(WebKit::WebsiteDataStoreConfiguration::mediaCacheDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setMediaCacheDirectory):
(WebKit::WebsiteDataStoreConfiguration::mediaKeysStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setMediaKeysStorageDirectory):
(WebKit::WebsiteDataStoreConfiguration::javaScriptConfigurationDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setJavaScriptConfigurationDirectory):
(WebKit::WebsiteDataStoreConfiguration::webStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setWebStorageDirectory):
(WebKit::WebsiteDataStoreConfiguration::indexedDBDatabaseDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setIndexedDBDatabaseDirectory):
(WebKit::WebsiteDataStoreConfiguration::webSQLDatabaseDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setWebSQLDatabaseDirectory):
(WebKit::WebsiteDataStoreConfiguration::localStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setLocalStorageDirectory):
(WebKit::WebsiteDataStoreConfiguration::cookieStorageFile const):
(WebKit::WebsiteDataStoreConfiguration::setCookieStorageFile):
(WebKit::WebsiteDataStoreConfiguration::resourceLoadStatisticsDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setResourceLoadStatisticsDirectory):
(WebKit::WebsiteDataStoreConfiguration::networkCacheDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setNetworkCacheDirectory):
(WebKit::WebsiteDataStoreConfiguration::cacheStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setCacheStorageDirectory):
(WebKit::WebsiteDataStoreConfiguration::applicationCacheFlatFileSubdirectoryName const):
(WebKit::WebsiteDataStoreConfiguration::setApplicationCacheFlatFileSubdirectoryName):
(WebKit::WebsiteDataStoreConfiguration::serviceWorkerRegistrationDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setServiceWorkerRegistrationDirectory):
(WebKit::WebsiteDataStoreConfiguration::sourceApplicationBundleIdentifier const):
(WebKit::WebsiteDataStoreConfiguration::setSourceApplicationBundleIdentifier):
(WebKit::WebsiteDataStoreConfiguration::sourceApplicationSecondaryIdentifier const):
(WebKit::WebsiteDataStoreConfiguration::setSourceApplicationSecondaryIdentifier):

  • WebKit.xcodeproj/project.pbxproj:
10:33 AM Changeset in webkit [238899] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/tests/misc/resource-timing-resolution.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181957

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:20 AM Changeset in webkit [238898] by Simon Fraser
  • 10 edits in trunk/Source/WebCore

Minor refactoring of the scrolling code
https://bugs.webkit.org/show_bug.cgi?id=192398

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-05
Reviewed by Simon Fraser.

Based on an earlier patch by Simon Fraser.

This patch performs some minor refactoring of the scrolling code:

  • Rename ScrollingCoordinator::uniqueScrollLayerID() to uniqueScrollingNodeID() since it is really a node id.
  • Inline ScrollingStateTree::setRootStateNode() so we only need to forward declare ScrollingStateFrameScrollingNode in headers.
  • Pass argument to ScrollingStateTree::addNode() as a reference rather than a pointer.
  • Initialize ScrollingStateTree::m_changedProperties and ScrollingStateTree::m_parent in the header file.
  • Remove obsolete comment about ScrollingCoordinatorMac.

No new tests, behavior unchanged.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::uniqueScrollingNodeID):
(WebCore::ScrollingCoordinator::uniqueScrollLayerID): Deleted.

  • page/scrolling/ScrollingCoordinator.h:
  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::setRootStateNode):
(WebCore::ScrollingStateTree::addNode):

  • page/scrolling/ScrollingStateTree.h:

(WebCore::ScrollingStateTree::setRootStateNode): Deleted.

  • page/scrolling/ScrollingTree.cpp:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachScrollingNode):

10:14 AM Changeset in webkit [238897] by Alan Coon
  • 7 edits in tags/Safari-607.1.16.1/Source

Versioning.

10:12 AM Changeset in webkit [238896] by Alan Coon
  • 4 edits in tags/Safari-607.1.16.1/Source/WebKit

Cherry-pick r238818. rdar://problem/45928708

Swipe snapshot stays up too long swiping around on apple.com (waiting for first paint)
https://bugs.webkit.org/show_bug.cgi?id=192319
<rdar://problem/45928708>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/ViewGestureController.cpp: (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame):
  • UIProcess/Cocoa/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::endSwipeGesture): In r236966, I reverted slightly too much of r232416. We still need to defer requesting a presentation update callback until after the provisional load starts. Otherwise, we could get the callback while we're in the 'paused' state, and drop it on the floor. That would then mean that we time out instead of promptly removing the snapshot.

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

10:03 AM Changeset in webkit [238895] by Alan Coon
  • 1 copy in tags/Safari-607.1.16.1

New tag.

9:51 AM Changeset in webkit [238894] by Wenson Hsieh
  • 17 edits in trunk/Source

Turn WritingDirection into an enum class
https://bugs.webkit.org/show_bug.cgi?id=192401
Work towards <rdar://problem/42075638>

Reviewed by Dan Bernstein.

Change WritingDirection from an enum to an enum class. No change in behavior.

Source/WebCore:

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
(WebCore::ApplyStyleCommand::applyInlineStyle):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::textDirection const):
(WebCore::EditingStyle::textDirectionForSelection):

  • editing/Editor.cpp:

(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):

  • editing/EditorCommand.cpp:

(WebCore::stateTextWritingDirectionLeftToRight):
(WebCore::stateTextWritingDirectionNatural):
(WebCore::stateTextWritingDirectionRightToLeft):

  • editing/WritingDirection.h:

Additionally wrap this enum in namespace WebCore, and update the copyright year.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • testing/Internals.cpp:

(WebCore::Internals::setBaseWritingDirection):

Source/WebKit:

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::setTextDirection):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame selectionBaseWritingDirection]):
(-[WebFrame setBaseWritingDirection:]):

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(-[WebHTMLView toggleBaseWritingDirection:]):
(-[WebHTMLView changeBaseWritingDirection:]):
(-[WebHTMLView _changeBaseWritingDirectionTo:]):

Source/WebKitLegacy/win:

  • WebFrame.cpp:

(WebFrame::setTextDirection):

8:05 AM Changeset in webkit [238893] by commit-queue@webkit.org
  • 2 edits
    5 adds in trunk/LayoutTests/imported/w3c

Import css overscroll behavior WPT test
https://bugs.webkit.org/show_bug.cgi?id=192397

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-05
Reviewed by Manuel Rego Casasnovas.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-overscroll-behavior/META.yml: Added.
  • web-platform-tests/css/css-overscroll-behavior/inheritance-expected.txt: Added.
  • web-platform-tests/css/css-overscroll-behavior/inheritance.html: Added.
  • web-platform-tests/css/css-overscroll-behavior/w3c-import.log: Added.
6:56 AM Changeset in webkit [238892] by aboya@igalia.com
  • 13 edits
    5 adds in trunk

[MSE][GStreamer] Remove the AppendPipeline state machine
https://bugs.webkit.org/show_bug.cgi?id=192204

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Added a test checking that initialization segments with invalid codec
identifiers are flagged as errors.

  • web-platform-tests/media-source/mediasource-invalid-codec-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-invalid-codec.html: Added.
  • web-platform-tests/media-source/mp4/invalid-codec.mp4: Added.
  • web-platform-tests/media-source/webm/invalid-codec.webm: Added.

Source/WebCore:

This patch tries to reduce the complexity of the AppendPipeline by
removing the appendState state machine and cleaning all the
conditional code around it that is not necessary anymore.

For the most part the behavior is the same, but some edge cases have
been improved in the process:

Demuxing errors now result in the append being flagged as
ParsingFailed and the error being propagated to the application. This
fixes media/media-source/media-source-error-crash.html (or at least
gets it up to date with cross platform expectations).

AbortableTaskQueue now allows the task handler to perform an abort
safely. This is used in the GstBus error message sync handler, since
it needs to ask the MainThread to raise a parse error, which will in
turn abort. An API test has been added for this new functionality.
Also, code has been added to the API tests to ensure the correct
destruction of the response object, especially in this case.

The code handling invalid track codecs has been made clearer by also
explicitly raising a parse error, but it should not expose behavior
differences for the application. A test has been added for this
behavior: web-platform-tests/media-source/mediasource-invalid-codec.html

The reporting of EOS events have been made more rigorous. EOS is only
expected after a demuxing error, otherwise it's a g_critical.

AppendPipeline::abort() has been renamed to
AppendPipeline::resetParserState() to honor the fact that it's not
only called when the user calls abort() and match better the names
used in the spec.

Test: imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec.html

  • platform/AbortableTaskQueue.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::assertedElementSetState):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::handleErrorSyncMessage):
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::resetParserState):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromStreamingThread):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::AppendPipeline::dumpAppendState): Deleted.
(WebCore::AppendPipeline::demuxerNoMorePads): Deleted.
(WebCore::AppendPipeline::setAppendState): Deleted.
(WebCore::AppendPipeline::appsinkEOS): Deleted.
(WebCore::AppendPipeline::resetPipeline): Deleted.
(WebCore::AppendPipeline::abort): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

(WebCore::AppendPipeline::appendState): Deleted.

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

(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):

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

(WebCore::SourceBufferPrivateGStreamer::appendParsingFailed):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:

Tools:

Updated AbortableTaskQueue tests:

Added test: AbortedBySyncTaskHandler.

Renamed test: AbortDuringSyncTask -> AbortBeforeSyncTaskRun (in
order to avoid confusion with the new test).

Added checks for the correct destruction of response objects.

  • TestWebKitAPI/Tests/WebCore/AbortableTaskQueue.cpp:

(TestWebKitAPI::FancyResponse::FancyResponse):
(TestWebKitAPI::FancyResponse::~FancyResponse):
(TestWebKitAPI::TEST):

LayoutTests:

Removed timeout expectations for
media/media-source/media-source-error-crash.html

Added expectations for mediasource-invalid-codec.html for Mac, where
WebM is not supported.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-invalid-codec-expected.txt: Added.
3:10 AM Changeset in webkit [238891] by commit-queue@webkit.org
  • 9 edits
    1 delete in trunk

[Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html)
https://bugs.webkit.org/show_bug.cgi?id=114965

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-05
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Update test expectations.

  • web-platform-tests/fetch/api/redirect/redirect-method-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt:

Source/WebCore:

HEAD requests should not be changed to GET after 303 redirects, see [1].
This was fixed earlier for GTK [2].

Behavior matches Firefox and Chrome.

[1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#section-7.4
[2] https://bugs.webkit.org/show_bug.cgi?id=110127

Tests: web-platform-tests/fetch/api/redirect/redirect-method.html

web-platform-tests/fetch/api/redirect/redirect-method-worker.html
http/tests/xmlhttprequest/head-redirection.html

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::willSendRequest):

Source/WebKit:

HEAD requests should not be changed to GET after 303 redirects, see [1].
This was fixed earlier for GTK [2].

Behavior matches Firefox and Chrome.

[1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#section-7.4
[2] https://bugs.webkit.org/show_bug.cgi?id=110127

Tests: web-platform-tests/fetch/api/redirect/redirect-method.html

web-platform-tests/fetch/api/redirect/redirect-method-worker.html
http/tests/xmlhttprequest/head-redirection.html

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

LayoutTests:

Update these since we now expect to pass head-redirection.html here.

  • platform/ios/TestExpectations:
  • platform/mac/http/tests/xmlhttprequest/head-redirection-expected.txt: Removed.
1:26 AM Changeset in webkit [238890] by commit-queue@webkit.org
  • 5 edits in trunk

Align with Fetch on data: URLs
https://bugs.webkit.org/show_bug.cgi?id=182325

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-05
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Update improved test expectations.

  • web-platform-tests/fetch/api/basic/scheme-data.any-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data.any.worker-expected.txt:

Source/WebCore:

Do not accept data URLs that do not contain a comma
character, as specified in the relevant specs [1, 2].

Behavior matches Firefox and Chrome.

Test: web-platform-tests/fetch/api/basic/scheme-data.any.html

[1] https://tools.ietf.org/html/rfc2397
[2] https://fetch.spec.whatwg.org/#data-url-processor

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::parseMediaType):
(WebCore::DataURLDecoder::DecodeTask::DecodeTask):
(WebCore::DataURLDecoder::DecodeTask::process):
(WebCore::DataURLDecoder::createDecodeTask):
(WebCore::DataURLDecoder::decode):

12:26 AM Changeset in webkit [238889] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-05

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Add missing header.
12:17 AM Changeset in webkit [238888] by jfernandez@igalia.com
  • 6 edits in trunk

[css-grid] Crash on debug changing the style of a positioned element
https://bugs.webkit.org/show_bug.cgi?id=191473

Reviewed by Dean Jackson and Zalan Bujtas.

Source/WebCore:

When an box becomes {out-of,in}-flow, it may be re-parented and it may become a grid
item. In that case, we must mark the RenderGrid as dirty, so that the grid items
placement logic is executed again.

Test: fast/css-grid-layout/grid-crash-out-of-flow-positioned-element.html

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::childFlowStateChangesAndAffectsParentBlock): Consider the case of a box's new parent being a grid container.

LayoutTests:

Regression test to ensure that the grid placement logic is executed
when a positioned item becomes a grid item.

  • fast/css-grid-layout/grid-crash-out-of-flow-positioned-element-expected.txt:
  • fast/css-grid-layout/grid-crash-out-of-flow-positioned-element.html:
  • TestExpectations: Remove a Skip entry, since the test doesn't crash anymore.

Dec 4, 2018:

10:52 PM Changeset in webkit [238887] by Fujii Hironori
  • 28 edits in trunk/Source/WebKit

Remove using namespace WebCore and WebKit under WebKit/Shared/API
https://bugs.webkit.org/show_bug.cgi?id=192352

Reviewed by Alex Christensen.

Removed using namespace statements, and use namespace prefix
instead.

  • Shared/API/APIURLRequest.cpp:
  • Shared/API/APIURLResponse.cpp:
  • Shared/API/c/WKArray.cpp:
  • Shared/API/c/WKCertificateInfo.cpp:
  • Shared/API/c/WKConnectionRef.cpp:
  • Shared/API/c/WKContextMenuItem.cpp:
  • Shared/API/c/WKData.cpp:
  • Shared/API/c/WKDictionary.cpp:
  • Shared/API/c/WKErrorRef.cpp:
  • Shared/API/c/WKGeometry.cpp:
  • Shared/API/c/WKImage.cpp:
  • Shared/API/c/WKMutableArray.cpp:
  • Shared/API/c/WKMutableDictionary.cpp:
  • Shared/API/c/WKNumber.cpp:
  • Shared/API/c/WKPluginInformation.cpp:
  • Shared/API/c/WKRenderLayer.cpp:
  • Shared/API/c/WKRenderObject.cpp:
  • Shared/API/c/WKSecurityOriginRef.cpp:
  • Shared/API/c/WKSerializedScriptValue.cpp:
  • Shared/API/c/WKString.cpp:
  • Shared/API/c/WKType.cpp:
  • Shared/API/c/WKURL.cpp:
  • Shared/API/c/WKURLRequest.cpp:
  • Shared/API/c/WKURLResponse.cpp:
  • Shared/API/c/WKUserContentURLPattern.cpp:
  • Shared/API/c/cairo/WKImageCairo.cpp:
  • Shared/API/c/curl/WKCertificateInfoCurl.cpp:
9:51 PM Changeset in webkit [238886] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Remove source application identifiers from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=192372

Reviewed by Brady Eidson.

The _WKWebProcessPoolConfiguration way of setting these was deprecated in http://trac.webkit.org/r235127
The replacement was adopted in <rdar://problem/46359330>
The transition process is done! Time to remove the old code.

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::globalSourceApplicationAuditTokenData): Deleted.
(WebKit::globalSourceApplicationBundleIdentifier): Deleted.
(WebKit::globalSourceApplicationSecondaryIdentifier): Deleted.
(WebKit::NetworkSessionCocoa::setSourceApplicationAuditTokenData): Deleted.
(WebKit::NetworkSessionCocoa::setSourceApplicationBundleIdentifier): Deleted.
(WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier): Deleted.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration sourceApplicationBundleIdentifier]):
(-[_WKProcessPoolConfiguration setSourceApplicationBundleIdentifier:]):
(-[_WKProcessPoolConfiguration sourceApplicationSecondaryIdentifier]):
(-[_WKProcessPoolConfiguration setSourceApplicationSecondaryIdentifier:]):

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::toPKPaymentRequest):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::configuration):

7:58 PM Changeset in webkit [238885] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Always pass scrollingGeometry to update*ScrollingNode functions
https://bugs.webkit.org/show_bug.cgi?id=192358

Patch by Frederic Wang <fwang@igalia.com> on 2018-12-04
Reviewed by Simon Fraser.

Currently, the scrollingGeometry parameter of updateOverflowScrollingNode is always used
while the one of updateFrameScrollingNode is never used. Both of them are passed as possibly
null pointers. This commit makes things more consistent by making the parameter a reference
and explicitly setting the scrollingGeometry of updateFrameScrollingNode. This will help
other efforts (such as support for macOS/iOS asynchronous scrolling of overflow nodes /
subframes or for CSS overscroll-behavior) for which new data members have to be passed to the
scrolling nodes.

No new tests, no behavior changes.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::updateFrameScrollingNode):
(WebCore::ScrollingCoordinator::updateOverflowScrollingNode):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinationForThisFrame):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

7:23 PM Changeset in webkit [238884] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

DFG's StrengthReduction phase should not reduce Construct into DirectContruct when the executable does not have constructAbility.
https://bugs.webkit.org/show_bug.cgi?id=192386
<rdar://problem/46445516>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-192386.js: Added.

Source/JavaScriptCore:

This violates an invariant documented by a RELEASE_ASSERT in operationLinkDirectCall().

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

6:18 PM Changeset in webkit [238883] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Attempt to de-flake this test by scrolling a bit more.

  • compositing/fixed-with-main-thread-scrolling.html:
5:37 PM Changeset in webkit [238882] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Add style editing debug mode
https://bugs.webkit.org/show_bug.cgi?id=192282
<rdar://problem/46399176>

Reviewed by Matt Baker.

Introduce a style editing debug mode to help to troubleshoot complex bugs in the style editor.

  • Log CSS changes;
  • Display red border for locked style declarations.
  • UserInterface/Base/Setting.js:
  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createDebugSettingsView):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor.debug-style-locked::after):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateDebugLockStatus):

5:04 PM Changeset in webkit [238881] by BJ Burg
  • 91 edits
    20 copies
    75 adds in trunk/WebDriverTests

Unreviewed. Update W3C WebDriver imported tests.
<rdar://problem/46470254>

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/error.py:
  • imported/w3c/tools/wptrunner/docs/design.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome_android.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge_webdriver.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/fennec.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorwebdriver.py: Copied from WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py.
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/runner.js: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver.js:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js:
  • imported/w3c/tools/wptrunner/wptrunner/formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/manifestexpected.py:
  • imported/w3c/tools/wptrunner/wptrunner/stability.py:
  • imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
  • imported/w3c/tools/wptrunner/wptrunner/testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_stability.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_update.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/tree.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/parser.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_parser.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/add_cookie/add.py:
  • imported/w3c/webdriver/tests/add_cookie/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/back/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/conftest.py:
  • imported/w3c/webdriver/tests/delete_all_cookies/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/delete_session/delete.py:
  • imported/w3c/webdriver/tests/element_clear/clear.py:
  • imported/w3c/webdriver/tests/element_clear/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/element_click/center_point.py: Added.
  • imported/w3c/webdriver/tests/element_click/interactability.py:
  • imported/w3c/webdriver/tests/element_click/scroll_into_view.py:
  • imported/w3c/webdriver/tests/element_click/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/element_send_keys/file_upload.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py:
  • imported/w3c/webdriver/tests/element_send_keys/send_keys.py:
  • imported/w3c/webdriver/tests/execute_async_script/execute_async.py:
  • imported/w3c/webdriver/tests/execute_script/execute.py:
  • imported/w3c/webdriver/tests/execute_script/promise.py: Added.
  • imported/w3c/webdriver/tests/find_element/find.py:
  • imported/w3c/webdriver/tests/find_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_element_from_element/find.py:
  • imported/w3c/webdriver/tests/find_element_from_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_elements/find.py:
  • imported/w3c/webdriver/tests/find_elements/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_elements_from_element/find.py:
  • imported/w3c/webdriver/tests/find_elements_from_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py.
  • imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py:
  • imported/w3c/webdriver/tests/fullscreen_window/stress.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py:
  • imported/w3c/webdriver/tests/get_active_element/get.py:
  • imported/w3c/webdriver/tests/get_active_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_current_url/get.py:
  • imported/w3c/webdriver/tests/get_element_attribute/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_attribute/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_css_value/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_css_value/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_css_value/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_rect/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_rect/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_rect/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_text/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_named_cookie/get.py:
  • imported/w3c/webdriver/tests/get_named_cookie/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_page_source/init.py: Added.
  • imported/w3c/webdriver/tests/get_page_source/source.py: Added.
  • imported/w3c/webdriver/tests/get_page_source/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_title/get.py:
  • imported/w3c/webdriver/tests/get_window_handle/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_handle/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_handle/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/init.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/enabled.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/maximize_window/maximize.py:
  • imported/w3c/webdriver/tests/maximize_window/stress.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/minimize.py:
  • imported/w3c/webdriver/tests/minimize_window/stress.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/user_prompts.py:
  • imported/w3c/webdriver/tests/navigate_to/navigate.py:
  • imported/w3c/webdriver/tests/navigate_to/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/new_session/invalid_capabilities.py:
  • imported/w3c/webdriver/tests/new_session/platform_name.py:
  • imported/w3c/webdriver/tests/new_session/response.py:
  • imported/w3c/webdriver/tests/new_session/support/create.py:
  • imported/w3c/webdriver/tests/perform_actions/init.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/conftest.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_events.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_modifiers.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_shortcuts.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_special_keys.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/none.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_contextmenu.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_dblclick.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_modifier_click.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_origin.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_pause_dblclick.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/sequence.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/init.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/keys.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/mouse.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/refine.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/test_actions_wdspec.html: Added.
  • imported/w3c/webdriver/tests/perform_actions/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/perform_actions/validity.py: Added.
  • imported/w3c/webdriver/tests/permissions/set.py: Added.
  • imported/w3c/webdriver/tests/release_actions/init.py: Added.
  • imported/w3c/webdriver/tests/release_actions/conftest.py: Added.
  • imported/w3c/webdriver/tests/release_actions/release.py: Added.
  • imported/w3c/webdriver/tests/release_actions/sequence.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/init.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/refine.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/test_actions_wdspec.html: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py:
  • imported/w3c/webdriver/tests/set_timeouts/set.py:
  • imported/w3c/webdriver/tests/set_timeouts/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/set.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/defaults.py: Added.
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/helpers.py: Added.
  • imported/w3c/webdriver/tests/support/http_request.py:
  • imported/w3c/webdriver/tests/support/image.py: Added.
  • imported/w3c/webdriver/tests/support/inline.py:
  • imported/w3c/webdriver/tests/support/sync.py: Added.
  • imported/w3c/webdriver/tests/switch_to_frame/switch.py:
  • imported/w3c/webdriver/tests/switch_to_window/switch.py:
  • imported/w3c/webdriver/tests/take_element_screenshot/init.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/screenshot.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/init.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/screenshot.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/user_prompts.py: Added.
  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/error.py:
  • imported/w3c/tools/wptrunner/docs/design.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome_android.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_safari.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge_webdriver.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/fennec.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorwebdriver.py: Copied from WebDriverTests/imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py.
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/runner.js: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver.js:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js:
  • imported/w3c/tools/wptrunner/wptrunner/formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/manifestexpected.py:
  • imported/w3c/tools/wptrunner/wptrunner/stability.py:
  • imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
  • imported/w3c/tools/wptrunner/wptrunner/testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_formatters.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_stability.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_update.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/tree.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/parser.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_parser.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/add_cookie/add.py:
  • imported/w3c/webdriver/tests/add_cookie/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/back/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/conftest.py:
  • imported/w3c/webdriver/tests/delete_all_cookies/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/delete_session/delete.py:
  • imported/w3c/webdriver/tests/element_clear/clear.py:
  • imported/w3c/webdriver/tests/element_clear/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/element_click/center_point.py: Added.
  • imported/w3c/webdriver/tests/element_click/interactability.py:
  • imported/w3c/webdriver/tests/element_click/scroll_into_view.py:
  • imported/w3c/webdriver/tests/element_click/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/element_send_keys/file_upload.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/element_send_keys/scroll_into_view.py:
  • imported/w3c/webdriver/tests/element_send_keys/send_keys.py:
  • imported/w3c/webdriver/tests/execute_async_script/execute_async.py:
  • imported/w3c/webdriver/tests/execute_script/execute.py:
  • imported/w3c/webdriver/tests/execute_script/promise.py: Added.
  • imported/w3c/webdriver/tests/find_element/find.py:
  • imported/w3c/webdriver/tests/find_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_element_from_element/find.py:
  • imported/w3c/webdriver/tests/find_element_from_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_elements/find.py:
  • imported/w3c/webdriver/tests/find_elements/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/find_elements_from_element/find.py:
  • imported/w3c/webdriver/tests/find_elements_from_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py.
  • imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py:
  • imported/w3c/webdriver/tests/fullscreen_window/stress.py: Added.
  • imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py:
  • imported/w3c/webdriver/tests/get_active_element/get.py:
  • imported/w3c/webdriver/tests/get_active_element/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_current_url/get.py:
  • imported/w3c/webdriver/tests/get_element_attribute/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_attribute/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_css_value/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_css_value/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_css_value/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_rect/init.py: Added.
  • imported/w3c/webdriver/tests/get_element_rect/get.py: Added.
  • imported/w3c/webdriver/tests/get_element_rect/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_element_text/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_named_cookie/get.py:
  • imported/w3c/webdriver/tests/get_named_cookie/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_page_source/init.py: Added.
  • imported/w3c/webdriver/tests/get_page_source/source.py: Added.
  • imported/w3c/webdriver/tests/get_page_source/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/get_title/get.py:
  • imported/w3c/webdriver/tests/get_window_handle/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_handle/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_handle/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/init.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/get.py: Added.
  • imported/w3c/webdriver/tests/get_window_handles/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/init.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/enabled.py: Added.
  • imported/w3c/webdriver/tests/is_element_enabled/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/maximize_window/maximize.py:
  • imported/w3c/webdriver/tests/maximize_window/stress.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/minimize.py:
  • imported/w3c/webdriver/tests/minimize_window/stress.py: Added.
  • imported/w3c/webdriver/tests/minimize_window/user_prompts.py:
  • imported/w3c/webdriver/tests/navigate_to/navigate.py:
  • imported/w3c/webdriver/tests/navigate_to/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/new_session/invalid_capabilities.py:
  • imported/w3c/webdriver/tests/new_session/platform_name.py:
  • imported/w3c/webdriver/tests/new_session/response.py:
  • imported/w3c/webdriver/tests/new_session/support/create.py:
  • imported/w3c/webdriver/tests/perform_actions/init.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/conftest.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_events.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_modifiers.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_shortcuts.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/key_special_keys.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/none.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_contextmenu.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_dblclick.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_modifier_click.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_origin.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/pointer_pause_dblclick.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/sequence.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/init.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/keys.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/mouse.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/refine.py: Added.
  • imported/w3c/webdriver/tests/perform_actions/support/test_actions_wdspec.html: Added.
  • imported/w3c/webdriver/tests/perform_actions/user_prompts.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/minimize_window/user_prompts.py.
  • imported/w3c/webdriver/tests/perform_actions/validity.py: Added.
  • imported/w3c/webdriver/tests/permissions/set.py: Added.
  • imported/w3c/webdriver/tests/release_actions/init.py: Added.
  • imported/w3c/webdriver/tests/release_actions/conftest.py: Added.
  • imported/w3c/webdriver/tests/release_actions/release.py: Added.
  • imported/w3c/webdriver/tests/release_actions/sequence.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/init.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/refine.py: Added.
  • imported/w3c/webdriver/tests/release_actions/support/test_actions_wdspec.html: Added.
  • imported/w3c/webdriver/tests/send_alert_text/send.py:
  • imported/w3c/webdriver/tests/set_timeouts/set.py:
  • imported/w3c/webdriver/tests/set_timeouts/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/set_window_rect/set.py:
  • imported/w3c/webdriver/tests/support/asserts.py:
  • imported/w3c/webdriver/tests/support/defaults.py: Added.
  • imported/w3c/webdriver/tests/support/fixtures.py:
  • imported/w3c/webdriver/tests/support/helpers.py: Added.
  • imported/w3c/webdriver/tests/support/http_request.py:
  • imported/w3c/webdriver/tests/support/image.py: Added.
  • imported/w3c/webdriver/tests/support/inline.py:
  • imported/w3c/webdriver/tests/support/sync.py: Added.
  • imported/w3c/webdriver/tests/switch_to_frame/switch.py:
  • imported/w3c/webdriver/tests/switch_to_window/switch.py:
  • imported/w3c/webdriver/tests/take_element_screenshot/init.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/screenshot.py: Added.
  • imported/w3c/webdriver/tests/take_element_screenshot/user_prompts.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/init.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/screenshot.py: Added.
  • imported/w3c/webdriver/tests/take_screenshot/user_prompts.py: Added.
4:30 PM Changeset in webkit [238880] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Crash in HTMLCollection::updateNamedElementCache
https://bugs.webkit.org/show_bug.cgi?id=192347

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by CollectionIndexCache's nodeAt caching the length of 1
when there are no matching elements in the subtree when the index is non-zero.

A related bug was fixed in r182125 but we were not considering the possibility
that the index given to this function might be non-zero even when there were
no matching elements.

Test: fast/dom/options-collection-zero-length-crash.html

  • dom/CollectionIndexCache.h:

(WebCore::CollectionIndexCache<Collection, Iterator>::nodeAt):

LayoutTests:

Added a regression test. We can't simply call select.options.item
to catch this crash because the generated bidning code first call length()
to check if the index is within the valid range.

  • fast/dom/options-collection-zero-length-crash-expected.txt: Added.
  • fast/dom/options-collection-zero-length-crash.html: Added.
3:48 PM Changeset in webkit [238879] by Alan Coon
  • 4 edits in tags/Safari-607.1.16/Source/WebKit

Revert r238869. rdar://problem/45928708

3:48 PM Changeset in webkit [238878] by Alan Coon
  • 8 edits in tags/Safari-607.1.16/Source

Revert r238870. rdar://problem/46456681

3:01 PM Changeset in webkit [238877] by jiewen_tan@apple.com
  • 4 edits
    1 copy
    1 add in trunk

Don't report resource timing to parent frame for history items
https://bugs.webkit.org/show_bug.cgi?id=192273
<rdar://problem/45163764>

Reviewed by Youenn Fablet.

Source/WebCore:

We should not report history items to its parent frame as those are less
interested to its parent and might not be the first navigation in the iframes.

This change aligns the behavior when a cached document is not available for the
history item with the available case as we don't report resource timing for any
cached main document.

Test: http/tests/misc/resource-timing-navigation-in-restored-iframe-2.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadDifferentDocumentItem):

LayoutTests:

  • http/tests/misc/resource-timing-navigation-in-restored-iframe-2-expected.txt: Added.
  • http/tests/misc/resource-timing-navigation-in-restored-iframe-2.html: Copied from LayoutTests/http/tests/misc/resource-timing-navigation-in-restored-iframe.html.
  • http/tests/misc/resource-timing-navigation-in-restored-iframe.html:
2:58 PM Changeset in webkit [238876] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION (r238090): position:fixed sidebar on https://www.w3.org/TR/SVG2/coords.html does not stay fixed
https://bugs.webkit.org/show_bug.cgi?id=192320
<rdar://problem/46429833>

Reviewed by Zalan Bujtas.
Source/WebCore:

Re-land r238840 with a more reliable test.

When we fall into slow scrolling mode (for example, because of background-attachment: fixed),
RenderLayerCompositor::updateCompositingLayers() needs to set the geometry dirty bit on layers
for viewport-constrained objects so we update them.

This is only necessary for page scrolling; for overflow scrolls, updateLayerPositions() already
does enough dirtying that fixed layers nested inside scrollers get updated.

Test: compositing/fixed-with-main-thread-scrolling.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):

LayoutTests:

  • compositing/fixed-with-main-thread-scrolling-expected.html: Added.
  • compositing/fixed-with-main-thread-scrolling.html: Added.
  • platform/ios/TestExpectations:
2:33 PM Changeset in webkit [238875] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189727
<rdar://problem/44584993>

Unreviewed.

  • platform/ios/TestExpectations: Update expectation to dump JS console lines in stderr.
1:40 PM Changeset in webkit [238874] by youenn@apple.com
  • 8 edits in trunk

Fix MediaRecorder flaky tests
https://bugs.webkit.org/show_bug.cgi?id=192371

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Reset to use real MediaRecorder by default.

LayoutTests:

Updated tests to make them less flaky and more debuggable.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable.html:
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:
  • http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable.html:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:57 PM Changeset in webkit [238873] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Calling getUserMedia in a link that was opened with target="_blank" does not work the second time
https://bugs.webkit.org/show_bug.cgi?id=188088
<rdar://problem/42681448>

Reviewed by Eric Carlson.

On closing a page, we need to make sure to consider that the capture is ended,
as otherwise WebPageProxy will not get noticed from WebPage, since WebPageProxy is no longer an IPC receiver.

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::endedCaptureSession):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):

12:25 PM Changeset in webkit [238872] by Justin Michaud
  • 26 edits
    2 copies
    9 moves
    5 adds in trunk

CSS Painting API should allow image values in inputProperties
https://bugs.webkit.org/show_bug.cgi?id=192200

Reviewed by Dean Jackson.

Source/WebCore:

Adds new TypedOMCSSImageValue wrapper. We rename all the existing ones so that the naming is consistent (CSSImageValue is already a thing).
Finally, we let CanvasRenderingContext2DBase render these.

Tests: fast/css-custom-paint/arguments.html

fast/css-custom-paint/image.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/CallTracerTypes.h:
  • bindings/js/JSTypedOMCSSStyleValueCustom.cpp: Renamed from Source/WebCore/bindings/js/JSCSSStyleValueCustom.cpp.

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/WebCoreBuiltinNames.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::customPropertyValue):

  • css/CSSCustomPropertyValue.cpp:

(WebCore::CSSCustomPropertyValue::equals const):
(WebCore::CSSCustomPropertyValue::customCSSText const):
(WebCore::CSSCustomPropertyValue::tokens const):

  • css/CSSCustomPropertyValue.h:
  • css/CSSPaintImageValue.cpp:

(WebCore::CSSPaintImageValue::image):

  • css/typedom/StylePropertyMapReadOnly.h:

(WebCore::StylePropertyMapReadOnly::create):
(WebCore::StylePropertyMapReadOnly::get const):
(WebCore::StylePropertyMapReadOnly::StylePropertyMapReadOnly):

  • css/typedom/StylePropertyMapReadOnly.idl:
  • css/typedom/TypedOMCSSImageValue.h: Copied from Source/WebCore/css/typedom/CSSUnitValue.h.
  • css/typedom/TypedOMCSSImageValue.idl: Copied from Source/WebCore/css/typedom/CSSStyleValue.idl.
  • css/typedom/TypedOMCSSNumericValue.h: Renamed from Source/WebCore/css/typedom/CSSNumericValue.h.
  • css/typedom/TypedOMCSSNumericValue.idl: Renamed from Source/WebCore/css/typedom/CSSNumericValue.idl.
  • css/typedom/TypedOMCSSStyleValue.h: Renamed from Source/WebCore/css/typedom/CSSStyleValue.h.

(WebCore::TypedOMCSSStyleValue::isImageValue):

  • css/typedom/TypedOMCSSStyleValue.idl: Renamed from Source/WebCore/css/typedom/CSSStyleValue.idl.
  • css/typedom/TypedOMCSSUnitValue.h: Renamed from Source/WebCore/css/typedom/CSSUnitValue.h.
  • css/typedom/TypedOMCSSUnitValue.idl: Renamed from Source/WebCore/css/typedom/CSSUnitValue.idl.
  • css/typedom/TypedOMCSSUnparsedValue.h: Renamed from Source/WebCore/css/typedom/CSSUnparsedValue.h.
  • css/typedom/TypedOMCSSUnparsedValue.idl: Renamed from Source/WebCore/css/typedom/CSSUnparsedValue.idl.
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):

  • html/ImageBitmap.h:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasFillStrokeStyles.idl:
  • html/canvas/CanvasRenderingContext.cpp:

(WebCore::CanvasRenderingContext::checkOrigin):

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

(WebCore::size):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::createPattern):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildAction):

  • page/WindowOrWorkerGlobalScope.idl:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::doCustomPaint):

LayoutTests:

  • fast/css-custom-paint/arguments-expected.html: Added.
  • fast/css-custom-paint/arguments.html: Added.
  • fast/css-custom-paint/image-expected.html: Added.
  • fast/css-custom-paint/image.html: Added.
  • fast/css-custom-paint/resources/test-image.png: Added.
12:07 PM Changeset in webkit [238871] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r238602): Elements: changing selection no longer highlights the selected node
https://bugs.webkit.org/show_bug.cgi?id=192354
<rdar://problem/46444438>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype._treeKeyDown):
(WI.TreeOutline.prototype._handleMouseDown):

12:01 PM Changeset in webkit [238870] by Alan Coon
  • 8 edits in tags/Safari-607.1.16/Source

Cherry-pick r238867. rdar://problem/46456681

Regression(r238817) PSON Page Cache API tests are failing
https://bugs.webkit.org/show_bug.cgi?id=192348

Reviewed by Alex Christensen.

Source/WebCore:

  • page/MemoryRelease.cpp: (WebCore::releaseCriticalMemory): (WebCore::releaseMemory):
  • page/MemoryRelease.h:

Source/WebKit:

Before suspending a WebProcess on iOS, we normally fake a memory pressure signal
so that the suspended process uses as little memory as possible while suspended.
Among other things, this will clear the page cache. This is an issue in the case
of process-swap on navigation because we keep suspended web processes around to
keep Page Cache functional.

To address the issue, when a WebProcess is about to get suspended, we check if
the process has any suspended WebPage (WebPage used for PSON PageCache support)
and we bypass the PageCache clearing if it does.

Our API tests did not catch this before r238817 because the NavigationState's
assertion was preventing the old WebProcesses from suspending for 3 seconds,
which was enough for those tests to complete.

  • UIProcess/SuspendedPageProxy.cpp: (WebKit::SuspendedPageProxy::SuspendedPageProxy): (WebKit::SuspendedPageProxy::didFinishLoad):
  • UIProcess/SuspendedPageProxy.h: Take a background assertion until the suspension load is complete, to make sure the suspension load has a chance to complete before the process gets suspended.
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): (WebKit::WebProcess::hasPageRequiringPageCacheWhileSuspended const): (WebKit::WebProcess::actualPrepareToSuspend):
  • WebProcess/WebProcess.h:

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

12:00 PM Changeset in webkit [238869] by Alan Coon
  • 4 edits in tags/Safari-607.1.16/Source/WebKit

Cherry-pick r238818. rdar://problem/45928708

Swipe snapshot stays up too long swiping around on apple.com (waiting for first paint)
https://bugs.webkit.org/show_bug.cgi?id=192319
<rdar://problem/45928708>

Reviewed by Simon Fraser.

  • UIProcess/Cocoa/ViewGestureController.cpp: (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame):
  • UIProcess/Cocoa/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::endSwipeGesture): In r236966, I reverted slightly too much of r232416. We still need to defer requesting a presentation update callback until after the provisional load starts. Otherwise, we could get the callback while we're in the 'paused' state, and drop it on the floor. That would then mean that we time out instead of promptly removing the snapshot.

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

11:44 AM Changeset in webkit [238868] by Chris Dumez
  • 2 edits in trunk/Tools

ProcessSwap.UseSessionCookiesAfterProcessSwapInPrivateBrowsing API test is failing
https://bugs.webkit.org/show_bug.cgi?id=192362

Reviewed by Alex Christensen.

Set the cookie policy to Accept to make sure the cookies are saved.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:44 AM Changeset in webkit [238867] by Chris Dumez
  • 8 edits in trunk/Source

Regression(r238817) PSON Page Cache API tests are failing
https://bugs.webkit.org/show_bug.cgi?id=192348

Reviewed by Alex Christensen.

Source/WebCore:

  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):
(WebCore::releaseMemory):

  • page/MemoryRelease.h:

Source/WebKit:

Before suspending a WebProcess on iOS, we normally fake a memory pressure signal
so that the suspended process uses as little memory as possible while suspended.
Among other things, this will clear the page cache. This is an issue in the case
of process-swap on navigation because we keep suspended web processes around to
keep Page Cache functional.

To address the issue, when a WebProcess is about to get suspended, we check if
the process has any suspended WebPage (WebPage used for PSON PageCache support)
and we bypass the PageCache clearing if it does.

Our API tests did not catch this before r238817 because the NavigationState's
assertion was preventing the old WebProcesses from suspending for 3 seconds,
which was enough for those tests to complete.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::didFinishLoad):

  • UIProcess/SuspendedPageProxy.h:

Take a background assertion until the suspension load is complete, to make sure
the suspension load has a chance to complete before the process gets suspended.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::hasPageRequiringPageCacheWhileSuspended const):
(WebKit::WebProcess::actualPrepareToSuspend):

  • WebProcess/WebProcess.h:
11:42 AM Changeset in webkit [238866] by Michael Catanzaro
  • 3 edits
    4 deletes in trunk/Tools

[WPE][GTK] Update GLib
https://bugs.webkit.org/show_bug.cgi?id=191222

Reviewed by Žan Doberšek.

When I try running API tests locally, they crash with:

GLib-GIO-WARNING : unknown schema extension 'd'

We need to update our old glib to support the 'd' value type, otherwise schemas that may
exist on the host using this type will cause instant crashes.

Also, switch the GLib build to use meson. This requires updating meson as well.

  • gtk/jhbuild.modules:
  • gtk/patches/glib-cast-function-type.patch: Removed.
  • gtk/patches/glib-gtester-do-not-consider-skipped-tests-as-failures.patch: Removed.
  • wpe/jhbuild.modules:
  • wpe/patches/glib-cast-function-type.patch: Removed.
  • wpe/patches/glib-revert-wakeup-changes.patch: Removed.
11:34 AM Changeset in webkit [238865] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews-app] Run BugzillaPatchFetcher periodically
https://bugs.webkit.org/show_bug.cgi?id=192241

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/init.py:
  • BuildSlaveSupport/ews-app/ews/apps.py:

(EwsConfig.ready): This method is called by Django on startup.

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

(FetchLoop): Class which invokes BugzillaPatchFetcher every 60s.

11:07 AM Changeset in webkit [238864] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r238330): Timeline auto-capture does not work after page transition
https://bugs.webkit.org/show_bug.cgi?id=192248
<rdar://problem/46390199>

Reviewed by Devin Rousso.

  • UserInterface/Base/Main.js:

(WI.transitionPageTarget):
Let the TimelineManager perform work on page transitions.

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.initializeTarget):
Initialize the autocapture state of the target.

(WI.TimelineManager.prototype.transitionPageTarget):
When transitioning pages perform a legacy (frontend based) timeline capture.

11:01 AM Changeset in webkit [238863] by Alan Coon
  • 3 edits in tags/Safari-607.1.16/Source/WebKit

Cherry-pick r238849. rdar://problem/46427844

Fix the watchOS build; stop unnecessarily linking CorePDF
https://bugs.webkit.org/show_bug.cgi?id=192356
<rdar://problem/46427844>

Reviewed by Wenson Hsieh.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/CorePDFSPI.h:

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

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

webkitpy: Support unicode in MeteredStream
https://bugs.webkit.org/show_bug.cgi?id=192260

Reviewed by Aakash Jain.

It's possible that the test runner returns unicode characters to be logged when
running layout tests.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.write): Print message without attempting to encode/decode it.

  • Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:

(RegularTest.test_unicode):

10:55 AM Changeset in webkit [238861] by Caio Lima
  • 8 edits
    4 adds in trunk

[ESNext][BigInt] Support logic operations
https://bugs.webkit.org/show_bug.cgi?id=179903

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-branch-usage.js: Added.
  • stress/big-int-logical-and.js: Added.
  • stress/big-int-logical-not.js: Added.
  • stress/big-int-logical-or.js: Added.

Source/JavaScriptCore:

We are introducing in this patch the ToBoolean support for JSBigInt.
With this change, we can implement the correct behavior of BigInt as
operand of logical opertions. During JIT genertion into DFG and FTL,
we are using JSBigInt::m_length to verify if the number is 0n or not,
following the same approach used by JSString. This is also safe in the case
of BigInt, because only 0n has m_length == 0.

We are not including BigInt speculation into Branch nodes in this
patch, but the plan is to implement it in further patches.

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::isZero const):
(JSC::JSBigInt::offsetOfLength):
(JSC::JSBigInt::toBoolean const):
(JSC::JSBigInt::isZero): Deleted.

  • runtime/JSBigInt.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::toBoolean const):
(JSC::JSCell::pureToBoolean const):

10:50 AM Changeset in webkit [238860] by Ryan Haddad
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r238838.

The layout test added with this change is failing on iOS.

Reverted changeset:

"Thick overlines and line-throughs grow in the wrong
direction"
https://bugs.webkit.org/show_bug.cgi?id=192264
https://trac.webkit.org/changeset/238838

10:17 AM Changeset in webkit [238859] by Matt Baker
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: $0 is shown for all selected elements
https://bugs.webkit.org/show_bug.cgi?id=192119
<rdar://problem/46327554>

Reviewed by Devin Rousso.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.layout):
(WI.DOMTreeContentView.prototype._domTreeSelectionDidChange):
Update the selected DOM node using the TreeOutline's selection change
event, instead of in onselect, which wasn't always called.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.onselect): Deleted.
(WI.DOMTreeElement.prototype.ondeselect): Deleted.
Eliminate onselect and ondeselect. TreeOutline clients should use
the TreeOutline.Event.SelectedDidChange event instead.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom li.last-selected > span::after):
(.tree-outline.dom:focus li.last-selected > span::after):
(.tree-outline.dom li.selected > span::after): Deleted.
(.tree-outline.dom:focus li.selected > span::after): Deleted.

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.updateSelection): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):

  • UserInterface/Views/FolderizedTreeElement.js:

(WI.FolderizedTreeElement.prototype._addTreeElement):

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
(WI.NavigationSidebarPanel.prototype._treeElementWasFiltered):
(WI.NavigationSidebarPanel):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WI.OpenResourceDialog.prototype._handleKeydownEvent):

  • UserInterface/Views/SourceCodeTreeElement.js:

(WI.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange):

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.select):
(WI.TreeElement.prototype.revealAndSelect):
(WI.TreeElement.prototype.deselect):
Remove suppressOnDeselect and rename suppressOnSelect to suppressNotification.
Now that ondeselect has been removed suppressOnDeselect is no longer
meaningful, as TreeOutline generates a single SelectedDidChange event
when the selected item changes. In the case of revealAndSelect, both
arguments had the same value.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline):
(WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
Add a unique class name to the last selected TreeElement to distinguish
it from other selected elements.

10:14 AM Changeset in webkit [238858] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: ⌘-A should select all visible nodes
https://bugs.webkit.org/show_bug.cgi?id=192120
<rdar://problem/46344435>

Reviewed by Devin Rousso.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype._treeKeyDown):
Remove an early return, allowing WI.SelectionController to handle ⌘-A
and select all items.

10:12 AM Changeset in webkit [238857] by youenn@apple.com
  • 5 edits in trunk/Source/WebKit

Device orientation may be wrong on page reload after crash
https://bugs.webkit.org/show_bug.cgi?id=192349
<rdar://problem/46359466>

Reviewed by Eric Carlson.

On page crash, the process is relaunched and the page is reloaded.
At that point, the orientation information of the page is not reset until the next device orientation change.
To fix that, add the device orientation to the page creation parameters so that we pass it everytime we create a page.
Covered by manual testing.

  • Shared/WebPageCreationParameters.cpp:

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

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

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:
9:38 AM Changeset in webkit [238856] by Kocsen Chung
  • 3 edits in tags/Safari-607.1.16/Source/WebKit

Revert r238852. rdar://problem/46427844

9:17 AM Changeset in webkit [238855] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r238840.

The layout test added with this change is frequently failing.

Reverted changeset:

"REGRESSION (r238090): position:fixed sidebar on
https://www.w3.org/TR/SVG2/coords.html does not stay fixed"
https://bugs.webkit.org/show_bug.cgi?id=192320
https://trac.webkit.org/changeset/238840

9:05 AM Changeset in webkit [238854] by Keith Rollin
  • 2 edits
    1 add in trunk/Tools

Update scripts for generating .xcfilelist files
https://bugs.webkit.org/show_bug.cgi?id=192081
<rdar://problem/46312290>

Reviewed by Brent Fulgham.

The initial pass at generate-xcfilelists (a script for
creating/updating the .xcfilelist files needed for various Generate
Foo Source build phases in Xcode) only generated the .xcfilelist files
that held the output files; it did not generate the list of input
files. As well, for the sources generated by DerivedSources.make
makefiles, the script accomplished this via the implementation of a
convention in the makefile that allowed the printing of these output
files when invoked with the 'print_all_generated_files' target. Use of
this convention is inconvenient and error-prone.

The script is now updated to address both of these issues. First, it
generates for the input and output sets of files. Second, it does away
with the convention in the DerivedSources.make makefiles and instead
works from the dependency output information printed when make is
invoked with --debug. This second part is implemented in the new
script extract-dependencies-from-makefile.

  • Scripts/extract-dependencies-from-makefile: Added.

(Parser):
(Parser.init):
(Parser.nextLine):
(Parser.addTarget):
(Parser.addPrereq):
(Parser.doParse):
(Parser.printInputs):
(Parser.printOutputs):
(parseArgs):
(main):

  • Scripts/generate-xcfilelists:
8:33 AM Changeset in webkit [238853] by commit-queue@webkit.org
  • 10 edits
    2 moves
    8 adds in trunk

[WPE] Add gtk-doc
https://bugs.webkit.org/show_bug.cgi?id=178900

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-12-04
Reviewed by Michael Catanzaro.

Add gtk-doc to WPE port. This patch tries to reuse as much code from
WebKitGTK+ as possible.

.:

  • Source/PlatformGTK.cmake: include GtkDoc.cmake instead of defining macro.
  • Source/PlatformWPE.cmake: Added documentation generation.
  • Source/cmake/GtkDoc.cmake: Added.
  • Source/cmake/OptionsWPE.cmake: Added ENABLE_GTKDOC build option and added pkg-config path variables.

Source/WebKit:

  • PlatformWPE.cmake: Write variables to gtkdoc-wpe.cfg and gtkdoc-webextensions that is used by python script later.
  • UIProcess/API/wpe/WebKitWebContext.h: Placed sandbox functions in the same location as in the WebKitGTK+ for consistency.
  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt: Added.
  • UIProcess/API/wpe/docs/wpe-docs.sgml: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: Placed webkit_web_page_get_dom_document

in the same position as in the WebKitGTK+ for consistency.

  • WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-0.1-sections.txt: Added.
  • WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-docs.sgml: Added.

Tools:

  • gtkdoc/generate-gtkdoc: Renamed from Tools/gtk/generate-gtkdoc.

(get_gtkdoc_module_paths): Add GDK and GTK only if building for GTK.
(prepare_environment_for_gtkdoc_generation):
(build_gtkdoc_for_wpe): Code to generate doc for WPE.
(build_gtkdoc_for_wkgtk): Code to generate doc for WebKitGTK+. Moved from main.

  • gtkdoc/gtkdoc.py: Renamed from Tools/gtk/gtkdoc.py.

(GTKDoc.init): Initialized required variables according to pylint.
(GTKDoc.api_missing_documentation):

  • wpe/install-dependencies: Add gtkdoc dependency.
8:01 AM Changeset in webkit [238852] by Kocsen Chung
  • 3 edits in tags/Safari-607.1.16/Source/WebKit

Cherry-pick r238849. rdar://problem/46427844

Fix the watchOS build; stop unnecessarily linking CorePDF
https://bugs.webkit.org/show_bug.cgi?id=192356
<rdar://problem/46427844>

Reviewed by Wenson Hsieh.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/CorePDFSPI.h:

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

3:01 AM Changeset in webkit [238851] by Carlos Garcia Campos
  • 32 edits
    2 copies
    2 moves in trunk

[SOUP] Move URLSoup back to WebCore after r238771
https://bugs.webkit.org/show_bug.cgi?id=192306

Reviewed by Michael Catanzaro.

Source/WebCore:

Add soupURIToURL() and urlToSoupURI() to replace the URL contructor taking a Soup URI and
URL::createSoupURI(). Fix several build failures that showed up after removing the soup includes from URL
header.

  • platform/Cookie.h:
  • platform/SharedBuffer.h:
  • platform/SourcesSoup.txt:
  • platform/network/soup/CookieSoup.cpp:
  • platform/network/soup/GUniquePtrSoup.h: Renamed from Source/WTF/wtf/glib/GUniquePtrSoup.h.
  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::failingURI):

  • platform/network/soup/ResourceHandleSoup.cpp:
  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupMessageMembers const):
(WebCore::ResourceRequest::updateFromSoupMessage):
(WebCore::ResourceRequest::createSoupURI const):

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::ResourceResponse::updateFromSoupMessage):

  • platform/network/soup/SocketStreamHandleImpl.h:
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::SocketStreamHandleImpl::create):

  • platform/network/soup/SoupNetworkSession.cpp:
  • platform/network/soup/URLSoup.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.

(WebCore::soupURIToURL):
(WebCore::urlToSoupURI):

  • platform/network/soup/URLSoup.h: Renamed from Source/WTF/wtf/glib/URLSoup.cpp.

Source/WebKit:

Include GUniquePtrSoup from WebCore again and fix several build failures that showed up after removing the soup
includes from URL header.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate):

  • PluginProcess/PluginProcess.cpp:
  • Shared/API/glib/WebKitURIRequest.cpp:
  • Shared/API/glib/WebKitURIResponse.cpp:
  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
  • UIProcess/API/glib/WebKitURISchemeRequest.cpp:

(webkit_uri_scheme_request_finish_error): Use soupURIToURL().

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_uri): Use soupURIToURL().

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
  • UIProcess/Launcher/glib/BubblewrapLauncher.h:
  • UIProcess/Launcher/glib/FlatpakLauncher.cpp:
  • UIProcess/Launcher/glib/FlatpakLauncher.h:

Source/WTF:

In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
libsoup as a new dependency of libjavascriptcoregtk.

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformWPE.cmake:
  • wtf/URL.h:
  • wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.

Tools:

Include GUniquePtrSoup from WebCore again.

  • TestWebKitAPI/Tests/WebKitGLib/TestCookieManager.cpp:
1:08 AM Changeset in webkit [238850] by Devin Rousso
  • 26 edits
    2 adds in trunk

Web Inspector: Audit: tests should support async operations
https://bugs.webkit.org/show_bug.cgi?id=192171
<rdar://problem/46423562>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Add awaitPromise command for executing a callback when a Promise gets settled.

Drive-by: allow wasThrown to be optional, instead of expecting it to always have a value.

  • inspector/protocol/Runtime.json:
  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.awaitPromise): Added.

  • inspector/InjectedScript.h:
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::evaluate):
(Inspector::InjectedScript::awaitPromise): Added.
(Inspector::InjectedScript::callFunctionOn):
(Inspector::InjectedScript::evaluateOnCallFrame):

  • inspector/InjectedScriptBase.h:
  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeEvalCall):
(Inspector::InjectedScriptBase::makeAsyncCall): Added.
(Inspector::InjcetedScriptBase::checkCallResult): Added.
(Inspector::InjcetedScriptBase::checkAsyncCallResult): Added.

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

(Inspector::InspectorRuntimeAgent::evaluate):
(Inspector::InspectorRuntimeAgent::awaitPromise):
(Inspector::InspectorRuntimeAgent::callFunctionOn):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame):

Source/WebCore:

  • page/Settings.yaml:
  • dom/ScriptExecutionContext.cpp:

(ScriptExecutionContext::reportUnhandledPromiseRejection):
Add setting for muting the "Unhandled Promise Rejection" console message.

Source/WebInspectorUI:

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.supportsAwaitPromise): Added.

  • UserInterface/Models/AuditTestCase.js:

(WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty.addErrorForValueType): Deleted.
(WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty): Deleted.
(WI.AuditTestCase.prototype.async run.async parseResponse.async resultArrayForEach): Deleted.
(WI.AuditTestCase.prototype.async run.async parseResponse): Added.
(WI.AuditTestCase.prototype.async run):
(WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Deleted.
(WI.AuditTestCase.prototype.async run.checkResultProperty): Deleted.
(WI.AuditTestCase.prototype.async run.async resultArrayForEach): Deleted.

  • UserInterface/Models/AuditTestCaseResult.js:

(WI.AuditTestCaseResult.async fromPayload):
(WI.AuditTestCaseResult.prototype.toJSON):

  • UserInterface/Views/AuditTestCaseContentView.js:

(WI.AuditTestCaseContentView.prototype.layout):

LayoutTests:

  • inspector/audit/resources/audit-utilities.js:

(TestPage.registerInitializer.InspectorTest.Audit.addFunctionlessTest):
(TestPage.registerInitializer.InspectorTest.Audit.addStringTest):
(TestPage.registerInitializer.InspectorTest.Audit.addObjectTest):
(TestPage.registerInitializer.InspectorTest.Audit.addPromiseTest): Added.

  • inspector/audit/basic-expected.txt:
  • inspector/audit/basic.html:
  • inspector/model/auditTestCaseResult-expected.txt:
  • inspector/model/auditTestCaseResult.html:
  • inspector/model/auditTestGroupResult-expected.txt:
  • inspector/model/auditTestGroupResult.html:
  • inspector/runtime/awaitPromise-expected.txt: Added.
  • inspector/runtime/awaitPromise.html: Added.
1:00 AM Changeset in webkit [238849] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit

Fix the watchOS build; stop unnecessarily linking CorePDF
https://bugs.webkit.org/show_bug.cgi?id=192356
<rdar://problem/46427844>

Reviewed by Wenson Hsieh.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/CorePDFSPI.h:
12:34 AM Changeset in webkit [238848] by Carlos Garcia Campos
  • 86 edits in trunk

[GTK] Bump freetype, fontconfig, harfbuzz, cairo and icu in jhbuild
https://bugs.webkit.org/show_bug.cgi?id=192310

Reviewed by Michael Catanzaro.

Tools:

Update those dependencies to their latest stable versions.

  • gtk/jhbuild.modules:

LayoutTests:

Rebaseline tests.

  • platform/gtk/fast/text/format-control-expected.png:
  • platform/gtk/fast/text/format-control-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/color-prop-05-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/filters-image-03-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/interact-pointer-03-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-control-04-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/painting-marker-07-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-17-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-grad-20-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-03-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/struct-use-14-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-css-04-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-02-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-05-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-intro-09-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tref-03-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/text-tspan-02-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/fonts-kern-01-t-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.png:
  • platform/gtk/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.png:
  • platform/gtk/svg/custom/glyph-transformation-with-hkern-expected.txt:
  • platform/gtk/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.txt:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.png:
  • platform/gtk/svg/foreignObject/text-tref-02-b-expected.txt:
  • platform/gtk/svg/text/text-hkern-on-vertical-text-expected.png:
  • platform/gtk/svg/text/text-hkern-on-vertical-text-expected.txt:
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.png:
  • platform/gtk/svg/transforms/text-with-mask-with-svg-transform-expected.txt:
Note: See TracTimeline for information about the timeline view.