Timeline



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:

Dec 3, 2018:

11:59 PM Changeset in webkit [238847] by tpopela@redhat.com
  • 2 edits in trunk/Tools

[GTK] Can't run MiniBrowser due to missing python2-yaml
https://bugs.webkit.org/show_bug.cgi?id=192308

Reviewed by Michael Catanzaro.

  • gtk/install-dependencies:
11:31 PM Changeset in webkit [238846] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

Unified sources, of course.

10:22 PM Changeset in webkit [238845] by youenn@apple.com
  • 7 edits in trunk

A sender created through addTransceiver and populated using addTrack should have its source set
https://bugs.webkit.org/show_bug.cgi?id=192136

Reviewed by Eric Carlson.

Source/WebCore:

In case libwebrtc backend is already created, we need to make sure to
set the track source to the libwebrtc sender backend that is actually
tied to the sender.

Covered by updated test.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::removeTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::addTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:

LayoutTests:

  • webrtc/video-replace-track-expected.txt:
  • webrtc/video-replace-track.html:
10:11 PM Changeset in webkit [238844] by commit-queue@webkit.org
  • 15 edits
    2 copies
    9 adds in trunk

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

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-12-03
Reviewed by Youenn Fablet.

Source/WebCore:

Implement the encoding for non-timeslice mode of MediaRecorder.
It only supports to record MP4 file through H264 and AAC encoding, we will need to support more MIME types and encoding methods.
Add a API in internals to allow testings to turn on the mock source.

Tests: 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

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::setCustomPrivateRecorderCreator):
(WebCore::MediaRecorder::getPrivateImpl):
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::stopRecordingInternal):
(WebCore::MediaRecorder::createRecordingDataBlob):
(WebCore::MediaRecorder::scheduleDeferredTask):

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorder.idl:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediarecorder/MediaRecorderPrivate.h:

(WebCore::MediaRecorderPrivate::stopRecording):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: Added.

(WebCore::MediaRecorderPrivateAVFImpl::create):
(WebCore::MediaRecorderPrivateAVFImpl::MediaRecorderPrivateAVImpl):
(WebCore::MediaRecorderPrivateAVFImpl::sampleBufferUpdated):
(WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):
(WebCore::MediaRecorderPrivateAVFImpl::stopRecording):
(WebCore::MediaRecorderPrivateAVFImpl::fetchData):
(WebCore::MediaRecorderPrivateAVFImpl::mimeType):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h: Added.
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):
(WebCore::MediaRecorderPrivateMock::mimeType):

  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h: Added.
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: Added.

(WebCore::MediaRecorderPrivateWriter::setupWriter):
(WebCore::MediaRecorderPrivateWriter::setVideoInput):
(WebCore::MediaRecorderPrivateWriter::setAudioInput):
(WebCore::copySampleBufferWithCurrentTimeStamp):
(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::fetchData):

  • testing/Internals.cpp:

(WebCore::createRecorderMockSource):
(WebCore::Internals::setCustomPrivateRecorderCreator):

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

LayoutTests:

Create new tests for encoding of MediaRecorder. Check if the produced video and audio are correct.
Add code to turn on the mock source of MediaRecorder for the two old tests because the real source is enabled by default.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-only-dataavailable.html: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-AV-video-only-dataavailable.html: Added.
  • http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
  • http/wpt/mediarecorder/MediaRecorder-mock-dataavailable.html:
10:01 PM Changeset in webkit [238843] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: save the expanded state of test groups
https://bugs.webkit.org/show_bug.cgi?id=192346
<rdar://problem/46440704>

Reviewed by Matt Baker.

  • UserInterface/Views/AuditTreeElement.js:

(WI.AuditTreeElement):
(WI.AuditTreeElement.prototype.onattach):
(WI.AuditTreeElement.prototype.onexpand): Added.
(WI.AuditTreeElement.prototype.oncollapse): Added.

8:06 PM Changeset in webkit [238842] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: sidebar briefly shows "No Filter Results" before populating default audits
https://bugs.webkit.org/show_bug.cgi?id=192341
<rdar://problem/46436550>

Reviewed by Matt Baker.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.initialLayout):
(WI.AuditNavigationSidebarPanel.prototype._addTest):
(WI.AuditNavigationSidebarPanel.prototype._addResult):
(WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Deleted.
Delay the construction of the "Results" folder until it's needed, since adding a hidden
WI.TreeElement will cause the placeholder to appear.

8:06 PM Changeset in webkit [238841] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: navigating while tests are running should stop and clear all results
https://bugs.webkit.org/show_bug.cgi?id=192317
<rdar://problem/46435222>

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.async start):
(WI.AuditManager.prototype._handleFrameMainResourceDidChange):

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype.initialLayout):
Drive-by: pass the index of the saved result.

8:03 PM Changeset in webkit [238840] by Simon Fraser
  • 3 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:

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.
8:03 PM Changeset in webkit [238839] by Justin Michaud
  • 8 edits
    2 adds in trunk

CSS Painting API should scale display list when drawing
https://bugs.webkit.org/show_bug.cgi?id=192217

Reviewed by Simon Fraser.

Source/WebCore:

When we replay the display list, fix the scaling. The separate buffer is needed to make sure that globalCompositeOperation functions correctly.

  • html/CustomPaintCanvas.cpp:

(WebCore::CustomPaintCanvas::replayDisplayList const):

  • html/CustomPaintCanvas.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::doCustomPaint):

LayoutTests:

  • fast/css-custom-paint/properties-expected.html:
  • fast/css-custom-paint/registerPaintBindings-expected.html:
  • fast/css-custom-paint/simple-hidpi-expected.html: Added.
  • fast/css-custom-paint/simple-hidpi.html: Added.
  • fast/css-custom-paint/worklet-expected.html:
7:54 PM Changeset in webkit [238838] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Thick overlines and line-throughs grow in the wrong direction
https://bugs.webkit.org/show_bug.cgi?id=192264

Reviewed by Dean Jackson.

Source/WebCore:

Overlines should grow upward, and line-throughs should stay centered.

Test: fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

LayoutTests:

I can't figure out a way to test the line-through, so this just tests the overline.

  • fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction-expected.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html: Added.
6:43 PM Changeset in webkit [238837] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Viewport-constrained renderers are always RenderLayerModelObjects
https://bugs.webkit.org/show_bug.cgi?id=192342

Reviewed by Myles C. Maxfield.

addViewportConstrainedObject/removeViewportConstrainedObject can take RenderLayerModelObjects,
since all viewport-constrained renderers have layers.

  • page/FrameView.cpp:

(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::removeViewportConstrainedObject):

  • page/FrameView.h:
  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::styleDidChange): The 0 argument is actually a nullptr RenderGeometryMap,
which has a default value, and the comment was obsolete.

6:30 PM Changeset in webkit [238836] by don.olmstead@sony.com
  • 8 edits in trunk/Source

Fix some unused parameter warnings
https://bugs.webkit.org/show_bug.cgi?id=192336

Reviewed by Fujii Hironori.

Source/WebCore:

  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::isLegacySerializedIDBKeyData):

  • platform/FileSystem.cpp:

(WebCore::FileSystem::openAndLockFile):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::bindVertexArray):

  • platform/network/curl/CertificateInfo.h:

(WTF::Persistence::Coder<WebCore::CertificateInfo>::encode):
(WTF::Persistence::Coder<WebCore::CertificateInfo>::decode):

Source/WTF:

  • wtf/StackTrace.cpp:

(WTFGetBacktrace):
(WTF::StackTrace::demangle):

  • wtf/generic/MemoryPressureHandlerGeneric.cpp:

(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):

5:34 PM Changeset in webkit [238835] by Ryan Haddad
  • 8 edits
    4 deletes in trunk

Unreviewed, rolling out r238833.

Breaks macOS and iOS debug builds.

Reverted changeset:

"[ESNext][BigInt] Support logic operations"
https://bugs.webkit.org/show_bug.cgi?id=179903
https://trac.webkit.org/changeset/238833

5:15 PM Changeset in webkit [238834] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

Make it possible to disable animated keyboard scrolling behavior
https://bugs.webkit.org/show_bug.cgi?id=192331
<rdar://problem/45586859>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator invalidate]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
(-[WKKeyboardScrollingAnimator willStartInteractiveScroll]):
(-[WKKeyboardScrollingAnimator startRepeatTimerIfNeeded]):
(-[WKKeyboardScrollingAnimator stopRepeatTimer]):
(-[WKKeyboardScrollingAnimator performDiscreteScroll]):
(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):
(-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]):

  • WebKit.xcodeproj/project.pbxproj:
5:13 PM Changeset in webkit [238833] 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):

5:12 PM Changeset in webkit [238832] by Fujii Hironori
  • 16 edits in trunk/Source/WebKit

Remove "using namespace WebKit" under Source/WebKit/WebProcess/InjectedBundle/API
https://bugs.webkit.org/show_bug.cgi?id=192301

Reviewed by Alex Christensen.

Removed "using namespace WebKit" statement, and use "WebKit::"
namespace prefix instead.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageBanner.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageGroup.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
  • WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
4:57 PM Changeset in webkit [238831] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: "Add Default Audits" shown when there are no filter results
https://bugs.webkit.org/show_bug.cgi?id=192105

Reviewed by Matt Baker.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel):
(WI.NavigationSidebarPanel.prototype.get hasActiveFilters): Added.
(WI.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
(WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
(WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
(WI.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
(WI.NavigationSidebarPanel.prototype.updateFilter):
(WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
(WI.NavigationSidebarPanel.prototype._filterDidChange):
(WI.NavigationSidebarPanel.prototype._updateFilter): Deleted.
(WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): Deleted.

  • UserInterface/Views/AuditNavigationSidebarPanel.js:

(WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
Drive-by: change capitalization for consistency with other navigation sidebars.

  • Localizations/en.lproj/localizedStrings.js:
4:55 PM Changeset in webkit [238830] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

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

Web Inspector: Canvas: add singular localized string for "Record first %s frames"
https://bugs.webkit.org/show_bug.cgi?id=192189

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView):
(WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): Added.
(WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
(WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
(WI.CanvasOverviewContentView.prototype.initialLayout): Deleted.
Drive-by: update the auto-capture navigation item when the view is first created so there is
no flashing of in the navigation bar (before initialLayout is called).

  • UserInterface/Views/CheckboxNavigationItem.js:

(WI.CheckboxNavigationItem):
(WI.CheckboxNavigationItem.prototype.set label): Added.

  • Localizations/en.lproj/localizedStrings.js:
4:08 PM Changeset in webkit [238828] by Chris Dumez
  • 7 edits
    2 adds in trunk

Regression(PSON) Google OAuth is broken in private sessions
https://bugs.webkit.org/show_bug.cgi?id=192337
<rdar://problem/46353558>

Reviewed by Alex Christensen.

Source/WebKit:

In WebPageProxy::swapToWebProcess(), we would call removeWebPage() on the old WebProcessProxy and then
addExistingWebPage() on the new WebProcessProxy, as you would expect in case of process swap.

The issue is that WebProcessProxy::removeWebPage() calls WebProcessPool::pageEndUsingWebsiteDataStore()
which would cause the session to get destroyed assuming this was the last page using it. We would
therefore lose session cookies after a process-swap in private session.

To address the issue, a parameter to WebProcessPool::pageEndUsingWebsiteDataStore() and
WebProcessPool::pageBeginUsingWebsiteDataStore() to control if we want to tell the WebProcessPool
about the page beginning / ending its use of the session. In the case of a process-swap, we make
sure the process pool is not notified.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::finishAttachingToWebProcess):
(WebKit::WebPageProxy::close):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):

  • UIProcess/WebProcessProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/GetSessionCookie.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SetSessionCookie.html: Added.
4:08 PM Changeset in webkit [238827] by Alan Coon
  • 8 edits in tags/Safari-607.1.16/Source/WebKit

Cherry-pick r238817. rdar://problem/46377552

Update process assertions after swapping processes
https://bugs.webkit.org/show_bug.cgi?id=192318
<rdar://problem/46377552>

Reviewed by Chris Dumez.

If the previous WebProcess had a ProcessAssertion to prevent it from being suspended,
after navigation and process swapping we need the new WebProcess to update its process assertions.

  • UIProcess/API/Cocoa/PageLoadStateObserver.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::didSwapWebProcesses):
  • UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::didSwapWebProcesses):
  • UIProcess/PageLoadState.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::finishAttachingToWebProcess):

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

3:57 PM Changeset in webkit [238826] by Chris Dumez
  • 6 edits in trunk

[PSON] Request by the client to process-swap is ignored if the window has an opener
https://bugs.webkit.org/show_bug.cgi?id=192267
<rdar://problem/46386886>

Reviewed by Brady Eidson.

Source/WebKit:

If the client forces a process-swap, we should process-swap, even if the browsing
context has an opener (or openees). Previously, we would only bypass the cross-site
check, not the openee / openees checks.

The issue when doing so is that the openee still has a opener link to the window
in the old process. They would see that the window is still there and navigated
to 'about:blank' due to our page suspension logic. To address the issue, we no
longer suspend the old WebPage if the process swap was forced by the client and
we make sure that the old WebPage gets closed.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):

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

(WebKit::WebProcessPool::processForNavigationInternal):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
3:16 PM Changeset in webkit [238825] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r238599): Multiple Selection: restoring selection when opening WebInspector puts the TreeElement into a permanent selected state
https://bugs.webkit.org/show_bug.cgi?id=192091
<rdar://problem/46321795>

Reviewed by Devin Rousso.

  • UserInterface/Controllers/SelectionController.js:

(WI.SelectionController.prototype.didInsertItem):
Fix a bug where selected indexes were overwritten by the inserted index.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline):
(WI.TreeOutline.prototype.insertChild):
Update the SelectionController with the newly inserted index before
attaching the TreeElement. Attaching the TreeElement can cause it to
become selected, which would add the index to the SelectionController,
only to have it immediately incremented by the call to didInsertItem.
Additionally, change insertionIndex to be the index of the inserted
item instead of the inserted item's previous sibling.

(WI.TreeOutline.prototype._rememberTreeElement):
(WI.TreeOutline.prototype._forgetTreeElement):
(WI.TreeOutline.prototype._indexOfTreeElement.previousElement): Deleted.
Eliminate TreeElement index caching, which could become stale and cause
the wrong index to be calculated. Additionally, instead of walking up the
parent chain to determine the index, start at the root and use existing
method traverseNextTreeElement.

2:52 PM Changeset in webkit [238824] by Keith Rollin
  • 4 edits
    16 adds in trunk

Add .xcfilelist files
https://bugs.webkit.org/show_bug.cgi?id=192082
<rdar://problem/46312533>

Reviewed by Brent Fulgham.

Add .xcfilelist files for Generate Derived Sources and Generate
Unified Sources build phases in Xcode. These are just being staged for
now; they'll be added to the Xcode projects later.

Source/JavaScriptCore:

  • DerivedSources-input.xcfilelist: Added.
  • DerivedSources-output.xcfilelist: Added.
  • UnifiedSources-input.xcfilelist: Added.
  • UnifiedSources-output.xcfilelist: Added.

Source/WebCore:

No new tests -- no changed functionality.

  • DerivedSources-input.xcfilelist: Added.
  • DerivedSources-output.xcfilelist: Added.
  • UnifiedSources-input.xcfilelist: Added.
  • UnifiedSources-output.xcfilelist: Added.

Source/WebKit:

  • DerivedSources-input.xcfilelist: Added.
  • DerivedSources-output.xcfilelist: Added.
  • UnifiedSources-input.xcfilelist: Added.
  • UnifiedSources-output.xcfilelist: Added.

Tools:

  • DumpRenderTree/DerivedSources-input.xcfilelist: Added.
  • DumpRenderTree/DerivedSources-output.xcfilelist: Added.
  • WebKitTestRunner/DerivedSources-input.xcfilelist: Added.
  • WebKitTestRunner/DerivedSources-output.xcfilelist: Added.
2:35 PM Changeset in webkit [238823] by Alan Coon
  • 7 edits
    4 deletes in tags/Safari-607.1.16/Source

Cherry-pick r238815. rdar://problem/46383932

Get rid of old, dead Mac video fullscreen code.
https://bugs.webkit.org/show_bug.cgi?id=192315

Reviewed by Eric Carlson.

Source/WebCore:

  • PlatformMac.cmake:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen const):

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

The Mac-only WebVideoFullscreenController and WebVideoFullscreenHUDWindowController depend upon QTKit, which
is no longer supported in the Mac port.

  • WebView/WebVideoFullscreenController.h: Removed.
  • WebView/WebVideoFullscreenController.mm: Removed.
  • WebView/WebVideoFullscreenHUDWindowController.h: Removed.
  • WebView/WebVideoFullscreenHUDWindowController.mm: Removed.
  • WebView/WebView.mm: (-[WebView _enterVideoFullscreenForVideoElement:mode:]): (-[WebView _exitVideoFullscreen]):

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

2:28 PM Changeset in webkit [238822] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: test tree elements should start out collapsed
https://bugs.webkit.org/show_bug.cgi?id=192107

Reviewed by Matt Baker.

  • UserInterface/Views/AuditTreeElement.js:

(WI.AuditTreeElement.prototype.onattach):

2:07 PM Changeset in webkit [238821] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[iOS] Unreviewed build fix.

  • Platform/Logging.h:
1:55 PM Changeset in webkit [238820] by achristensen@apple.com
  • 12 edits in trunk/Source/WebKit

Remove unused NetworkProcessCreationParameters.diskCacheSizeOverride
https://bugs.webkit.org/show_bug.cgi?id=192246

Reviewed by Chris Dumez.

The last use of this functionality was removed in rdar://problem/46344871

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCacheModel):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationDiskCacheSizeOverride):
(WKContextConfigurationSetDiskCacheSizeOverride):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration diskCacheSizeOverride]):
(-[_WKProcessPoolConfiguration setDiskCacheSizeOverride:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

1:47 PM Changeset in webkit [238819] by achristensen@apple.com
  • 21 edits in trunk

Add WKWebProcessPlugInLoadDelegate SPI willStartProvisionalLoadForFrame with a completion handler
https://bugs.webkit.org/show_bug.cgi?id=192272

Reviewed by Brady Eidson.

Source/WebCore:

This is needed for rdar://problem/45910057
Covered by an API test.

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame):

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

(ResourceLoadClient::ResourceLoadClient):
(ResourceLoadClient::loadDelegate const):
(ResourceLoadClient::pluginContextController const):
(PageLoaderClient::PageLoaderClient):
(PageLoaderClient::loadDelegate const):
(PageLoaderClient::pluginContextController const):
(PageLoaderClient::didStartProvisionalLoadForFrame):
(PageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame):
(PageLoaderClient::didFinishLoadForFrame):
(PageLoaderClient::globalObjectIsAvailableForFrame):
(PageLoaderClient::didRemoveFrameFromHierarchy):
(PageLoaderClient::didCommitLoadForFrame):
(PageLoaderClient::didFinishDocumentLoadForFrame):
(PageLoaderClient::didFailProvisionalLoadWithErrorForFrame):
(PageLoaderClient::didFailLoadWithErrorForFrame):
(PageLoaderClient::didSameDocumentNavigationForFrame):
(PageLoaderClient::didLayoutForFrame):
(PageLoaderClient::didReachLayoutMilestone):
(PageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame):
(PageLoaderClient::didHandleOnloadEventsForFrame):
(PageLoaderClient::userAgentForURL const):
(ResourceLoadClient::willSendRequestForFrame):
(ResourceLoadClient::didInitiateLoadForResource):
(ResourceLoadClient::didFinishLoadForResource):
(ResourceLoadClient::didFailLoadForResource):
(-[WKWebProcessPlugInBrowserContextController setLoadDelegate:]):
(didStartProvisionalLoadForFrame): Deleted.
(didReceiveServerRedirectForProvisionalLoadForFrame): Deleted.
(didFinishLoadForFrame): Deleted.
(globalObjectIsAvailableForFrame): Deleted.
(didRemoveFrameFromHierarchy): Deleted.
(didCommitLoadForFrame): Deleted.
(didFinishDocumentLoadForFrame): Deleted.
(didFailProvisionalLoadWithErrorForFrame): Deleted.
(didFailLoadWithErrorForFrame): Deleted.
(didSameDocumentNavigationForFrame): Deleted.
(didLayoutForFrame): Deleted.
(didReachLayoutMilestone): Deleted.
(didFirstVisuallyNonEmptyLayoutForFrame): Deleted.
(didHandleOnloadEventsForFrame): Deleted.
(userAgentForURL): Deleted.
(setUpPageLoaderClient): Deleted.
(willSendRequestForFrame): Deleted.
(didInitiateLoadForResource): Deleted.
(didFinishLoadForResource): Deleted.
(didFailLoadForResource): Deleted.
(setUpResourceLoadClient): Deleted.

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm:

(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:willStartProvisionalLoadForFrame:completionHandler:]):
(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:didCommitLoadForFrame:]):

1:41 PM Changeset in webkit [238818] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

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.

1:39 PM WPE edited by cadubentzen@gmail.com
Add mention to libwpe and WPEBackend-fdo (diff)
1:20 PM Changeset in webkit [238817] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit

Update process assertions after swapping processes
https://bugs.webkit.org/show_bug.cgi?id=192318
<rdar://problem/46377552>

Reviewed by Chris Dumez.

If the previous WebProcess had a ProcessAssertion to prevent it from being suspended,
after navigation and process swapping we need the new WebProcess to update its process assertions.

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

(WebKit::NavigationState::didSwapWebProcesses):

  • UIProcess/PageLoadState.cpp:

(WebKit::PageLoadState::didSwapWebProcesses):

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

(WebKit::WebPageProxy::finishAttachingToWebProcess):

1:12 PM Changeset in webkit [238816] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[iOS] Unreviewed build fix.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):

1:06 PM Changeset in webkit [238815] by jer.noble@apple.com
  • 7 edits
    4 deletes in trunk/Source

Get rid of old, dead Mac video fullscreen code.
https://bugs.webkit.org/show_bug.cgi?id=192315

Reviewed by Eric Carlson.

Source/WebCore:

  • PlatformMac.cmake:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::supportsFullscreen const):

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

The Mac-only WebVideoFullscreenController and WebVideoFullscreenHUDWindowController depend upon QTKit, which
is no longer supported in the Mac port.

  • WebView/WebVideoFullscreenController.h: Removed.
  • WebView/WebVideoFullscreenController.mm: Removed.
  • WebView/WebVideoFullscreenHUDWindowController.h: Removed.
  • WebView/WebVideoFullscreenHUDWindowController.mm: Removed.
  • WebView/WebView.mm:

(-[WebView _enterVideoFullscreenForVideoElement:mode:]):
(-[WebView _exitVideoFullscreen]):

12:45 PM Changeset in webkit [238814] by dbates@webkit.org
  • 9 edits
    6 adds in trunk

[iOS] Do not handle key events that are key commands
https://bugs.webkit.org/show_bug.cgi?id=191608
<rdar://problem/46046013>

Reviewed by Ryosuke Niwa.

Source/WebKit:

A key down event may be associated with a key command. If it is then we want to execute the
key command instead of inserting or deleting text. We need to ask UIKit to handle the current
event as a key command to find out.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interpretKeyEvent:isCharEvent:]): Ask UIKit to handle the current event
as a key command. If it handles it then we're done. Otherwise, do what we do now.

Source/WebKitLegacy/ios:

Add default implementation of -handleKeyCommandForCurrentEvent that returns NO - the current
event was not handled as a key command.

  • DefaultDelegates/WebDefaultUIKitDelegate.m:

(-[WebDefaultUIKitDelegate handleKeyCommandForCurrentEvent]):

  • WebView/WebUIKitDelegate.h:

Source/WebKitLegacy/mac:

A key down event may be associated with a key command. If it is then we want to execute the
key command instead of inserting or deleting text. We need to ask UIKit to handle the current
event as a key command to find out.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _handleEditingKeyEvent:]):

LayoutTests:

Add tests to ensure that we process key commands correctly.

  • fast/events/ios/key-command-italic-dispatches-keydown-expected.txt: Added.
  • fast/events/ios/key-command-italic-dispatches-keydown.html: Added.
  • fast/events/ios/key-command-italic-expected.txt: Added.
  • fast/events/ios/key-command-italic.html: Added.
  • fast/events/ios/type-digits-holding-control-key-expected.txt: Added.
  • fast/events/ios/type-digits-holding-control-key.html: Added.
  • platform/ios-wk1/TestExpectations:
12:37 PM Changeset in webkit [238813] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: can't select properties of read-only rules
https://bugs.webkit.org/show_bug.cgi?id=192266

Reviewed by Devin Rousso.

Implement multiple properties selection for read-only rules (such as User Agent Stylesheets)
in the Styles panel.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
Keep selection on layout.

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter):
SpreadsheetCSSStyleDeclarationEditor is used by ComputedStyleDetailsPanel, which doesn't have:

  • spreadsheetCSSStyleDeclarationEditorPropertyBlur
  • spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.startEditingName):
(WI.SpreadsheetStyleProperty.prototype.startEditingValue):

12:33 PM Changeset in webkit [238812] by rniwa@webkit.org
  • 10 edits
    4 adds in trunk

title attribute on style & link elements should be ignored inside a shadow tree
https://bugs.webkit.org/show_bug.cgi?id=191297

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaseline the test case that's now passing.

  • web-platform-tests/css/css-scoping/stylesheet-title-002-expected.txt:

Source/WebCore:

Fixed the by not setting the stylesheet's title even when the title content attribute is present
or set on SVG/HTML style and link elements inside a shadow tree.

Test: fast/shadow-dom/stylesheet-title-in-shadow-tree.html

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::parseAttribute):
(WebCore::HTMLLinkElement::initializeStyleSheet):

  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::parseAttribute):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectActiveStyleSheets):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::parseAttribute):

LayoutTests:

Adde a W3C-style testharness.js test for a more comprehensive testing of the title content attribute
on HTML link and style elements and SVG style element inside a shadow tree.

  • TestExpectations:
  • fast/shadow-dom/resources/green-div.css: Added.
  • fast/shadow-dom/resources/red-div.css: Added.
  • fast/shadow-dom/stylesheet-title-in-shadow-tree-expected.txt: Added.
  • fast/shadow-dom/stylesheet-title-in-shadow-tree.html: Added.
12:18 PM Changeset in webkit [238811] by Alan Bujtas
  • 8 edits in trunk/Source

[iOS] Add logging channel for hover related content observation
https://bugs.webkit.org/show_bug.cgi?id=192312

Reviewed by Simon Fraser.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::platformSuspendOrStopActiveDOMObjects):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::clearTimeout):

  • page/Frame.cpp:

(WebCore::Frame::willDetachPage):

  • platform/Logging.h:

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):

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

Enable swipe snapshot removal logging in release builds
https://bugs.webkit.org/show_bug.cgi?id=192313

Reviewed by Dean Jackson.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::log const):
This is super-low-traffic and super-helpful logging.
Turn it on all the time.

11:58 AM Changeset in webkit [238809] by don.olmstead@sony.com
  • 2 edits in trunk

[CMake] Sync feature defines
https://bugs.webkit.org/show_bug.cgi?id=191167

Reviewed by Michael Catanzaro.

  • Source/cmake/WebKitFeatures.cmake:
11:45 AM Changeset in webkit [238808] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.16

Tag Safari-607.1.16.

11:45 AM Changeset in webkit [238807] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

11:13 AM Changeset in webkit [238806] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: resource combining should be more robust against missing WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=192255
<rdar://problem/46042879>

Reviewed by Joseph Pecoraro.

  • Scripts/copy-user-interface-resources.pl:

(combineOrStripResourcesForWebKitAdditions):

11:11 AM Changeset in webkit [238805] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[SOUP] Use SoupSession instead of SoupSessionAsync
https://bugs.webkit.org/show_bug.cgi?id=107451

Reviewed by Carlos Garcia Campos.

With glib-networking 2.57.1, WebKit is no longer able to load TLS error pages. The problem
is a network process deadlock caused by a change in how glib-networking performs certificate
verification. Previously it verified certificates *after* the TLS handshake had completed,
which was weirdly late, but previously not problematic. But now that TLS 1.3 exists,
application data can be sent before certificate verification occurs, which is no good. So I
moved verification to occur during the handshake. I needed to do this regardless because I
need to add a new callback in GnuTLS for another feature. This introduced a deadlock in
WebKit:

  • glib-networking detects an unacceptable certificate, emits accept-certificate signal
  • NetworkDataTaskSoup::tlsConnectionAcceptCertificate calls NetworkDataTaskSoup::invalidateAndCancel calls NetworkDataTaskSoup::clearRequest
  • NetworkDataTaskSoup::clearRequest calls soup_session_cancel_message

The problem is that, in the deprecated SoupSessionAsync used by WebKit, cancellation is
always *synchronous* despite the name of the class. So soup_session_cancel_message winds up
doing its thing to close everything out, and that eventually ends up in a synchronous call
to g_tls_connection_gnutls_close. The close operation can't proceed until the TLS handshake
is finished, and the handshake is blocked waiting for WebKit to return from its
accept-certificate handler. So the close operation winds up polling forever waiting for the
handshake to finish. Deadlock.

The only changes required in WebKit to use the modern SoupSession are adjustments for the
new default property values. Most of the properties we used to set explicitly are now
defaults and should be removed. Additionally, SoupSession has default timeouts, which we
want to override to allow NetworkDataTaskSoup to implement its own timeouts.

No new tests because this is covered by TestSSL (which would be failing if run with the
newer glib-networking).

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession):

9:57 AM Changeset in webkit [238804] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Fix the bytecode code generator scripts to pretty print BytecodeStructs.h and BytecodeIndices.h.
https://bugs.webkit.org/show_bug.cgi?id=192271

Reviewed by Keith Miller.

This makes the generated code style compliant and human readable.

  • generator/Argument.rb:
  • generator/DSL.rb:
  • generator/Fits.rb:
  • generator/Metadata.rb:
  • generator/Opcode.rb:
9:52 AM Changeset in webkit [238803] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Modify unexpected new line in test after https://trac.webkit.org/changeset/238765/webkit
https://bugs.webkit.org/show_bug.cgi?id=192201

Unreviewed Test Gardening.

  • platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
9:50 AM Changeset in webkit [238802] by yusukesuzuki@slowstart.org
  • 41 edits in trunk/Source

Use WallTime for file time
https://bugs.webkit.org/show_bug.cgi?id=192287

Reviewed by Darin Adler.

Source/WebCore:

This patch changes a type of file time from double to WallTime to use strongly typed file time.

No behavior change.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::details const):

  • Modules/webdatabase/DatabaseDetails.h:

(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::creationTime const):
(WebCore::DatabaseDetails::modificationTime const):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::detailsForNameAndOrigin):

  • fileapi/AsyncFileStream.cpp:

(WebCore::AsyncFileStream::getSize):

  • fileapi/AsyncFileStream.h:
  • fileapi/File.cpp:

(WebCore::File::lastModified const):

  • page/Page.cpp:

(WebCore::Page::userStyleSheetLocationChanged):
(WebCore::Page::userStyleSheet const):

  • page/Page.h:
  • platform/FileMetadata.h:
  • platform/FileStream.cpp:

(WebCore::FileStream::getSize):

  • platform/FileStream.h:
  • platform/FileSystem.cpp:

(WebCore::FileSystem::getFileModificationTime): Deleted.

  • platform/FileSystem.h:

(WebCore::FileSystem::invalidFileTime): Deleted.
(WebCore::FileSystem::isValidFileTime): Deleted.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::FileSystem::getFileCreationTime):
(WebCore::FileSystem::getFileModificationTime):
(WebCore::FileSystem::fileMetadataUsingFunction):

  • platform/network/BlobDataFileReference.cpp:

(WebCore::BlobDataFileReference::BlobDataFileReference):
(WebCore::BlobDataFileReference::expectedModificationTime):

  • platform/network/BlobDataFileReference.h:
  • platform/network/FormData.cpp:

(WebCore::FormData::appendFile):
(WebCore::FormData::appendFileRange):

  • platform/network/FormData.h:

(WebCore::FormDataElement::FormDataElement):
(WebCore::FormDataElement::EncodedFileData::decode):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::advanceCurrentStream):

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::appendEncodedBlobItemToSoupMessageBody):

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::FileSystem::getFileCreationTime):
(WebCore::FileSystem::getFileModificationTime):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::databaseCreationTime):
(WebCore::SQLiteFileSystem::databaseModificationTime):

  • platform/sql/SQLiteFileSystem.h:
  • platform/win/FileSystemWin.cpp:

(WebCore::FileSystem::getFileModificationTime):
(WebCore::FileSystem::getFileCreationTime):
(WebCore::FileSystem::findDataToFileMetadata):

Source/WebKit:

  • Shared/SessionState.h:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DatabaseDetails>::decode):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetStorageDetailsByOrigin):

  • UIProcess/API/glib/WebKitWebViewSessionState.cpp:

(decodeHTTPBody):

  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::PluginInfoCache::getPluginInfo):
(WebKit::PluginInfoCache::updatePluginInfo):

  • UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::hasFileChangedSince):

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::databasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::originDetails):

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.h:
  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::encodeFormDataElement):
(WebKit::decodeFormDataElement):

  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:

(WebKit::removeAllMediaKeyStorageForOriginPath):
(WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesForOrigin):
(WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesModifiedBetweenDates):
(WebKit::WebMediaKeyStorageManager::deleteAllMediaKeyEntries):

  • WebProcess/MediaCache/WebMediaKeyStorageManager.h:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toHTTPBody):
(WebKit::toFormData):

Source/WebKitLegacy/win:

  • Plugins/PluginDatabase.cpp:

(WebCore::PluginDatabase::refresh):

9:48 AM Changeset in webkit [238801] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS Simulator Release test crashes.

  • platform/network/ios/WebCoreURLResponseIOS.mm:

(WebCore::adjustMIMETypeIfNecessary): Check for null before using the
new MIME type.

9:26 AM Changeset in webkit [238800] by Darin Adler
  • 2 edits in trunk/Source/WebKit

[Cocoa] Check message IDs when decoding Mach messages in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=192300
rdar://problem/46215523

Reviewed by Chris Dumez.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::sendOutgoingMessage): Use message IDs other than 0 and 1 for
the messages, as suggested by an expert at Apple.
(IPC::createMessageDecoder): Update for the new message IDs.
(IPC::Connection::receiveSourceEventHandler): Ignore messages with unexpected
message IDs.

9:18 AM Changeset in webkit [238799] by Darin Adler
  • 2 edits in trunk/Source/WebKit

[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.

9:16 AM Changeset in webkit [238798] by Darin Adler
  • 3 edits in trunk/Source/WebKit

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.

8:45 AM Changeset in webkit [238797] by Darin Adler
  • 2 edits in trunk/Source/WebKit

[Cocoa] Streamline sandbox code a tiny bit
https://bugs.webkit.org/show_bug.cgi?id=192299

Reviewed by Anders Carlsson.

  • Shared/mac/SandboxUtilities.mm:

(WebKit::processHasContainer): Removed separate function, just use the
pathForProcessContainer instead of repeating logic. This costs a tiny
bit of memory allocation overhead the first time this function is called,
but in return we can eliminate a second copy of the code to call
sandbox_container_path_for_pid.

8:28 AM Changeset in webkit [238796] by eric.carlson@apple.com
  • 9 edits
    2 adds in trunk

[MediaStream] 'devicechange' event when more capture device information are revealed.
https://bugs.webkit.org/show_bug.cgi?id=192268

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/enumerate-devices-change-event.html

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::start): Remove code to modify device based on access, that is
now done in the UI process.
(WebCore::MediaDevicesRequest::filterDeviceList): Deleted.

  • Modules/mediastream/MediaDevicesRequest.h:
  • platform/mediastream/RealtimeMediaSourceCenter.h:

Source/WebKit:

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Call captureDevicesChanged
if a filtered device list was returned previously.
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): Clear m_hasFilteredDeviceList.
(WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess): New.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Filter device
list and strip device IDs if gUM permission hasn't been given.
(WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired): Clear m_hasFilteredDeviceList.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

LayoutTests:

  • fast/mediastream/device-change-event-2.html: Fix bogus title.
  • fast/mediastream/enumerate-devices-change-event-expected.txt: Added.
  • fast/mediastream/enumerate-devices-change-event.html: Added.
7:42 AM Changeset in webkit [238795] by Wenson Hsieh
  • 8 edits in trunk

[iOSMac] Unable to upload non-image files using drag and drop in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=192283
<rdar://problem/46399461>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently on iOS, file URLs aren't generally written to the pasteboard during drag and drop unless the
application providing the data explicitly registers "public.file-url" to item providers. As such, our current
logic on iOS for handling drops does not attempt to prevent "public.file-url" from being advertised as the
"text/uri-list" MIME type in DataTransfer, though we do currently succeed in suppressing access to the file URL.

However, on iOSMac, the scenario in which file URLs are registered to item providers becomes pertinent when
uploading files from other macOS apps (e.g. Finder) into a WKWebView running in iOSMac. Furthermore, the
preferredPresentationStyle flag on NSItemProvider is unavailable in iOSMac; currently, this flag is our
primary cue on iOS that an item should be treated as an attachment rather than inline data. In order to support
file uploads in iOSMac, we make several adjustments to drop handling logic in iOS to handle the case where the
"public.file-url" type is registered. See below for more details.

Tests: DragAndDropTests.DataTransferExposePlainTextWithFileURLAsFile

DragAndDropTests.DataTransferGetDataWhenDroppingImageWithFileURL

  • platform/PasteboardItemInfo.h:

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

Add a new flag that is set if and only if the item provider contains the "public.file-url" type, and also
contains some non-URL data type that conforms to one of the file types supported for file uploads (i.e.
"public.content", zip archives, and folders).

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

Consider the pasteboard to contain files in the case where one or more of the items contains a file URL, along
with some other pasteboard data that can be represented as a file upload.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::informationForItemAtIndex):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):

If the pasteboard contains "public.file-url", don't consider "text/uri-list" to be one of the data types that's
safe to expose to the page. Our current behavior in this case is that we will advertise "text/uri-list" as a
pasteboard type in the DataTransfer, but if the page attempts to request this information, we simply return the
empty string. Instead, we shouldn't expose "text/uri-list" as a type in the first place.

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

Add a few more __bridge-ing casts where appropriate.

(typeConformsToTypes):

Move this further up the file so that it can be used in NSItemProvider (WebCoreExtras).

(-[NSItemProvider web_containsFileURLAndFileUploadContent]):

Add a helper method on NSItemProvider to determine whether an item provider has a file URL, as well as a content
type suitable for file uploads.

(-[WebItemProviderLoadResult canBeRepresentedAsFileUpload]):

This currently always returns NO in iOSMac; instead, return YES on both iOS and iOSMac in the case where the
item provider contains a file URL and content which may be uploaded.

(-[WebItemProviderPasteboard preferredFileUploadURLAtIndex:fileType:]):
(-[WebItemProviderPasteboard typeIdentifiersToLoad:]):

Refactor this to take an NSItemProvider instead of a list of type identifiers, and bail out of loading data
for "public.url" if the item provider contains a file URL.

(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:synchronousTimeout:]):
(-[WebItemProviderPasteboard typeIdentifiersToLoadForRegisteredTypeIdentifiers:]): Deleted.

Tools:

Add a new API test to check that an item provider which contains plain text data and a file URL (but is not
marked as an attachment) is still treated as an attachment upon drop. Furthermore, verify that "text/uri-list"
does not expose the actual file URL written to the item provider.

Additionally, rebaseline an existing API test to remove an extraneous "text/uri-list" type that appears in
DataTransfer.types, but whose data is inaccessible via getData anyways.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
4:47 AM Changeset in webkit [238794] by guijemont@igalia.com
  • 2 edits in trunk/LayoutTests

Gardening: unskip marsaglia.js on arm

Unreviewed Test Gardening.

Bug 192152 has been fixed by r238778, so this test should not time out
any more.

  • js/slow-stress/script-tests/marsaglia.js:
3:25 AM Changeset in webkit [238793] by commit-queue@webkit.org
  • 4 edits
    10 adds in trunk/LayoutTests

[EME][ClearKey] Add layout test for dynamic change of key and video resolution
https://bugs.webkit.org/show_bug.cgi?id=191926

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-12-03
Reviewed by Xabier Rodriguez-Calvar.

Add new layout tests in order to test the playback of ClearKey encrypted video content with
a change of key and resolution during decoding.
The test starts by playing a ClearKey video with a resolution of 240p, then, in the third second,
the resolution of the video will change to 480p with a new ClearKey key.

  • media/content/encrypted/segments/VideoClearKeyCenc-seg-240-0.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-240-1.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-240-2.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-240-3.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-480-0.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-480-4.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-480-5.mp4: Added.
  • media/content/encrypted/segments/VideoClearKeyCenc-seg-480-6.mp4: Added.
  • media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-multikey-expected.txt: Added.
  • media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse-multikey.html: Added.
  • media/encrypted-media/medias-enc.js:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
12:22 AM Changeset in webkit [238792] by Keith Rollin
  • 11 edits
    1 delete in trunk/Source/WebKit

Remove Network Capture
https://bugs.webkit.org/show_bug.cgi?id=192296
<rdar://problem/46408648>

Reviewed by Daniel Bates.

r209498 introduced an embedded record and replay facility for network
resource loading. This facility was added in order to support a new
implementation of the PLT and related performance tests. The PLT is
currenty taking a different direction, and so this record/replace
facility is no longer needed. Removing it as unused code.

  • CMakeLists.txt:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):
(WebKit::NetworkLoad::setDefersLoading):
(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::initializeForRecord): Deleted.
(WebKit::NetworkLoad::initializeForReplay): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::terminate):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/capture/NetworkCaptureEvent.cpp: Removed.
  • NetworkProcess/capture/NetworkCaptureEvent.h: Removed.
  • NetworkProcess/capture/NetworkCaptureLogging.h: Removed.
  • NetworkProcess/capture/NetworkCaptureManager.cpp: Removed.
  • NetworkProcess/capture/NetworkCaptureManager.h: Removed.
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp: Removed.
  • NetworkProcess/capture/NetworkCaptureRecorder.h: Removed.
  • NetworkProcess/capture/NetworkCaptureReplayer.cpp: Removed.
  • NetworkProcess/capture/NetworkCaptureReplayer.h: Removed.
  • NetworkProcess/capture/NetworkCaptureResource.cpp: Removed.
  • NetworkProcess/capture/NetworkCaptureResource.h: Removed.
  • NetworkProcess/capture/NetworkDataTaskReplay.cpp: Removed.
  • NetworkProcess/capture/NetworkDataTaskReplay.h: Removed.
  • NetworkProcess/capture/json.hpp: Removed.
  • Sources.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • WebKit.xcodeproj/project.pbxproj:
  • config.h:
Note: See TracTimeline for information about the timeline view.