[webkit-changes] [236959] trunk/Source
Title: [236959] trunk/Source Revision 236959 Author an...@apple.com Date 2018-10-09 02:14:37 -0700 (Tue, 09 Oct 2018) Log Message Prewarm FontDatabase on process swap https://bugs.webkit.org/show_bug.cgi?id=190312 Reviewed by Chris Dumez. Source/WebCore: Implement basic prewarming of FontDatabase. When the domain of the first page load on a new process is known we pass the list of font families previous used by that domain to the process. This is used to prewarm CoreText font database. Initialization (which involves lots of blocking IPC) happens outside the main thread so the fonts are ready to use when needed. * WebCore.xcodeproj/project.pbxproj: * page/PrewarmInformation.h: Added. (WebCore::PrewarmInformation::encode const): (WebCore::PrewarmInformation::decode): Add data structure for prewarm information with encode/decode support. * page/ProcessWarming.cpp: (WebCore::ProcessWarming::collectPrewarmInformation): (WebCore::ProcessWarming::prewarmWithInformation): Prewarming interface to be used from WebKit. * page/ProcessWarming.h: * platform/graphics/FontCache.cpp: (WebCore::FontCache::collectPrewarmInformation const): (WebCore::FontCache::prewarm): * platform/graphics/FontCache.h: * platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::FontDatabase::collectionForFamily): (WebCore::FontDatabase::fontForPostScriptName): (WebCore::FontDatabase::clear): Add mutex for thread safe access. (WebCore::FontCache::createFontPlatformData): (WebCore::FontCache::collectPrewarmInformation const): Collect font families seen by this process. (WebCore::FontCache::prewarm): Prewarm FontDatabase in a dispatch queue. Source/WebKit: Add mechanism for caching prewarm information per domain on UI process side. This information is then passed to newly initialized web processes that are being used for the same domain. * UIProcess/WebPageProxy.h: * UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::processForNavigationInternal): Pass prewarm information on process swap to the new process. (WebKit::WebProcessPool::didCollectPrewarmInformation): UI process side cache. * UIProcess/WebProcessPool.h: * UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didCollectPrewarmInformation): * UIProcess/WebProcessProxy.h: * UIProcess/WebProcessProxy.messages.in: * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::close): (WebKit::WebPage::didReceivePolicyDecision): Collect and cache prewarm information for the previous process on process swap. * WebProcess/WebProcess.cpp: (WebKit::WebProcess::prewarmGlobally): Renamed for clarity. (WebKit::WebProcess::prewarmWithDomainInformation): (WebKit::WebProcess::sendPrewarmInformation): * WebProcess/WebProcess.h: * WebProcess/WebProcess.messages.in: Modified Paths trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj trunk/Source/WebCore/page/ProcessWarming.cpp trunk/Source/WebCore/page/ProcessWarming.h trunk/Source/WebCore/platform/graphics/FontCache.cpp trunk/Source/WebCore/platform/graphics/FontCache.h trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp trunk/Source/WebKit/ChangeLog trunk/Source/WebKit/UIProcess/WebPageProxy.h trunk/Source/WebKit/UIProcess/WebProcessPool.cpp trunk/Source/WebKit/UIProcess/WebProcessPool.h trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp trunk/Source/WebKit/UIProcess/WebProcessProxy.h trunk/Source/WebKit/UIProcess/WebProcessProxy.messages.in trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp trunk/Source/WebKit/WebProcess/WebProcess.cpp trunk/Source/WebKit/WebProcess/WebProcess.h trunk/Source/WebKit/WebProcess/WebProcess.messages.in Added Paths trunk/Source/WebCore/page/PrewarmInformation.h Diff Modified: trunk/Source/WebCore/ChangeLog (236958 => 236959) --- trunk/Source/WebCore/ChangeLog 2018-10-09 03:28:31 UTC (rev 236958) +++ trunk/Source/WebCore/ChangeLog 2018-10-09 09:14:37 UTC (rev 236959) @@ -1,3 +1,49 @@ +2018-10-09 Antti Koivisto + +Prewarm FontDatabase on process swap +https://bugs.webkit.org/show_bug.cgi?id=190312 + +Reviewed by Chris Dumez. + +Implement basic prewarming of FontDatabase. When the domain of the first page load on +a new process is known we pass the list of font families previous used by that domain to the +process. This is used to prewarm CoreText font database. Initialization (which involves lots of +blocking IPC) happens outside the main thread so the fonts are ready to use when needed. + +* WebCore.xcodeproj/project.pbxproj: +* page/PrewarmInformation.h: Added. +(WebCore::PrewarmInformation::encode const): +(WebCore::PrewarmInformation::decode): + +Add data structure for prewarm information with encode/decode support. + +* page/ProcessWarming.cpp: +(WebCore::ProcessWarming::collectPrewarmInformation): +(WebCore::ProcessWarming::prewarmWithInformation): + +Prewarming interface to be used from WebKit. + +
[webkit-changes] [236960] trunk/Tools
Title: [236960] trunk/Tools Revision 236960 Author ph...@webkit.org Date 2018-10-09 06:54:57 -0700 (Tue, 09 Oct 2018) Log Message [JHBuild] Update to GStreamer 1.14.4 https://bugs.webkit.org/show_bug.cgi?id=190395 Reviewed by Xabier Rodriguez-Calvar. * gstreamer/jhbuild.modules: Remove patches merged in 1.14.4 and bump version of GStreamer modules. * gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Removed. * gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Removed. * gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Removed. * gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Removed. Modified Paths trunk/Tools/ChangeLog trunk/Tools/gstreamer/jhbuild.modules Removed Paths trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch trunk/Tools/gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch trunk/Tools/gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch trunk/Tools/gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch Diff Modified: trunk/Tools/ChangeLog (236959 => 236960) --- trunk/Tools/ChangeLog 2018-10-09 09:14:37 UTC (rev 236959) +++ trunk/Tools/ChangeLog 2018-10-09 13:54:57 UTC (rev 236960) @@ -1,3 +1,16 @@ +2018-10-09 Philippe Normand + +[JHBuild] Update to GStreamer 1.14.4 +https://bugs.webkit.org/show_bug.cgi?id=190395 + +Reviewed by Xabier Rodriguez-Calvar. + +* gstreamer/jhbuild.modules: Remove patches merged in 1.14.4 and bump version of GStreamer modules. +* gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Removed. +* gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Removed. +* gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Removed. +* gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Removed. + 2018-10-08 Wenson Hsieh [macOS] API test DragAndDropTests.DropColor is failing on macOS 10.12 Modified: trunk/Tools/gstreamer/jhbuild.modules (236959 => 236960) --- trunk/Tools/gstreamer/jhbuild.modules 2018-10-09 09:14:37 UTC (rev 236959) +++ trunk/Tools/gstreamer/jhbuild.modules 2018-10-09 13:54:57 UTC (rev 236960) @@ -51,7 +51,7 @@ - + @@ -66,7 +66,7 @@ - + @@ -77,7 +77,7 @@ - + @@ -87,10 +87,6 @@ - - - - @@ -103,7 +99,7 @@ - + @@ -113,11 +109,11 @@ - + - + Deleted: trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch (236959 => 236960) --- trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch 2018-10-09 09:14:37 UTC (rev 236959) +++ trunk/Tools/gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch 2018-10-09 13:54:57 UTC (rev 236960) @@ -1,45 +0,0 @@ -From 9dc7859184d4b7ad1dd7e2b54704e994dbace329 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Alicia=20Boya=20Garc=C3=ADa?= -Date: Thu, 30 Nov 2017 20:44:23 +0100 -Subject: [PATCH 7/9] matroskademux: Allow Matroska headers to be read more - than once - -This is necessary for MSE, where a new MSE initialization segment may be -appended at any point. These MSE initialization segments consist of an -entire WebM file until the first Cluster element (not included). [1] - -Note that track definitions are ignored on successive headers, they must -match, but this is not checked by matroskademux (look for -`(!demux->tracks_parsed)` in the code). - -Source pads are not altered when the new headers are read. - -This patch has been splitted from the original patch from eocanha in [2]. - -[1] https://www.w3.org/TR/mse-byte-stream-format-webm/ -[2] https://bug334082.bugzilla-attachments.gnome.org/attachment.cgi?id=362212 - -https://bugzilla.gnome.org/show_bug.cgi?id=79 - gst/matroska/matroska-demux.c | 5 + - 1 file changed, 5 insertions(+) - -diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c -index b7e13bb80..24a729485 100644 a/gst/matroska/matroska-demux.c -+++ b/gst/matroska/matroska-demux.c -@@ -4984,6 +4984,11 @@ gst_matroska_demux_parse_id (GstMatroskaDemux * demux, guint32 id, - case GST_MATROSKA_READ_STATE_DATA: - case GST_MATROSKA
[webkit-changes] [236961] trunk
Title: [236961] trunk Revision 236961 Author ph...@webkit.org Date 2018-10-09 08:10:17 -0700 (Tue, 09 Oct 2018) Log Message [GStreamer] Stealing cross-origin video pixel with HLS https://bugs.webkit.org/show_bug.cgi?id=190003 Reviewed by Xabier Rodriguez-Calvar. Source/WebCore: Report the SecurityOrigin of downloaded adaptivedemux (HLS, DASH, SmoothStreaming) fragments as tainted if their origin differs from the manifest SecurityOrigin. SecurityOrigins are stored in the CachedResourceStreamingClient implemented in the internal GStreamer HTTP(S) source element. The implementation is not ideal yet because the fragments download is performed by the WebProcess, until bug 189967 is fixed. When this bug is fixed, the m_hasTaintedOrigin member variable should be removed and all checks be done unconditionally to the webkithttpsrc element which will manage the download of the manifests and fragments. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::loadFull): Reset the m_hasTaintedOrigin value. (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Get the fragment URL from the adaptivedemux stats message and check if its origin is tainted. (WebCore::MediaPlayerPrivateGStreamer::wouldTaintOrigin const): Initial implementation by checking the m_hasTaintedOrigin member variable value. * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: (CachedResourceStreamingClient::responseReceived): Store the resource origin internally so it can be checked later on by webKitSrtcWouldTaintOrigin(). (webKitSrcWouldTaintOrigin): Check given origin against cached origins. This implementation is similar to Cocoa's WebCoreNSURLSession implementation. * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: LayoutTests: * platform/gtk/TestExpectations: Unflag now-passing test. Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/platform/gtk/TestExpectations trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp trunk/Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.h Diff Modified: trunk/LayoutTests/ChangeLog (236960 => 236961) --- trunk/LayoutTests/ChangeLog 2018-10-09 13:54:57 UTC (rev 236960) +++ trunk/LayoutTests/ChangeLog 2018-10-09 15:10:17 UTC (rev 236961) @@ -1,3 +1,12 @@ +2018-10-09 Philippe Normand + +[GStreamer] Stealing cross-origin video pixel with HLS +https://bugs.webkit.org/show_bug.cgi?id=190003 + +Reviewed by Xabier Rodriguez-Calvar. + +* platform/gtk/TestExpectations: Unflag now-passing test. + 2018-10-08 Devin Rousso Fix inspector/canvas/recording.html after r236952 Modified: trunk/LayoutTests/platform/gtk/TestExpectations (236960 => 236961) --- trunk/LayoutTests/platform/gtk/TestExpectations 2018-10-09 13:54:57 UTC (rev 236960) +++ trunk/LayoutTests/platform/gtk/TestExpectations 2018-10-09 15:10:17 UTC (rev 236961) @@ -3495,7 +3495,6 @@ webkit.org/b/187770 media/no-fullscreen-when-hidden.html [ Failure ] webkit.org/b/187994 compositing/backing/backing-store-attachment-fill-forwards-animation.html [ Failure ] -webkit.org/b/187996 http/tests/security/canvas-remote-read-remote-video-hls.html [ Failure ] webkit.org/b/188098 webanimations/accelerated-animation-with-delay.html [ ImageOnlyFailure ] Modified: trunk/Source/WebCore/ChangeLog (236960 => 236961) --- trunk/Source/WebCore/ChangeLog 2018-10-09 13:54:57 UTC (rev 236960) +++ trunk/Source/WebCore/ChangeLog 2018-10-09 15:10:17 UTC (rev 236961) @@ -1,3 +1,41 @@ +2018-10-09 Philippe Normand + +[GStreamer] Stealing cross-origin video pixel with HLS +https://bugs.webkit.org/show_bug.cgi?id=190003 + +Reviewed by Xabier Rodriguez-Calvar. + +Report the SecurityOrigin of downloaded adaptivedemux (HLS, DASH, +SmoothStreaming) fragments as tainted if their origin differs from +the manifest SecurityOrigin. SecurityOrigins are stored in the +CachedResourceStreamingClient implemented in the internal +GStreamer HTTP(S) source element. + +The implementation is not ideal yet because the fragments download +is performed by the WebProcess, until bug 189967 is fixed. When +this bug is fixed, the m_hasTaintedOrigin member variable should +be removed and all checks be done unconditionally to the +webkithttpsrc element which will manage the download of the +manifests and fragments. + +* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: +(WebCore::MediaPlayerPrivateGStreamer::loadFull): Reset the m_hasTaintedOrigin value. +(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Get the +frag
[webkit-changes] [236962] trunk/Source/WTF
Title: [236962] trunk/Source/WTF Revision 236962 Author mark@apple.com Date 2018-10-09 08:31:31 -0700 (Tue, 09 Oct 2018) Log Message Revert temporary asserts for debugging a mysterious ASAN bot crash. https://bugs.webkit.org/show_bug.cgi?id=190396 Reviewed by Yusuke Suzuki. * wtf/StackBounds.cpp: (WTF::StackBounds::newThreadStackBounds): * wtf/StackBounds.h: (WTF::StackBounds::checkConsistency const): Modified Paths trunk/Source/WTF/ChangeLog trunk/Source/WTF/wtf/StackBounds.cpp trunk/Source/WTF/wtf/StackBounds.h Diff Modified: trunk/Source/WTF/ChangeLog (236961 => 236962) --- trunk/Source/WTF/ChangeLog 2018-10-09 15:10:17 UTC (rev 236961) +++ trunk/Source/WTF/ChangeLog 2018-10-09 15:31:31 UTC (rev 236962) @@ -1,3 +1,15 @@ +2018-10-09 Mark Lam + +Revert temporary asserts for debugging a mysterious ASAN bot crash. +https://bugs.webkit.org/show_bug.cgi?id=190396 + +Reviewed by Yusuke Suzuki. + +* wtf/StackBounds.cpp: +(WTF::StackBounds::newThreadStackBounds): +* wtf/StackBounds.h: +(WTF::StackBounds::checkConsistency const): + 2018-10-08 Aditya Keerthi Make a runtime enabled (on-by-default) feature Modified: trunk/Source/WTF/wtf/StackBounds.cpp (236961 => 236962) --- trunk/Source/WTF/wtf/StackBounds.cpp 2018-10-09 15:10:17 UTC (rev 236961) +++ trunk/Source/WTF/wtf/StackBounds.cpp 2018-10-09 15:31:31 UTC (rev 236962) @@ -145,18 +145,6 @@ if (stackDirection() == StackDirection::Upward) std::swap(origin, bound); -// The following set of assertions are only needed for debugging a -// mysterious crash on an ASAN bot that is not reproducible otherwise. -// Will remove after the needed data has been collected. -#if OS(LINUX) -else { -ASSERT(stackDirection() == StackDirection::Downward); -void* currentPosition = ¤tPosition; -ASSERT_WITH_MESSAGE_UNUSED(currentPosition, (currentPosition < origin && currentPosition > bound), "newThreadStackBounds: currentPosition %p origin %p bound %p stackSize %zu", currentPosition, origin, bound, stackSize); -} -#endif -// End of ASAN bot debugging assertions. - return StackBounds { origin, bound }; } Modified: trunk/Source/WTF/wtf/StackBounds.h (236961 => 236962) --- trunk/Source/WTF/wtf/StackBounds.h 2018-10-09 15:10:17 UTC (rev 236961) +++ trunk/Source/WTF/wtf/StackBounds.h 2018-10-09 15:31:31 UTC (rev 236962) @@ -147,18 +147,6 @@ { #if !ASSERT_DISABLED void* currentPosition = ¤tPosition; - -// The following set of assertions are only needed for debugging a -// mysterious crash on an ASAN bot that is not reproducible otherwise. -// Will remove after the needed data has been collected. -#if OS(LINUX) -if (isGrowingDownward()) -ASSERT_WITH_MESSAGE((currentPosition < m_origin && currentPosition > m_bound), "checkConsistency: currentPosition %p m_origin %p m_bound %p stackSize %zu", currentPosition, m_origin, m_bound, (reinterpret_cast(m_origin) - reinterpret_cast(m_bound))); -else -ASSERT_WITH_MESSAGE((currentPosition > m_origin && currentPosition < m_bound), "checkConsistency: currentPosition %p m_origin %p m_bound %p stackSize %zu", currentPosition, m_origin, m_bound, (reinterpret_cast(m_bound) - reinterpret_cast(m_origin))); -#endif // OS(LINUX) -// End of ASAN bot debugging assertions. - ASSERT(m_origin != m_bound); ASSERT(isGrowingDownward() ? (currentPosition < m_origin && currentPosition > m_bound) ___ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes
[webkit-changes] [236963] trunk
Title: [236963] trunk Revision 236963 Author you...@apple.com Date 2018-10-09 08:44:34 -0700 (Tue, 09 Oct 2018) Log Message Add support for IceCandidate stats https://bugs.webkit.org/show_bug.cgi?id=190329 Reviewed by Eric Carlson. Source/ThirdParty/libwebrtc: Export new stats kType values. * Configurations/libwebrtc.iOS.exp: * Configurations/libwebrtc.iOSsim.exp: * Configurations/libwebrtc.mac.exp: Source/WebCore: Convert IceCandidate stats gathered by libwebrtc. Since networkType might be sensitive information, we currently do not expose it. We do not expose address either if it is a host or prflx candidate. Test: webrtc/candidate-stats.html * Modules/mediastream/RTCStatsReport.h: * Modules/mediastream/RTCStatsReport.idl: * Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp: (WebCore::iceCandidateState): (WebCore::fillRTCIceCandidateStats): (WebCore::LibWebRTCStatsCollector::OnStatsDelivered): LayoutTests: * webrtc/candidate-stats-expected.txt: Added. * webrtc/candidate-stats.html: Added. * webrtc/routines.js: * webrtc/video-stats.html: Modified Paths trunk/LayoutTests/ChangeLog trunk/LayoutTests/webrtc/routines.js trunk/LayoutTests/webrtc/video-stats.html trunk/Source/ThirdParty/libwebrtc/ChangeLog trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp trunk/Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp trunk/Source/WebCore/ChangeLog trunk/Source/WebCore/Modules/mediastream/RTCStatsReport.h trunk/Source/WebCore/Modules/mediastream/RTCStatsReport.idl trunk/Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp Added Paths trunk/LayoutTests/webrtc/candidate-stats-expected.txt trunk/LayoutTests/webrtc/candidate-stats.html Diff Modified: trunk/LayoutTests/ChangeLog (236962 => 236963) --- trunk/LayoutTests/ChangeLog 2018-10-09 15:31:31 UTC (rev 236962) +++ trunk/LayoutTests/ChangeLog 2018-10-09 15:44:34 UTC (rev 236963) @@ -1,3 +1,15 @@ +2018-10-09 Youenn Fablet + +Add support for IceCandidate stats +https://bugs.webkit.org/show_bug.cgi?id=190329 + +Reviewed by Eric Carlson. + +* webrtc/candidate-stats-expected.txt: Added. +* webrtc/candidate-stats.html: Added. +* webrtc/routines.js: +* webrtc/video-stats.html: + 2018-10-09 Philippe Normand [GStreamer] Stealing cross-origin video pixel with HLS Added: trunk/LayoutTests/webrtc/candidate-stats-expected.txt (0 => 236963) --- trunk/LayoutTests/webrtc/candidate-stats-expected.txt (rev 0) +++ trunk/LayoutTests/webrtc/candidate-stats-expected.txt 2018-10-09 15:44:34 UTC (rev 236963) @@ -0,0 +1,3 @@ + +PASS ICE candidate data channel stats + Added: trunk/LayoutTests/webrtc/candidate-stats.html (0 => 236963) --- trunk/LayoutTests/webrtc/candidate-stats.html (rev 0) +++ trunk/LayoutTests/webrtc/candidate-stats.html 2018-10-09 15:44:34 UTC (rev 236963) @@ -0,0 +1,41 @@ + + + + +Testing basic video exchange from offerer to receiver + + +