[webkit-changes] [247383] trunk/Source/WebCore

2019-07-11 Thread cdumez
Title: [247383] trunk/Source/WebCore








Revision 247383
Author cdu...@apple.com
Date 2019-07-11 21:36:59 -0700 (Thu, 11 Jul 2019)


Log Message
Fix non-thread safe use of makeWeakPtr() under MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify()
https://bugs.webkit.org/show_bug.cgi?id=199727

Reviewed by Eric Carlson.

Stop calling makeWeakPtr() on a main thread object from a background thread.

* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247382 => 247383)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 04:24:59 UTC (rev 247382)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 04:36:59 UTC (rev 247383)
@@ -1,3 +1,15 @@
+2019-07-11  Chris Dumez  
+
+Fix non-thread safe use of makeWeakPtr() under MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify()
+https://bugs.webkit.org/show_bug.cgi?id=199727
+
+Reviewed by Eric Carlson.
+
+Stop calling makeWeakPtr() on a main thread object from a background thread.
+
+* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
+(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
+
 2019-07-11  Youenn Fablet  
 
 Register a MediaStreamTrack as media producer only if it is a capture track


Modified: trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp (247382 => 247383)

--- trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp	2019-07-12 04:24:59 UTC (rev 247382)
+++ trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp	2019-07-12 04:36:59 UTC (rev 247383)
@@ -1589,7 +1589,7 @@
 
 // Invalidate the video area
 if (m_mediaPlayer) {
-callOnMainThread([weakPtr = makeWeakPtr(*m_mediaPlayer)] {
+callOnMainThread([weakPtr = m_mediaPlayer->m_weakThis] {
 if (weakPtr)
 weakPtr->invalidateFrameView();
 });






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247382] trunk/Source/WebCore

2019-07-11 Thread youenn
Title: [247382] trunk/Source/WebCore








Revision 247382
Author you...@apple.com
Date 2019-07-11 21:24:59 -0700 (Thu, 11 Jul 2019)


Log Message
Register a MediaStreamTrack as media producer only if it is a capture track
https://bugs.webkit.org/show_bug.cgi?id=199566


Addressing post-landing comment to simplify setMuted call.
Unreviewed.


* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247381 => 247382)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 04:22:36 UTC (rev 247381)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 04:24:59 UTC (rev 247382)
@@ -1,5 +1,17 @@
 2019-07-11  Youenn Fablet  
 
+Register a MediaStreamTrack as media producer only if it is a capture track
+https://bugs.webkit.org/show_bug.cgi?id=199566
+
+
+Addressing post-landing comment to simplify setMuted call.
+Unreviewed.
+
+* Modules/mediastream/MediaStreamTrack.cpp:
+(WebCore::MediaStreamTrack::MediaStreamTrack):
+
+2019-07-11  Youenn Fablet  
+
 Protect CoreAudioSharedUnit::m_clients for accessing in different threads simultaneously
 https://bugs.webkit.org/show_bug.cgi?id=199717
 


Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (247381 => 247382)

--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-07-12 04:22:36 UTC (rev 247381)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp	2019-07-12 04:24:59 UTC (rev 247382)
@@ -71,7 +71,7 @@
 
 if (auto document = this->document()) {
 if (document->page() && document->page()->mutedState())
-setMuted(document->page()->mutedState());
+setMuted(true);
 document->addAudioProducer(*this);
 }
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247381] trunk/Source/WebCore

2019-07-11 Thread youenn
Title: [247381] trunk/Source/WebCore








Revision 247381
Author you...@apple.com
Date 2019-07-11 21:22:36 -0700 (Thu, 11 Jul 2019)


Log Message
Protect CoreAudioSharedUnit::m_clients for accessing in different threads simultaneously
https://bugs.webkit.org/show_bug.cgi?id=199717

Reviewed by Eric Carlson.

Add a lock whenever accessing to m_clients.
Manual tests show that audio capture still works.

* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::addClient):
(WebCore::CoreAudioSharedUnit::removeClient):
(WebCore::CoreAudioSharedUnit::forEachClient const):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::CoreAudioSharedUnit::captureFailed):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247380 => 247381)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 02:35:07 UTC (rev 247380)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 04:22:36 UTC (rev 247381)
@@ -1,3 +1,20 @@
+2019-07-11  Youenn Fablet  
+
+Protect CoreAudioSharedUnit::m_clients for accessing in different threads simultaneously
+https://bugs.webkit.org/show_bug.cgi?id=199717
+
+Reviewed by Eric Carlson.
+
+Add a lock whenever accessing to m_clients.
+Manual tests show that audio capture still works.
+
+* platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+(WebCore::CoreAudioSharedUnit::addClient):
+(WebCore::CoreAudioSharedUnit::removeClient):
+(WebCore::CoreAudioSharedUnit::forEachClient const):
+(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
+(WebCore::CoreAudioSharedUnit::captureFailed):
+
 2019-07-11  Chris Dumez  
 
 Drop non thread-safe usage of WeakPtr in PlaybackSessionInterfaceAVKit


Modified: trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp (247380 => 247381)

--- trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp	2019-07-12 02:35:07 UTC (rev 247380)
+++ trunk/Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp	2019-07-12 04:22:36 UTC (rev 247381)
@@ -128,8 +128,11 @@
 void devicesChanged();
 void captureFailed();
 
-Vector> m_clients;
+void forEachClient(const Function& apply) const;
 
+HashSet m_clients;
+mutable RecursiveLock m_clientsLock;
+
 AudioUnit m_ioUnit { nullptr };
 
 // Only read/modified from the IO thread.
@@ -196,16 +199,32 @@
 
 void CoreAudioSharedUnit::addClient(CoreAudioCaptureSource& client)
 {
-m_clients.append(client);
+auto locker = holdLock(m_clientsLock);
+m_clients.add();
 }
 
 void CoreAudioSharedUnit::removeClient(CoreAudioCaptureSource& client)
 {
-m_clients.removeAllMatching([&](const auto& item) {
-return  == ();
-});
+auto locker = holdLock(m_clientsLock);
+m_clients.remove();
 }
 
+void CoreAudioSharedUnit::forEachClient(const Function& apply) const
+{
+Vector clientsCopy;
+{
+auto locker = holdLock(m_clientsLock);
+clientsCopy = copyToVector(m_clients);
+}
+for (auto* client : clientsCopy) {
+auto locker = holdLock(m_clientsLock);
+// Make sure the client has not been destroyed.
+if (!m_clients.contains(client))
+continue;
+apply(*client);
+}
+}
+
 void CoreAudioSharedUnit::setCaptureDevice(String&& persistentID, uint32_t captureDeviceID)
 {
 m_persistentID = WTFMove(persistentID);
@@ -509,10 +528,10 @@
 if (m_volume != 1.0)
 m_microphoneSampleBuffer->applyGain(m_volume);
 
-for (CoreAudioCaptureSource& client : m_clients) {
+forEachClient([&](auto& client) {
 if (client.isProducingData())
 client.audioSamplesAvailable(MediaTime(sampleTime, m_microphoneProcFormat.sampleRate()), m_microphoneSampleBuffer->bufferList(), m_microphoneProcFormat, inNumberFrames);
-}
+});
 return noErr;
 }
 
@@ -656,11 +675,17 @@
 void CoreAudioSharedUnit::captureFailed()
 {
 RELEASE_LOG_ERROR(WebRTC, "CoreAudioSharedUnit::captureFailed - capture failed");
-for (CoreAudioCaptureSource& client : m_clients)
+forEachClient([](auto& client) {
 client.captureFailed();
+});
 
 m_producingCount = 0;
-m_clients.clear();
+
+{
+auto locker = holdLock(m_clientsLock);
+m_clients.clear();
+}
+
 stopInternal();
 cleanupAudioUnit();
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247380] trunk/Source/WebCore

2019-07-11 Thread cdumez
Title: [247380] trunk/Source/WebCore








Revision 247380
Author cdu...@apple.com
Date 2019-07-11 19:35:07 -0700 (Thu, 11 Jul 2019)


Log Message
Drop non thread-safe usage of WeakPtr in PlaybackSessionInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=199698

Reviewed by Eric Carlson.

The PlaybackSessionInterfaceAVKit constructor was making a weakPtr on the UI Thread
of an WebThread object. The WeakPtr would then be used as a data member throughout
the class on the UIThread. This is not thread-safe.

This patch switches to using a raw pointer instead of a WeakPtr. This is a partial
rollout of r243337, which turned the raw pointer into a WeakPtr for hardening
purposes. For extra safety, this patch updates the VideoFullscreenControllerContext
so that it notifies its clients (i.e. PlaybackSessionInterfaceAVKit) that it is
getting destroyed, so that they can null-out their m_playbackSessionModel data
member. This gives the sames guarantees than WeakPtr but in a thread-safe way.

* platform/cocoa/PlaybackSessionModel.h:
(WebCore::PlaybackSessionModelClient::modelDestroyed):
* platform/ios/PlaybackSessionInterfaceAVKit.h:
* platform/ios/PlaybackSessionInterfaceAVKit.mm:
(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceAVKit::modelDestroyed):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h
trunk/Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h
trunk/Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.mm
trunk/Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm




Diff

Modified: trunk/Source/WebCore/ChangeLog (247379 => 247380)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 02:20:51 UTC (rev 247379)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 02:35:07 UTC (rev 247380)
@@ -1,3 +1,34 @@
+2019-07-11  Chris Dumez  
+
+Drop non thread-safe usage of WeakPtr in PlaybackSessionInterfaceAVKit
+https://bugs.webkit.org/show_bug.cgi?id=199698
+
+Reviewed by Eric Carlson.
+
+The PlaybackSessionInterfaceAVKit constructor was making a weakPtr on the UI Thread
+of an WebThread object. The WeakPtr would then be used as a data member throughout
+the class on the UIThread. This is not thread-safe.
+
+This patch switches to using a raw pointer instead of a WeakPtr. This is a partial
+rollout of r243337, which turned the raw pointer into a WeakPtr for hardening
+purposes. For extra safety, this patch updates the VideoFullscreenControllerContext
+so that it notifies its clients (i.e. PlaybackSessionInterfaceAVKit) that it is
+getting destroyed, so that they can null-out their m_playbackSessionModel data
+member. This gives the sames guarantees than WeakPtr but in a thread-safe way.
+
+* platform/cocoa/PlaybackSessionModel.h:
+(WebCore::PlaybackSessionModelClient::modelDestroyed):
+* platform/ios/PlaybackSessionInterfaceAVKit.h:
+* platform/ios/PlaybackSessionInterfaceAVKit.mm:
+(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
+(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
+(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
+(WebCore::PlaybackSessionInterfaceAVKit::modelDestroyed):
+* platform/ios/WebVideoFullscreenControllerAVKit.mm:
+(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):
+(VideoFullscreenControllerContext::addClient):
+(VideoFullscreenControllerContext::removeClient):
+
 2019-07-11  Simon Fraser  
 
 Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.


Modified: trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h (247379 => 247380)

--- trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h	2019-07-12 02:20:51 UTC (rev 247379)
+++ trunk/Source/WebCore/platform/cocoa/PlaybackSessionModel.h	2019-07-12 02:35:07 UTC (rev 247380)
@@ -110,6 +110,7 @@
 virtual void isPictureInPictureSupportedChanged(bool) { }
 virtual void pictureInPictureActiveChanged(bool) { }
 virtual void ensureControlsManager() { }
+virtual void modelDestroyed() { }
 };
 
 }


Modified: trunk/Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h (247379 => 247380)

--- trunk/Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h	2019-07-12 02:20:51 UTC (rev 247379)
+++ trunk/Source/WebCore/platform/ios/PlaybackSessionInterfaceAVKit.h	2019-07-12 02:35:07 UTC (rev 247380)
@@ -77,6 +77,7 @@
 WEBCORE_EXPORT 

[webkit-changes] [247379] trunk/Source/WebCore

2019-07-11 Thread simon . fraser
Title: [247379] trunk/Source/WebCore








Revision 247379
Author simon.fra...@apple.com
Date 2019-07-11 19:20:51 -0700 (Thu, 11 Jul 2019)


Log Message
Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontWithFamilySpecialCase):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247378 => 247379)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 01:13:31 UTC (rev 247378)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 02:20:51 UTC (rev 247379)
@@ -1,3 +1,10 @@
+2019-07-11  Simon Fraser  
+
+Fix builds where HAVE_DESIGN_SYSTEM_UI_FONTS is not defined.
+
+* platform/graphics/cocoa/FontCacheCoreText.cpp:
+(WebCore::fontWithFamilySpecialCase):
+
 2019-07-11  Justin Fan  
 
 Unreviewed build fix.


Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp (247378 => 247379)

--- trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp	2019-07-12 01:13:31 UTC (rev 247378)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp	2019-07-12 02:20:51 UTC (rev 247379)
@@ -1266,6 +1266,11 @@
 if (!cascadeList.isEmpty())
 return createFontForInstalledFonts(cascadeList[0].get(), size, allowUserInstalledFonts);
 }
+#else
+UNUSED_PARAM(family);
+UNUSED_PARAM(fontDescription);
+UNUSED_PARAM(size);
+UNUSED_PARAM(allowUserInstalledFonts);
 #endif
 
 return nullptr;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247378] trunk/Source/WebCore

2019-07-11 Thread justin_fan
Title: [247378] trunk/Source/WebCore








Revision 247378
Author justin_...@apple.com
Date 2019-07-11 18:13:31 -0700 (Thu, 11 Jul 2019)


Log Message
Unreviewed build fix.

* Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp: Missing include.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247377 => 247378)

--- trunk/Source/WebCore/ChangeLog	2019-07-12 01:08:29 UTC (rev 247377)
+++ trunk/Source/WebCore/ChangeLog	2019-07-12 01:13:31 UTC (rev 247378)
@@ -1,3 +1,9 @@
+2019-07-11  Justin Fan  
+
+Unreviewed build fix.
+
+* Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp: Missing include.
+
 2019-07-11  Myles C. Maxfield  
 
 New York font erroneously gets synthetic bold


Modified: trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp (247377 => 247378)

--- trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp	2019-07-12 01:08:29 UTC (rev 247377)
+++ trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp	2019-07-12 01:13:31 UTC (rev 247378)
@@ -30,6 +30,7 @@
 
 #include "WHLSLCallExpression.h"
 #include "WHLSLFunctionDefinition.h"
+#include "WHLSLProgram.h"
 #include "WHLSLVisitor.h"
 #include 
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247377] trunk

2019-07-11 Thread mmaxfield
Title: [247377] trunk








Revision 247377
Author mmaxfi...@apple.com
Date 2019-07-11 18:08:29 -0700 (Thu, 11 Jul 2019)


Log Message
New York font erroneously gets synthetic bold
https://bugs.webkit.org/show_bug.cgi?id=199653


Reviewed by Simon Fraser.

Source/WebCore:

This patch adds support for -apple-system-ui-serif, -apple-system-ui-monospaced,
and -apple-system-ui-rounded, behind an SPI that is off-by-default. We don't want
to expose these fonts to the web because we don't a standardization story for them
yet, but we do want some apps to be able to use them.

WebKit clients who want to use these fonts can set
-[WKPreferences _shouldAllowDesignSystemUIFonts] = YES.

The patch generalizes our existing system-ui infrastructure to handle these three
additional fonts. It also explicitly disables the unsupported dot-prefixed names
so they don't leak out into Web content.

Tests: fast/text/design-system-ui-10.html
   fast/text/design-system-ui-11.html
   fast/text/design-system-ui-12.html
   fast/text/design-system-ui-13.html
   fast/text/design-system-ui-14.html
   fast/text/design-system-ui-15.html
   fast/text/design-system-ui-16.html
   fast/text/design-system-ui-2.html
   fast/text/design-system-ui-3.html
   fast/text/design-system-ui-4.html
   fast/text/design-system-ui-5.html
   fast/text/design-system-ui-6.html
   fast/text/design-system-ui-7.html
   fast/text/design-system-ui-8.html
   fast/text/design-system-ui-9.html
   fast/text/design-system-ui.html

* css/CSSFontFace.cpp:
(WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const):
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::initializeFontStyle):
* page/Settings.yaml:
* platform/graphics/FontDescription.cpp:
(WebCore::m_shouldAllowDesignSystemUIFonts):
(WebCore::m_shouldAllowUserInstalledFonts): Deleted.
* platform/graphics/FontDescription.h:
(WebCore::FontDescription::shouldAllowDesignSystemUIFonts const):
(WebCore::FontDescription::setShouldAllowDesignSystemUIFonts):
(WebCore::FontDescription::operator== const):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):
* platform/graphics/cocoa/FontCacheCoreText.h:
* platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::systemFontUse):
(WebCore::systemFontCascadeList):
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
(WebCore::isSystemFontString): Deleted.
(WebCore::isUIFontTextStyle): Deleted.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont const):
* platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::createSystemUI):
(WebCore::SystemFontDatabaseCoreText::createDesignSystemUI):
(WebCore::SystemFontDatabaseCoreText::createTextStyle):
(WebCore::SystemFontDatabaseCoreText::cascadeList):
(WebCore::SystemFontDatabaseCoreText::applyWeightItalicsAndFallbackBehavior):
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
* platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::platformFontWithFamilySpecialCase):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::platformFontWithFamilySpecialCase):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldAllowDesignSystemUIFonts):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebCore/PAL:

* pal/spi/cocoa/CoreTextSPI.h:

Source/WebKit:

Add the SPI to enable the new fonts.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShouldAllowDesignSystemUIFonts):
(WKPreferencesGetShouldAllowDesignSystemUIFonts):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldAllowDesignSystemUIFonts]):
(-[WKPreferences _setShouldAllowDesignSystemUIFonts:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Source/WTF:

* wtf/Platform.h:

LayoutTests:

* TestExpectations:
* fast/text/design-system-ui-10-expected-mismatch.html: Added.
* fast/text/design-system-ui-10.html: Added.
* fast/text/design-system-ui-11-expected-mismatch.html: Added.
* fast/text/design-system-ui-11.html: Added.
* fast/text/design-system-ui-12-expected-mismatch.html: Added.
* fast/text/design-system-ui-12.html: Added.
* fast/text/design-system-ui-13-expected-mismatch.html: Added.
* fast/text/design-system-ui-13.html: Added.
* fast/text/design-system-ui-14-expected-mismatch.html: Added.
* fast/text/design-system-ui-14.html: Added.
* fast/text/design-system-ui-15-expected-mismatch.html: Added.
* 

[webkit-changes] [247376] trunk/LayoutTests

2019-07-11 Thread clopez
Title: [247376] trunk/LayoutTests








Revision 247376
Author clo...@igalia.com
Date 2019-07-11 17:49:53 -0700 (Thu, 11 Jul 2019)


Log Message
[GTK][WPE] Rebaseline css3/blending tests with an empty homedir.

It seems this tests are sensible to some configuration of some
library as they produce different output (the layers with more left
margin) depending on that. The test pass on both cases, but the
check with the expected result fails, so it is flagged as failing.

This rebaselines the results to those that happen when running with
an empty/temporal homedir on Debian 10 to match what happens on the
bots. For more info see bugs 169916 and 199738.

Unreviewed gardening commit.

* platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
* platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
* platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png:
* platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt:
* platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
* platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
* platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
* platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
* platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
* platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
* platform/wpe/TestExpectations: css3/blending/svg-isolation-isolated-group.html passes with an empty homedir.
* platform/wpe/css3/blending/svg-blend-layer-blend-expected.png:
* platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt:
* platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png:
* platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt:
* platform/wpe/css3/blending/svg-blend-layer-filter-expected.png:
* platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt:
* platform/wpe/css3/blending/svg-blend-layer-mask-expected.png:
* platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt:
* platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png:
* platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/gtk/TestExpectations
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-blend-expected.png
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-filter-expected.png
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-mask-expected.png
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png
trunk/LayoutTests/platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt
trunk/LayoutTests/platform/wpe/TestExpectations
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-blend-expected.png
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-filter-expected.png
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-mask-expected.png
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png
trunk/LayoutTests/platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (247375 => 247376)

--- trunk/LayoutTests/ChangeLog	2019-07-11 23:58:35 UTC (rev 247375)
+++ trunk/LayoutTests/ChangeLog	2019-07-12 00:49:53 UTC (rev 247376)
@@ -1,3 +1,40 @@
+2019-07-11  Carlos Alberto Lopez Perez  
+
+[GTK][WPE] Rebaseline css3/blending tests with an empty homedir.
+
+It seems this tests are sensible to some configuration of some
+library as they produce different output (the layers with more left
+margin) depending on that. The test pass on both cases, but the
+check with the expected result fails, so it is flagged as failing.
+
+This rebaselines the results to those that happen when running with
+an empty/temporal homedir on Debian 10 to match what happens on the
+bots. For more info see bugs 169916 and 199738.
+
+Unreviewed gardening commit.
+
+* platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
+* platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
+* 

[webkit-changes] [247375] trunk/Source/WebKit

2019-07-11 Thread cdumez
Title: [247375] trunk/Source/WebKit








Revision 247375
Author cdu...@apple.com
Date 2019-07-11 16:58:35 -0700 (Thu, 11 Jul 2019)


Log Message
ASSERTION FAILED: RunLoop::isMain() under IPC::Connection::sendWithAsyncReply()
https://bugs.webkit.org/show_bug.cgi?id=199734


Reviewed by Geoffrey Garen.

It appears WKProcessTaskStateObserverDelegate's taskStateDidChange handler can get called
on a background thread so we need to make sure we go back to the main thread before we
go into WebKit and do IPC.

* Shared/Cocoa/ProcessTaskStateObserver.mm:
(-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (247374 => 247375)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 23:47:06 UTC (rev 247374)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 23:58:35 UTC (rev 247375)
@@ -1,3 +1,18 @@
+2019-07-11  Chris Dumez  
+
+ASSERTION FAILED: RunLoop::isMain() under IPC::Connection::sendWithAsyncReply()
+https://bugs.webkit.org/show_bug.cgi?id=199734
+
+
+Reviewed by Geoffrey Garen.
+
+It appears WKProcessTaskStateObserverDelegate's taskStateDidChange handler can get called
+on a background thread so we need to make sure we go back to the main thread before we
+go into WebKit and do IPC.
+
+* Shared/Cocoa/ProcessTaskStateObserver.mm:
+(-[WKProcessTaskStateObserverDelegate process:taskStateDidChange:]):
+
 2019-07-11  Sihui Liu  
 
 StorageArea should not be destructed on the main thread


Modified: trunk/Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.mm (247374 => 247375)

--- trunk/Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.mm	2019-07-11 23:47:06 UTC (rev 247374)
+++ trunk/Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.mm	2019-07-11 23:58:35 UTC (rev 247375)
@@ -47,8 +47,10 @@
 {
 RELEASE_LOG(ProcessSuspension, "%p -[WKProcessTaskStateObserverDelegate process:taskStateDidChange:], process(%p), newState(%d)", self, process, (int)newState);
 
-if (self.taskStateChangedCallback)
-self.taskStateChangedCallback(newState);
+dispatch_async(dispatch_get_main_queue(), ^{
+if (self.taskStateChangedCallback)
+self.taskStateChangedCallback(newState);
+});
 }
 @end
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247374] trunk/LayoutTests

2019-07-11 Thread cdumez
Title: [247374] trunk/LayoutTests








Revision 247374
Author cdu...@apple.com
Date 2019-07-11 16:47:06 -0700 (Thu, 11 Jul 2019)


Log Message
[iOS] fast/events/ios/rotation/orientationchange-event-listener-on.body.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=199732


Reviewed by Alex Christensen.

Stop logging in each event listener to not be reliant on the order in which listener are called.
Instead, simply make sure all event listeners that should be called were actually called.

* fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt:
* fast/events/ios/rotation/orientationchange-event-listener-on.body.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt
trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html




Diff

Modified: trunk/LayoutTests/ChangeLog (247373 => 247374)

--- trunk/LayoutTests/ChangeLog	2019-07-11 23:30:02 UTC (rev 247373)
+++ trunk/LayoutTests/ChangeLog	2019-07-11 23:47:06 UTC (rev 247374)
@@ -1,3 +1,17 @@
+2019-07-11  Chris Dumez  
+
+[iOS] fast/events/ios/rotation/orientationchange-event-listener-on.body.html is flaky
+https://bugs.webkit.org/show_bug.cgi?id=199732
+
+
+Reviewed by Alex Christensen.
+
+Stop logging in each event listener to not be reliant on the order in which listener are called.
+Instead, simply make sure all event listeners that should be called were actually called.
+
+* fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt:
+* fast/events/ios/rotation/orientationchange-event-listener-on.body.html:
+
 2019-07-11  Ryosuke Niwa  
 
 Make the test added in r247327 more reliable.


Modified: trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt (247373 => 247374)

--- trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt	2019-07-11 23:30:02 UTC (rev 247373)
+++ trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body-expected.txt	2019-07-11 23:47:06 UTC (rev 247374)
@@ -4,11 +4,8 @@
 
 
 Before rotation
-PASS In body's onorientationchange event handler
-PASS In window's orientationchange event listener
-PASS In body's onresize event handler
-PASS In window's resize event listener
 After rotation
+PASS eventListenerCalls is 4
 PASS successfullyParsed is true
 
 TEST COMPLETE


Modified: trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html (247373 => 247374)

--- trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html	2019-07-11 23:30:02 UTC (rev 247373)
+++ trunk/LayoutTests/fast/events/ios/rotation/orientationchange-event-listener-on.body.html	2019-07-11 23:47:06 UTC (rev 247374)
@@ -30,34 +30,38 @@
 
 testRunner.runUIScript(getRotationUIScript(), function(result) {
 debug('After rotation');
-
+shouldBe("eventListenerCalls", "4");
 finishJSTest();
 });
 }
+
+eventListenerCalls = 0;
 window.addEventListener('resize', function() {
-testPassed("In window's resize event listener");
+++eventListenerCalls;
 }, false);
 
 window.addEventListener('orientationchange', function() {
-testPassed("In window's orientationchange event listener");
+++eventListenerCalls;
 }, false);
 
 document.body.addEventListener('resize', function() {
 testFailed("In body's resize event listener");
+++eventListenerCalls;
 }, false);
 
 document.body.addEventListener('orientationchange', function() {
 testFailed("In body's orientationchange event listener");
+++eventListenerCalls;
 }, false);
 
 function bodyOrientationChange()
 {
-testPassed("In body's onorientationchange event handler");
+++eventListenerCalls;
 }
 
 function bodyResize()
 {
-testPassed("In body's onresize event handler");
+++eventListenerCalls;
 }
 
 window.addEventListener('load', doTest, false);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247373] trunk/LayoutTests

2019-07-11 Thread rniwa
Title: [247373] trunk/LayoutTests








Revision 247373
Author rn...@webkit.org
Date 2019-07-11 16:30:02 -0700 (Thu, 11 Jul 2019)


Log Message
Make the test added in r247327 more reliable.

* editing/selection/ios/autoscroll-with-top-content-inset-2.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/editing/selection/ios/autoscroll-with-top-content-inset-2.html




Diff

Modified: trunk/LayoutTests/ChangeLog (247372 => 247373)

--- trunk/LayoutTests/ChangeLog	2019-07-11 23:18:12 UTC (rev 247372)
+++ trunk/LayoutTests/ChangeLog	2019-07-11 23:30:02 UTC (rev 247373)
@@ -1,3 +1,9 @@
+2019-07-11  Ryosuke Niwa  
+
+Make the test added in r247327 more reliable.
+
+* editing/selection/ios/autoscroll-with-top-content-inset-2.html:
+
 2019-07-11  Russell Epstein  
 
 Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.


Modified: trunk/LayoutTests/editing/selection/ios/autoscroll-with-top-content-inset-2.html (247372 => 247373)

--- trunk/LayoutTests/editing/selection/ios/autoscroll-with-top-content-inset-2.html	2019-07-11 23:18:12 UTC (rev 247372)
+++ trunk/LayoutTests/editing/selection/ios/autoscroll-with-top-content-inset-2.html	2019-07-11 23:30:02 UTC (rev 247373)
@@ -22,6 +22,7 @@
 window.scrollTo(0, 0);
 await UIHelper.ensurePresentationUpdate();
 await UIHelper.enterText('hello');
+await UIHelper.ensurePresentationUpdate();
 
 const keyboardRect = await UIHelper.inputViewBounds();
 const scrollTop = document.scrollingElement.scrollTop;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247372] trunk/Tools

2019-07-11 Thread aakash_jain
Title: [247372] trunk/Tools








Revision 247372
Author aakash_j...@apple.com
Date 2019-07-11 16:18:12 -0700 (Thu, 11 Jul 2019)


Log Message
Unreviewed follow-up fix to r247364.
[ews-build] Add build step to clean up .git/index.lock file
https://bugs.webkit.org/show_bug.cgi?id=199722

* BuildSlaveSupport/ews-build/steps.py:
(CheckOutSource): CheckOutSource should not haltOnFailure since CleanUpGitIndexLock step needs
to be run after this step.

Modified Paths

trunk/Tools/BuildSlaveSupport/ews-build/steps.py
trunk/Tools/ChangeLog




Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps.py (247371 => 247372)

--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2019-07-11 22:53:59 UTC (rev 247371)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2019-07-11 23:18:12 UTC (rev 247372)
@@ -89,6 +89,7 @@
 class CheckOutSource(git.Git):
 name = 'clean-and-update-working-directory'
 CHECKOUT_DELAY_AND_MAX_RETRIES_PAIR = (0, 2)
+haltOnFailure = False
 
 def __init__(self, **kwargs):
 self.repourl = 'https://git.webkit.org/git/WebKit.git'


Modified: trunk/Tools/ChangeLog (247371 => 247372)

--- trunk/Tools/ChangeLog	2019-07-11 22:53:59 UTC (rev 247371)
+++ trunk/Tools/ChangeLog	2019-07-11 23:18:12 UTC (rev 247372)
@@ -1,3 +1,13 @@
+2019-07-11  Aakash Jain  
+
+Unreviewed follow-up fix to r247364.
+[ews-build] Add build step to clean up .git/index.lock file
+https://bugs.webkit.org/show_bug.cgi?id=199722
+
+* BuildSlaveSupport/ews-build/steps.py:
+(CheckOutSource): CheckOutSource should not haltOnFailure since CleanUpGitIndexLock step needs
+to be run after this step.
+
 2019-07-11  Yusuke Suzuki  
 
 Flaky API Test TestWTF.bmalloc.ScavengedMemoryShouldBeReused






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247371] trunk/LayoutTests

2019-07-11 Thread tsavell
Title: [247371] trunk/LayoutTests








Revision 247371
Author tsav...@apple.com
Date 2019-07-11 15:53:59 -0700 (Thu, 11 Jul 2019)


Log Message
Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.
https://bugs.webkit.org/show_bug.cgi?id=199731

Unreviewed Test Gardening

Patch by Russell Epstein  on 2019-07-11

* platform/ios-wk2/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/ios-wk2/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (247370 => 247371)

--- trunk/LayoutTests/ChangeLog	2019-07-11 22:26:25 UTC (rev 247370)
+++ trunk/LayoutTests/ChangeLog	2019-07-11 22:53:59 UTC (rev 247371)
@@ -1,3 +1,12 @@
+2019-07-11  Russell Epstein  
+
+Layout Test fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html is Failing Consistently on iOS-WK2.
+https://bugs.webkit.org/show_bug.cgi?id=199731
+
+Unreviewed Test Gardening
+
+* platform/ios-wk2/TestExpectations:
+
 2019-07-11  Justin Fan  
 
 [WebGPU] Implement GPUError and error scopes


Modified: trunk/LayoutTests/platform/ios-wk2/TestExpectations (247370 => 247371)

--- trunk/LayoutTests/platform/ios-wk2/TestExpectations	2019-07-11 22:26:25 UTC (rev 247370)
+++ trunk/LayoutTests/platform/ios-wk2/TestExpectations	2019-07-11 22:53:59 UTC (rev 247371)
@@ -1336,7 +1336,7 @@
 
 webkit.org/b/199013 [ Debug ] imported/w3c/web-platform-tests/websockets/Create-Secure-verify-url-set-non-default-port.any.html [ Pass Failure ]
 
-webkit.org/b/196495 fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html [ Pass Failure ]
+webkit.org/b/196495 fast/viewport/ios/viewport-shrink-to-fit-on-new-navigation.html [ Failure ]
 
 webkit.org/b/199071 [ Release ] imported/blink/fast/css/user-select-none.html [ Pass ImageOnlyFailure ]
 
@@ -1362,4 +1362,4 @@
 fast/scrolling/ios/hit-testing-iframe-006.html [ ImageOnlyFailure ]
 
 #  fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html is timing out
-fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html [ Pass Timeout ]
\ No newline at end of file
+fast/scrolling/ios/body-overflow-hidden-height-100-percent-keyboard.html [ Pass Timeout ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247370] trunk/Source/WebKit

2019-07-11 Thread sihui_liu
Title: [247370] trunk/Source/WebKit








Revision 247370
Author sihui_...@apple.com
Date 2019-07-11 15:26:25 -0700 (Thu, 11 Jul 2019)


Log Message
StorageArea should not be destructed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=199713


Reviewed by Alex Christensen.

After r246079, LocalStorageNameSpace could be destructed on the main thread and it may hold the last reference
to StorageArea. Then we saw the crashes that StorageArea was wrongly destructed on the main thread.

* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::~NetworkSession):
* NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::waitUntilTasksFinished):
(WebKit::StorageManager::waitUntilWritesFinished): Deleted.
* NetworkProcess/WebStorage/StorageManager.h:

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp
trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp
trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h




Diff

Modified: trunk/Source/WebKit/ChangeLog (247369 => 247370)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 22:22:57 UTC (rev 247369)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 22:26:25 UTC (rev 247370)
@@ -1,3 +1,21 @@
+2019-07-11  Sihui Liu  
+
+StorageArea should not be destructed on the main thread
+https://bugs.webkit.org/show_bug.cgi?id=199713
+
+
+Reviewed by Alex Christensen.
+
+After r246079, LocalStorageNameSpace could be destructed on the main thread and it may hold the last reference 
+to StorageArea. Then we saw the crashes that StorageArea was wrongly destructed on the main thread.
+
+* NetworkProcess/NetworkSession.cpp:
+(WebKit::NetworkSession::~NetworkSession):
+* NetworkProcess/WebStorage/StorageManager.cpp:
+(WebKit::StorageManager::waitUntilTasksFinished):
+(WebKit::StorageManager::waitUntilWritesFinished): Deleted.
+* NetworkProcess/WebStorage/StorageManager.h:
+
 2019-07-11  Tim Horton  
 
 Null deref of Range under WebPage::startAutoscrollAtPosition


Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (247369 => 247370)

--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2019-07-11 22:22:57 UTC (rev 247369)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp	2019-07-11 22:26:25 UTC (rev 247370)
@@ -95,7 +95,7 @@
 NetworkSession::~NetworkSession()
 {
 m_storageManager->resume();
-m_storageManager->waitUntilWritesFinished();
+m_storageManager->waitUntilTasksFinished();
 }
 
 void NetworkSession::invalidateAndCancel()


Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp (247369 => 247370)

--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp	2019-07-11 22:22:57 UTC (rev 247369)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.cpp	2019-07-11 22:26:25 UTC (rev 247370)
@@ -907,7 +907,7 @@
 });
 }
 
-void StorageManager::waitUntilWritesFinished()
+void StorageManager::waitUntilTasksFinished()
 {
 BinarySemaphore semaphore;
 m_queue->dispatch([this, ] {
@@ -920,6 +920,8 @@
 for (auto& connectionStorageAreaPair : connectionAndStorageMapIDPairsToRemove)
 m_storageAreasByConnection.remove(connectionStorageAreaPair);
 
+m_localStorageNamespaces.clear();
+
 semaphore.signal();
 });
 semaphore.wait();


Modified: trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h (247369 => 247370)

--- trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h	2019-07-11 22:22:57 UTC (rev 247369)
+++ trunk/Source/WebKit/NetworkProcess/WebStorage/StorageManager.h	2019-07-11 22:26:25 UTC (rev 247370)
@@ -57,7 +57,7 @@
 void cloneSessionStorageNamespace(uint64_t storageNamespaceID, uint64_t newStorageNamespaceID);
 
 void processDidCloseConnection(IPC::Connection&);
-void waitUntilWritesFinished();
+void waitUntilTasksFinished();
 void suspend(CompletionHandler&&);
 void resume();
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247369] trunk/Source/WebKit

2019-07-11 Thread timothy_horton
Title: [247369] trunk/Source/WebKit








Revision 247369
Author timothy_hor...@apple.com
Date 2019-07-11 15:22:57 -0700 (Thu, 11 Jul 2019)


Log Message
Null deref of Range under WebPage::startAutoscrollAtPosition
https://bugs.webkit.org/show_bug.cgi?id=199724


Reviewed by Dean Jackson.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::startAutoscrollAtPosition):
Refactor this function to be early-return-y, and add one more
early return if the Range is null.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (247368 => 247369)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 21:56:32 UTC (rev 247368)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 22:22:57 UTC (rev 247369)
@@ -1,3 +1,16 @@
+2019-07-11  Tim Horton  
+
+Null deref of Range under WebPage::startAutoscrollAtPosition
+https://bugs.webkit.org/show_bug.cgi?id=199724
+
+
+Reviewed by Dean Jackson.
+
+* WebProcess/WebPage/ios/WebPageIOS.mm:
+(WebKit::WebPage::startAutoscrollAtPosition):
+Refactor this function to be early-return-y, and add one more
+early return if the Range is null.
+
 2019-07-11  Pablo Saavedra  
 
 [WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF


Modified: trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm (247368 => 247369)

--- trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm	2019-07-11 21:56:32 UTC (rev 247368)
+++ trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm	2019-07-11 22:22:57 UTC (rev 247369)
@@ -1763,19 +1763,23 @@
 
 void WebPage::startAutoscrollAtPosition(const WebCore::FloatPoint& positionInWindow)
 {
-if (m_focusedElement && m_focusedElement->renderer())
+if (m_focusedElement && m_focusedElement->renderer()) {
 m_page->mainFrame().eventHandler().startSelectionAutoscroll(m_focusedElement->renderer(), positionInWindow);
-else {
-Frame& frame = m_page->focusController().focusedOrMainFrame();
-VisibleSelection selection = frame.selection().selection();
-if (selection.isRange()) {
-RefPtr range = frame.selection().toNormalizedRange();
-Node& node = range->startContainer();
-auto* renderer = node.renderer();
-if (renderer)
-m_page->mainFrame().eventHandler().startSelectionAutoscroll(renderer, positionInWindow);
-}
+return;
 }
+
+Frame& frame = m_page->focusController().focusedOrMainFrame();
+VisibleSelection selection = frame.selection().selection();
+if (!selection.isRange())
+return;
+RefPtr range = frame.selection().toNormalizedRange();
+if (!range)
+return;
+auto* renderer = range->startContainer().renderer();
+if (!renderer)
+return;
+
+m_page->mainFrame().eventHandler().startSelectionAutoscroll(renderer, positionInWindow);
 }
 
 void WebPage::cancelAutoscroll()






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247368] trunk/Tools

2019-07-11 Thread ysuzuki
Title: [247368] trunk/Tools








Revision 247368
Author ysuz...@apple.com
Date 2019-07-11 14:56:32 -0700 (Thu, 11 Jul 2019)


Log Message
Flaky API Test TestWTF.bmalloc.ScavengedMemoryShouldBeReused
https://bugs.webkit.org/show_bug.cgi?id=199524


Reviewed by Saam Barati.

This test is white-box one and it has strong assumption how IsoHeap allocates pages.
But this test has several problems.

1. IsoPage::numObjects is not the exact number of how many we allocate objects. This
   number is calculated by pageSize / sizeof(T), and this does not account the header
   size of IsoPage. So, # of objects per IsoPage is less than numObjects. Since sizeof(double)
   is very small, we can have many objects in one IsoPage. As a result, we need a large
   bitmap in IsoPage. This reduces # of objects in IsoPage largely. So, `ptrs.size()` becomes
   less than numObjects.

2. We now have lower tier of allocation in IsoHeap. It means that we allocate 8 objects in
   shared page (page is shared, but memory is pinned for a specific type) before using IsoHeap's
   page. This also makes the intention of this test wrong.

Due to (1), we access OoB of ptrs vector, passing a garbage to IsoHeap::deallocate, and crashing.

We make this test robust while we still keep this test white-box one to test the critical feature
of IsoHeap. We first exhaust lower tier of IsoHeap, and after that, start testing the memory. We
allocate many pointers, deallocate them, allocate one pointer while keeping pointers in the lower
tier live, and check whether the deallocated memory is reused.

* TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:
(TEST):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp




Diff

Modified: trunk/Tools/ChangeLog (247367 => 247368)

--- trunk/Tools/ChangeLog	2019-07-11 21:51:24 UTC (rev 247367)
+++ trunk/Tools/ChangeLog	2019-07-11 21:56:32 UTC (rev 247368)
@@ -1,3 +1,35 @@
+2019-07-11  Yusuke Suzuki  
+
+Flaky API Test TestWTF.bmalloc.ScavengedMemoryShouldBeReused
+https://bugs.webkit.org/show_bug.cgi?id=199524
+
+
+Reviewed by Saam Barati.
+
+This test is white-box one and it has strong assumption how IsoHeap allocates pages.
+But this test has several problems.
+
+1. IsoPage::numObjects is not the exact number of how many we allocate objects. This
+   number is calculated by pageSize / sizeof(T), and this does not account the header
+   size of IsoPage. So, # of objects per IsoPage is less than numObjects. Since sizeof(double)
+   is very small, we can have many objects in one IsoPage. As a result, we need a large
+   bitmap in IsoPage. This reduces # of objects in IsoPage largely. So, `ptrs.size()` becomes
+   less than numObjects.
+
+2. We now have lower tier of allocation in IsoHeap. It means that we allocate 8 objects in
+   shared page (page is shared, but memory is pinned for a specific type) before using IsoHeap's
+   page. This also makes the intention of this test wrong.
+
+Due to (1), we access OoB of ptrs vector, passing a garbage to IsoHeap::deallocate, and crashing.
+
+We make this test robust while we still keep this test white-box one to test the critical feature
+of IsoHeap. We first exhaust lower tier of IsoHeap, and after that, start testing the memory. We
+allocate many pointers, deallocate them, allocate one pointer while keeping pointers in the lower
+tier live, and check whether the deallocated memory is reused.
+
+* TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp:
+(TEST):
+
 2019-07-11  Pablo Saavedra  
 
 [WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF


Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp (247367 => 247368)

--- trunk/Tools/TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp	2019-07-11 21:51:24 UTC (rev 247367)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/bmalloc/IsoHeap.cpp	2019-07-11 21:56:32 UTC (rev 247368)
@@ -313,10 +313,17 @@
 static IsoHeap heap;
 
 auto run = [] (unsigned numPagesToCommit) {
-auto* ptr1 = heap.allocate();
-
+std::vector lowerTierPtrs;
 std::vector ptrs;
 
+// Let's exhaust the capacity of the lower tier.
+for (unsigned i = 0; i < IsoPage::numObjects; ++i) {
+void* ptr = heap.allocate();
+CHECK(ptr);
+lowerTierPtrs.push_back(ptr);
+}
+
+// After that, allocating pointers in the upper tier.
 for (unsigned i = 0; ;i++) {
 void* ptr = heap.allocate();
 CHECK(ptr);
@@ -325,24 +332,33 @@
 break;
 }
 
-std::set uniquedPtrs = toptrset(ptrs);
+std::set uniquedPtrsOfUpperTiers = toptrset(ptrs);
+CHECK(ptrs.size() == uniquedPtrsOfUpperTiers.size());
 
-heap.deallocate(ptr1);
-for (unsigned i = 0; i < IsoPage::numObjects - 1; i++) {
-

[webkit-changes] [247366] trunk

2019-07-11 Thread justin_fan
Title: [247366] trunk








Revision 247366
Author justin_...@apple.com
Date 2019-07-11 14:32:06 -0700 (Thu, 11 Jul 2019)


Log Message
[WebGPU] Implement GPUError and error scopes
https://bugs.webkit.org/show_bug.cgi?id=199655

Reviewed by Myles C. Maxfield.

Source/WebCore:

Add GPUErrorFilter, GPUError, and the ability to push and pop error scopes on a GPUDevice.
This will allow us to check for WebGPU errors from _javascript_.
Currently, only some GPUBuffer creation errors are reported for testing; more errors will follow in later patches.

Test: webgpu/error-scopes-test.html

* Modules/webgpu/GPUErrorFilter.idl: Added.
* Modules/webgpu/GPUOutOfMemoryError.idl: Added.
* Modules/webgpu/GPUValidationError.idl: Added.
* Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::pushErrorScope):
(WebCore::WebGPUDevice::popErrorScope): Resolve the Promise here, since GPUDevice shouldn't worry about DOM layer.
* Modules/webgpu/WebGPUDevice.h:
* Modules/webgpu/WebGPUDeviceErrorScopes.cpp: Added.
(WebCore::WebGPUDeviceErrorScopes::pushErrorScope): Delegates to WebGPUDevice.
(WebCore::WebGPUDeviceErrorScopes::popErrorScope): Ditto.
* Modules/webgpu/WebGPUDeviceErrorScopes.h: Added.
* Modules/webgpu/WebGPUDeviceErrorScopes.idl: Added.
* platform/graphics/gpu/GPUBuffer.h:
* platform/graphics/gpu/GPUDevice.cpp: The actual error stack lives here.
(WebCore::GPUDevice::pushErrorScope):
(WebCore::GPUDevice::popErrorScope): Calls a callback with a GPUError, if any.
(WebCore::GPUDevice::registerError): Actually creates GPUErrors.
* platform/graphics/gpu/GPUDevice.h:
* platform/graphics/gpu/GPUError.cpp: Added.
(WebCore::createError): Factory function for various error types.
* platform/graphics/gpu/GPUError.h: Added.
* platform/graphics/gpu/GPUErrorFilter.h: Added.
* platform/graphics/gpu/GPUOutOfMemoryError.h: Added.
(WebCore::GPUOutOfMemoryError::create):
* platform/graphics/gpu/GPUValidationError.cpp: Added.
(WebCore::GPUValidationError::create):
(WebCore::GPUValidationError::GPUValidationError):
* platform/graphics/gpu/GPUValidationError.h: Added.
(WebCore::GPUValidationError::message const):
* platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
(WebCore::GPUBuffer::validateBufferUsage): Create an actual GPUValidationError :)
(WebCore::GPUBuffer::tryCreate): Create GPUOutOfMemoryErrors where appropriate.

Add file/name references:
* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

Missing includes:
* Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp:

LayoutTests:

Add a test to cover the cases outlined in the WebGPU error handling design doc.

* webgpu/error-scopes-test-expected.txt: Added.
* webgpu/error-scopes-test.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources-input.xcfilelist
trunk/Source/WebCore/DerivedSources-output.xcfilelist
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp
trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.cpp
trunk/Source/WebCore/Modules/webgpu/WebGPUDevice.h
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/js/WebCoreBuiltinNames.h
trunk/Source/WebCore/platform/graphics/gpu/GPUBuffer.h
trunk/Source/WebCore/platform/graphics/gpu/GPUDevice.cpp
trunk/Source/WebCore/platform/graphics/gpu/GPUDevice.h
trunk/Source/WebCore/platform/graphics/gpu/cocoa/GPUBufferMetal.mm


Added Paths

trunk/LayoutTests/webgpu/error-scopes-test-expected.txt
trunk/LayoutTests/webgpu/error-scopes-test.html
trunk/Source/WebCore/Modules/webgpu/GPUErrorFilter.idl
trunk/Source/WebCore/Modules/webgpu/GPUOutOfMemoryError.idl
trunk/Source/WebCore/Modules/webgpu/GPUValidationError.idl
trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.cpp
trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.h
trunk/Source/WebCore/Modules/webgpu/WebGPUDeviceErrorScopes.idl
trunk/Source/WebCore/platform/graphics/gpu/GPUError.cpp
trunk/Source/WebCore/platform/graphics/gpu/GPUError.h
trunk/Source/WebCore/platform/graphics/gpu/GPUErrorFilter.h
trunk/Source/WebCore/platform/graphics/gpu/GPUOutOfMemoryError.h
trunk/Source/WebCore/platform/graphics/gpu/GPUValidationError.cpp
trunk/Source/WebCore/platform/graphics/gpu/GPUValidationError.h




Diff

Modified: trunk/LayoutTests/ChangeLog (247365 => 247366)

--- trunk/LayoutTests/ChangeLog	2019-07-11 21:15:24 UTC (rev 247365)
+++ trunk/LayoutTests/ChangeLog	2019-07-11 21:32:06 UTC (rev 247366)
@@ -1,3 +1,15 @@
+2019-07-11  Justin Fan  
+
+[WebGPU] Implement GPUError and error scopes
+https://bugs.webkit.org/show_bug.cgi?id=199655
+
+Reviewed by Myles C. Maxfield.
+
+Add a test to cover the cases outlined in the WebGPU error handling design doc.
+
+* 

[webkit-changes] [247365] trunk/Source/WebCore

2019-07-11 Thread timothy_horton
Title: [247365] trunk/Source/WebCore








Revision 247365
Author timothy_hor...@apple.com
Date 2019-07-11 14:15:24 -0700 (Thu, 11 Jul 2019)


Log Message
Null deref of RenderView under FrameView::setNeedsCompositingConfigurationUpdate
https://bugs.webkit.org/show_bug.cgi?id=199723


Reviewed by Simon Fraser.

* page/FrameView.cpp:
(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
Add a null-check; it looks like it is possible to get here by dismissing
the find overlay (or other page overlay) at an inopportune time.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/FrameView.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247364 => 247365)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 21:12:39 UTC (rev 247364)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 21:15:24 UTC (rev 247365)
@@ -1,3 +1,16 @@
+2019-07-11  Tim Horton  
+
+Null deref of RenderView under FrameView::setNeedsCompositingConfigurationUpdate
+https://bugs.webkit.org/show_bug.cgi?id=199723
+
+
+Reviewed by Simon Fraser.
+
+* page/FrameView.cpp:
+(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
+Add a null-check; it looks like it is possible to get here by dismissing
+the find overlay (or other page overlay) at an inopportune time.
+
 2019-07-11  Chris Dumez  
 
 Pages using Google Tag Manager Google's anti-flicker optimization may take ~5 seconds to do initial paint


Modified: trunk/Source/WebCore/page/FrameView.cpp (247364 => 247365)

--- trunk/Source/WebCore/page/FrameView.cpp	2019-07-11 21:12:39 UTC (rev 247364)
+++ trunk/Source/WebCore/page/FrameView.cpp	2019-07-11 21:15:24 UTC (rev 247365)
@@ -2921,7 +2921,7 @@
 void FrameView::setNeedsCompositingConfigurationUpdate()
 {
 RenderView* renderView = this->renderView();
-if (renderView->usesCompositing()) {
+if (renderView && renderView->usesCompositing()) {
 if (auto* rootLayer = renderView->layer())
 rootLayer->setNeedsCompositingConfigurationUpdate();
 renderView->compositor().scheduleCompositingLayerUpdate();






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247364] trunk/Tools

2019-07-11 Thread aakash_jain
Title: [247364] trunk/Tools








Revision 247364
Author aakash_j...@apple.com
Date 2019-07-11 14:12:39 -0700 (Thu, 11 Jul 2019)


Log Message
[ews-build] Add build step to clean up .git/index.lock file
https://bugs.webkit.org/show_bug.cgi?id=199722

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(CheckOutSource.getResultSummary): Run CleanUpGitIndexLock step when CheckOutSource fails.
(CleanUpGitIndexLock.__init__): Configure timeout and logEnviron.
(CleanUpGitIndexLock.evaluateCommand): Always RETRY the build after this step is run.
* BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.

Modified Paths

trunk/Tools/BuildSlaveSupport/ews-build/steps.py
trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py
trunk/Tools/ChangeLog




Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps.py (247363 => 247364)

--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2019-07-11 21:08:36 UTC (rev 247363)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2019-07-11 21:12:39 UTC (rev 247364)
@@ -102,6 +102,9 @@
 **kwargs)
 
 def getResultSummary(self):
+if self.results == FAILURE:
+self.build.addStepsAfterCurrentStep([CleanUpGitIndexLock()])
+
 if self.results != SUCCESS:
 return {u'step': u'Failed to updated working directory'}
 else:
@@ -108,6 +111,19 @@
 return {u'step': u'Cleaned and updated working directory'}
 
 
+class CleanUpGitIndexLock(shell.ShellCommand):
+name = 'clean-git-index-lock'
+command = ['rm', '-f', '.git/index.lock']
+descriptionDone = ['Deleted .git/index.lock']
+
+def __init__(self, **kwargs):
+super(CleanUpGitIndexLock, self).__init__(timeout=2 * 60, logEnviron=False, **kwargs)
+
+def evaluateCommand(self, cmd):
+self.build.buildFinished(['Git issue, retrying build'], RETRY)
+return super(CleanUpGitIndexLock, self).evaluateCommand(cmd)
+
+
 class CheckOutSpecificRevision(shell.ShellCommand):
 name = 'checkout-specific-revision'
 descriptionDone = ['Checked out required revision']


Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py (247363 => 247364)

--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2019-07-11 21:08:36 UTC (rev 247363)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2019-07-11 21:12:39 UTC (rev 247364)
@@ -35,7 +35,7 @@
 from twisted.trial import unittest
 
 from steps import (AnalyzeAPITestsResults, AnalyzeCompileWebKitResults, ApplyPatch, ArchiveBuiltProduct, ArchiveTestResults,
-   CheckOutSource, CheckOutSpecificRevision, CheckPatchRelevance, CheckStyle, CleanBuild, CleanWorkingDirectory,
+   CheckOutSource, CheckOutSpecificRevision, CheckPatchRelevance, CheckStyle, CleanBuild, CleanUpGitIndexLock, CleanWorkingDirectory,
CompileJSCOnly, CompileJSCOnlyToT, CompileWebKit, CompileWebKitToT, ConfigureBuild,
DownloadBuiltProduct, ExtractBuiltProduct, ExtractTestResults, InstallGtkDependencies, InstallWpeDependencies, KillOldProcesses,
PrintConfiguration, ReRunAPITests, ReRunJavaScriptCoreTests, RunAPITests, RunAPITestsWithoutPatch,
@@ -478,6 +478,42 @@
 return self.runStep()
 
 
+class TestCleanUpGitIndexLock(BuildStepMixinAdditions, unittest.TestCase):
+def setUp(self):
+self.longMessage = True
+return self.setUpBuildStep()
+
+def tearDown(self):
+return self.tearDownBuildStep()
+
+def test_success(self):
+self.setupStep(CleanUpGitIndexLock())
+self.expectRemoteCommands(
+ExpectShell(workdir='wkdir',
+timeout=120,
+logEnviron=False,
+command=['rm', '-f', '.git/index.lock'],
+)
++ 0,
+)
+self.expectOutcome(result=SUCCESS, state_string='Deleted .git/index.lock')
+return self.runStep()
+
+def test_failure(self):
+self.setupStep(CleanUpGitIndexLock())
+self.expectRemoteCommands(
+ExpectShell(workdir='wkdir',
+timeout=120,
+logEnviron=False,
+command=['rm', '-f', '.git/index.lock'],
+)
++ ExpectShell.log('stdio', stdout='Unexpected error.')
++ 1,
+)
+self.expectOutcome(result=FAILURE, state_string='Deleted .git/index.lock (failure)')
+return self.runStep()
+
+
 class TestInstallGtkDependencies(BuildStepMixinAdditions, unittest.TestCase):
 def setUp(self):
 self.longMessage = True


Modified: trunk/Tools/ChangeLog (247363 => 247364)

--- trunk/Tools/ChangeLog	2019-07-11 21:08:36 UTC (rev 247363)
+++ trunk/Tools/ChangeLog	2019-07-11 21:12:39 UTC (rev 247364)
@@ -1,3 +1,16 @@
+2019-07-11  Aakash Jain  
+
+[ews-build] Add build step to clean up 

[webkit-changes] [247363] trunk

2019-07-11 Thread justin_michaud
Title: [247363] trunk








Revision 247363
Author justin_mich...@apple.com
Date 2019-07-11 14:08:36 -0700 (Thu, 11 Jul 2019)


Log Message
Add b3 macro lowering for CheckMul on arm64
https://bugs.webkit.org/show_bug.cgi?id=199251

Reviewed by Robin Morisset.

JSTests:

* microbenchmarks/check-mul-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-no-constant.js: Added.
(doTest):
* microbenchmarks/check-mul-power-of-two.js: Added.
(doTest):

Source/_javascript_Core:

- Lower CheckMul for 32-bit arguments on arm64 into a mul and then an overflow check.
- Add a new opcode to air on arm64 for smull (multiplySignExtend32).
- Fuse sign extend 32 + mul into smull (taking two 32-bit arguments and producing 64 bits).
- 1.25x speedup on power of two microbenchmark, 1.15x speedup on normal constant microbenchmark,
  and no change on the no-constant benchmark.
Also, skip some of the b3 tests that were failing before this patch so that the new tests can run
to completion.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::multiplySignExtend32):
* assembler/testmasm.cpp:
(JSC::testMul32SignExtend):
(JSC::run):
* b3/B3LowerMacros.cpp:
* b3/B3LowerToAir.cpp:
* b3/air/AirOpcode.opcodes:
* b3/testb3.cpp:
(JSC::B3::testMulArgs32SignExtend):
(JSC::B3::testMulImm32SignExtend):
(JSC::B3::testMemoryFence):
(JSC::B3::testStoreFence):
(JSC::B3::testLoadFence):
(JSC::B3::testPinRegisters):
(JSC::B3::run):

Modified Paths

trunk/JSTests/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/assembler/MacroAssemblerARM64.h
trunk/Source/_javascript_Core/assembler/testmasm.cpp
trunk/Source/_javascript_Core/b3/B3LowerMacros.cpp
trunk/Source/_javascript_Core/b3/B3LowerToAir.cpp
trunk/Source/_javascript_Core/b3/B3StackmapValue.h
trunk/Source/_javascript_Core/b3/air/AirOpcode.opcodes
trunk/Source/_javascript_Core/b3/testb3.cpp


Added Paths

trunk/JSTests/microbenchmarks/check-mul-constant.js
trunk/JSTests/microbenchmarks/check-mul-no-constant.js
trunk/JSTests/microbenchmarks/check-mul-power-of-two.js




Diff

Modified: trunk/JSTests/ChangeLog (247362 => 247363)

--- trunk/JSTests/ChangeLog	2019-07-11 21:04:05 UTC (rev 247362)
+++ trunk/JSTests/ChangeLog	2019-07-11 21:08:36 UTC (rev 247363)
@@ -1,3 +1,17 @@
+2019-07-11  Justin Michaud  
+
+Add b3 macro lowering for CheckMul on arm64
+https://bugs.webkit.org/show_bug.cgi?id=199251
+
+Reviewed by Robin Morisset.
+
+* microbenchmarks/check-mul-constant.js: Added.
+(doTest):
+* microbenchmarks/check-mul-no-constant.js: Added.
+(doTest):
+* microbenchmarks/check-mul-power-of-two.js: Added.
+(doTest):
+
 2019-07-10  Tadeu Zagallo  
 
 Optimize join of large empty arrays


Added: trunk/JSTests/microbenchmarks/check-mul-constant.js (0 => 247363)

--- trunk/JSTests/microbenchmarks/check-mul-constant.js	(rev 0)
+++ trunk/JSTests/microbenchmarks/check-mul-constant.js	2019-07-11 21:08:36 UTC (rev 247363)
@@ -0,0 +1,13 @@
+function doTest(max) {
+let sum = 0
+for (let i=0; i

Added: trunk/JSTests/microbenchmarks/check-mul-no-constant.js (0 => 247363)

--- trunk/JSTests/microbenchmarks/check-mul-no-constant.js	(rev 0)
+++ trunk/JSTests/microbenchmarks/check-mul-no-constant.js	2019-07-11 21:08:36 UTC (rev 247363)
@@ -0,0 +1,13 @@
+function doTest(max) {
+let sum = 0
+for (let i=0; i

Added: trunk/JSTests/microbenchmarks/check-mul-power-of-two.js (0 => 247363)

--- trunk/JSTests/microbenchmarks/check-mul-power-of-two.js	(rev 0)
+++ trunk/JSTests/microbenchmarks/check-mul-power-of-two.js	2019-07-11 21:08:36 UTC (rev 247363)
@@ -0,0 +1,13 @@
+function doTest(max) {
+let sum = 0
+for (let i=0; i

Modified: trunk/Source/_javascript_Core/ChangeLog (247362 => 247363)

--- trunk/Source/_javascript_Core/ChangeLog	2019-07-11 21:04:05 UTC (rev 247362)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-07-11 21:08:36 UTC (rev 247363)
@@ -1,3 +1,35 @@
+2019-07-11  Justin Michaud  
+
+Add b3 macro lowering for CheckMul on arm64
+https://bugs.webkit.org/show_bug.cgi?id=199251
+
+Reviewed by Robin Morisset.
+
+- Lower CheckMul for 32-bit arguments on arm64 into a mul and then an overflow check.
+- Add a new opcode to air on arm64 for smull (multiplySignExtend32).
+- Fuse sign extend 32 + mul into smull (taking two 32-bit arguments and producing 64 bits). 
+- 1.25x speedup on power of two microbenchmark, 1.15x speedup on normal constant microbenchmark, 
+  and no change on the no-constant benchmark.
+Also, skip some of the b3 tests that were failing before this patch so that the new tests can run
+to completion.
+
+* assembler/MacroAssemblerARM64.h:
+(JSC::MacroAssemblerARM64::multiplySignExtend32):
+* assembler/testmasm.cpp:
+(JSC::testMul32SignExtend):
+(JSC::run):
+* 

[webkit-changes] [247362] trunk

2019-07-11 Thread commit-queue
Title: [247362] trunk








Revision 247362
Author commit-qu...@webkit.org
Date 2019-07-11 14:04:05 -0700 (Thu, 11 Jul 2019)


Log Message
Unreviewed, rolling out r247314.
https://bugs.webkit.org/show_bug.cgi?id=199721

Caused performance regression. (Requested by deanj on
#webkit).

Reverted changeset:

"Disable speculative loading if cache is not to be used for
the load"
https://bugs.webkit.org/show_bug.cgi?id=199644
https://trac.webkit.org/changeset/247314

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/NetworkProcess/cache/NetworkCache.cpp


Removed Paths

trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload-expected.txt
trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload.html
trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py
trunk/LayoutTests/http/wpt/fetch/resources/image-load-count.py
trunk/LayoutTests/http/wpt/fetch/resources/image-load.py




Diff

Modified: trunk/LayoutTests/ChangeLog (247361 => 247362)

--- trunk/LayoutTests/ChangeLog	2019-07-11 20:52:06 UTC (rev 247361)
+++ trunk/LayoutTests/ChangeLog	2019-07-11 21:04:05 UTC (rev 247362)
@@ -1,3 +1,18 @@
+2019-07-11  Commit Queue  
+
+Unreviewed, rolling out r247314.
+https://bugs.webkit.org/show_bug.cgi?id=199721
+
+Caused performance regression. (Requested by deanj on
+#webkit).
+
+Reverted changeset:
+
+"Disable speculative loading if cache is not to be used for
+the load"
+https://bugs.webkit.org/show_bug.cgi?id=199644
+https://trac.webkit.org/changeset/247314
+
 2019-07-11  Ryan Haddad  
 
 Add test expectations and baselines for iOS 13


Deleted: trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload-expected.txt (247361 => 247362)

--- trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload-expected.txt	2019-07-11 20:52:06 UTC (rev 247361)
+++ trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload-expected.txt	2019-07-11 21:04:05 UTC (rev 247362)
@@ -1,3 +0,0 @@
-
-PASS Ensure image is not speculatively loaded after a reload 
-


Deleted: trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload.html (247361 => 247362)

--- trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload.html	2019-07-11 20:52:06 UTC (rev 247361)
+++ trunk/LayoutTests/http/wpt/fetch/disable-speculative-for-reload.html	2019-07-11 21:04:05 UTC (rev 247362)
@@ -1,61 +0,0 @@
-
-
-function loadIFrame(src) {
-return new Promise(function(resolve, reject) {
-var iframe = document.createElement('iframe');
-iframe._onload_ = function() { resolve(iframe); };
-
-iframe.src = ""
-
-document.documentElement.appendChild(iframe);
-});
-}
-
-async function imageLoadCount(uuid)
-{
-const response = await fetch('resources/image-load.py?uuid=' + uuid, { method: 'POST' });
-return response.text();
-}
-
-async function navigateIFrame(iframe, uuid)
-{
-const promise = new Promise(resolve => iframe._onload_ = resolve);
-iframe.src = "" + uuid;
-await promise;
-return imageLoadCount(uuid);
-}
-
-async function reloadIFrame(iframe, uuid)
-{
-const promise = new Promise(resolve => iframe._onload_ = resolve);
-iframe.contentWindow.location.reload();
-await promise;
-return imageLoadCount(uuid);
-}
-
-function resetIFrame(iframe)
-{
-const promise = new Promise(resolve => { iframe._onload_ = resolve; });
-iframe.src = ""
-return promise;
-}
-
-promise_test(async (test) => {
-const uuid = token();
-const iframe = await loadIFrame("about:blank");
-
-const token1 = await navigateIFrame(iframe, uuid);
-await resetIFrame(iframe);
-const token2 = await navigateIFrame(iframe, uuid);
-const token3 = await reloadIFrame(iframe, uuid);
-
-assert_equals(token1, "1", "navigating to");
-assert_equals(token2, "2", "after new navigation");
-assert_equals(token3, "3", "after reload");
-
-iframe.remove();
-}, "Ensure image is not speculatively loaded after a reload");
-


Deleted: trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py (247361 => 247362)

--- trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py	2019-07-11 20:52:06 UTC (rev 247361)
+++ trunk/LayoutTests/http/wpt/fetch/resources/iframe-with-image.py	2019-07-11 21:04:05 UTC (rev 247362)
@@ -1,8 +0,0 @@
-ETAG = '"123abc"'
-
-
-def main(request, response):
-test_id = request.GET.first("uuid")
-response.status = (200, "OK")
-response.headers.set("Content-Type", 'text/html')
-return ""


Deleted: trunk/LayoutTests/http/wpt/fetch/resources/image-load-count.py (247361 => 247362)

--- trunk/LayoutTests/http/wpt/fetch/resources/image-load-count.py	2019-07-11 20:52:06 UTC (rev 247361)
+++ trunk/LayoutTests/http/wpt/fetch/resources/image-load-count.py	2019-07-11 21:04:05 UTC (rev 247362)
@@ -1,11 +0,0 @@
-def main(request, response):
-test_id = request.GET.first("uuid")
-

[webkit-changes] [247361] trunk/Source/WebCore

2019-07-11 Thread cdumez
Title: [247361] trunk/Source/WebCore








Revision 247361
Author cdu...@apple.com
Date 2019-07-11 13:52:06 -0700 (Thu, 11 Jul 2019)


Log Message
Pages using Google Tag Manager Google's anti-flicker optimization may take ~5 seconds to do initial paint
https://bugs.webkit.org/show_bug.cgi?id=199704


Reviewed by Geoffrey Garen.

Apply the same fix as r246764 for when "https://www.googletagmanager.com/gtm.js" load is blocked by a content
extension to avoid delaying initial paint by ~5 seconds. This was tested on https://www.formula1.com/en.html.

* contentextensions/ContentExtensionsBackend.cpp:
(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247360 => 247361)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 20:11:47 UTC (rev 247360)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 20:52:06 UTC (rev 247361)
@@ -1,5 +1,19 @@
 2019-07-11  Chris Dumez  
 
+Pages using Google Tag Manager Google's anti-flicker optimization may take ~5 seconds to do initial paint
+https://bugs.webkit.org/show_bug.cgi?id=199704
+
+
+Reviewed by Geoffrey Garen.
+
+Apply the same fix as r246764 for when "https://www.googletagmanager.com/gtm.js" load is blocked by a content
+extension to avoid delaying initial paint by ~5 seconds. This was tested on https://www.formula1.com/en.html.
+
+* contentextensions/ContentExtensionsBackend.cpp:
+(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):
+
+2019-07-11  Chris Dumez  
+
 Disable RGB10 IOSurface pixel format for Mac Catalyst
 https://bugs.webkit.org/show_bug.cgi?id=199712
 


Modified: trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.cpp (247360 => 247361)

--- trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.cpp	2019-07-11 20:11:47 UTC (rev 247360)
+++ trunk/Source/WebCore/contentextensions/ContentExtensionsBackend.cpp	2019-07-11 20:52:06 UTC (rev 247361)
@@ -237,7 +237,9 @@
 
 // Quirk for content-blocker interference with Google's anti-flicker optimization (rdar://problem/45968770).
 // https://developers.google.com/optimize/
-if (currentDocument->settings().googleAntiFlickerOptimizationQuirkEnabled() && url == "https://www.google-analytics.com/analytics.js"_str) {
+if (currentDocument->settings().googleAntiFlickerOptimizationQuirkEnabled()
+&& ((equalLettersIgnoringASCIICase(url.host(), "www.google-analytics.com") && equalLettersIgnoringASCIICase(url.path(), "/analytics.js"))
+|| (equalLettersIgnoringASCIICase(url.host(), "www.googletagmanager.com") && equalLettersIgnoringASCIICase(url.path(), "/gtm.js" {
 if (auto* frame = currentDocument->frame())
 frame->script().evaluate(ScriptSourceCode { "try { window.dataLayer.hide.end(); console.log('Called window.dataLayer.hide.end() in frame ' + document.URL + ' because the content blocker blocked the load of the https://www.google-analytics.com/analytics.js script'); } catch (e) { }"_s });
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247360] trunk/Source/WebKit

2019-07-11 Thread dino
Title: [247360] trunk/Source/WebKit








Revision 247360
Author d...@apple.com
Date 2019-07-11 13:11:47 -0700 (Thu, 11 Jul 2019)


Log Message
CrashTracer: Regression : MobileSafari at UIKit: -[CALayerAccessibility__UIKit__QuartzCore setBounds:]
https://bugs.webkit.org/show_bug.cgi?id=199720


Reviewed by Tim Horton.

Speculative fix after confirming that this crash can occur when
a zero width/height view is used for a UITargetedPreview. We
already guarded against this in the default flow, but not in
the fallback path where we take a view snapshot.

* UIProcess/ios/WKContentViewInteraction.mm:
(createFallbackTargetedPreview): Return early if rectangles are empty.

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (247359 => 247360)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 19:39:23 UTC (rev 247359)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 20:11:47 UTC (rev 247360)
@@ -1,3 +1,19 @@
+2019-07-11  Dean Jackson  
+
+CrashTracer: Regression : MobileSafari at UIKit: -[CALayerAccessibility__UIKit__QuartzCore setBounds:]
+https://bugs.webkit.org/show_bug.cgi?id=199720
+
+
+Reviewed by Tim Horton.
+
+Speculative fix after confirming that this crash can occur when
+a zero width/height view is used for a UITargetedPreview. We
+already guarded against this in the default flow, but not in
+the fallback path where we take a view snapshot.
+
+* UIProcess/ios/WKContentViewInteraction.mm:
+(createFallbackTargetedPreview): Return early if rectangles are empty.
+
 2019-07-11  Alex Christensen  
 
 Use mobile UA on jsfiddle.net


Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (247359 => 247360)

--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-07-11 19:39:23 UTC (rev 247359)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-07-11 20:11:47 UTC (rev 247360)
@@ -8009,10 +8009,17 @@
 if (!containerView.window)
 return nil;
 
+if (frameInRootViewCoordinates.isEmpty())
+return nil;
+
 auto parameters = adoptNS([[UIPreviewParameters alloc] init]);
 UIView *snapshotView = [rootView resizableSnapshotViewFromRect:frameInRootViewCoordinates afterScreenUpdates:NO withCapInsets:UIEdgeInsetsZero];
 
 CGRect frameInContainerViewCoordinates = [rootView convertRect:frameInRootViewCoordinates toView:containerView];
+
+if (CGRectIsEmpty(frameInContainerViewCoordinates))
+return nil;
+
 snapshotView.frame = frameInContainerViewCoordinates;
 
 CGPoint centerInContainerViewCoordinates = CGPointMake(CGRectGetMidX(frameInContainerViewCoordinates), CGRectGetMidY(frameInContainerViewCoordinates));






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247359] trunk/Source

2019-07-11 Thread alancoon
Title: [247359] trunk/Source








Revision 247359
Author alanc...@apple.com
Date 2019-07-11 12:39:23 -0700 (Thu, 11 Jul 2019)


Log Message
Versioning.

Modified Paths

trunk/Source/_javascript_Core/Configurations/Version.xcconfig
trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
trunk/Source/WebCore/Configurations/Version.xcconfig
trunk/Source/WebCore/PAL/Configurations/Version.xcconfig
trunk/Source/WebInspectorUI/Configurations/Version.xcconfig
trunk/Source/WebKit/Configurations/Version.xcconfig
trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig




Diff

Modified: trunk/Source/_javascript_Core/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/_javascript_Core/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/_javascript_Core/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/WebCore/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/WebCore/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/WebCore/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/WebCore/PAL/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/WebCore/PAL/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/WebCore/PAL/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/WebInspectorUI/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/WebInspectorUI/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/WebInspectorUI/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/WebKit/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/WebKit/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/WebKit/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);


Modified: trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig (247358 => 247359)

--- trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig	2019-07-11 18:43:39 UTC (rev 247358)
+++ trunk/Source/WebKitLegacy/mac/Configurations/Version.xcconfig	2019-07-11 19:39:23 UTC (rev 247359)
@@ -23,7 +23,7 @@
 
 MAJOR_VERSION = 608;
 MINOR_VERSION = 1;
-TINY_VERSION = 35;
+TINY_VERSION = 36;
 MICRO_VERSION = 0;
 NANO_VERSION = 0;
 FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247358] trunk/Source/WebCore

2019-07-11 Thread cdumez
Title: [247358] trunk/Source/WebCore








Revision 247358
Author cdu...@apple.com
Date 2019-07-11 11:43:39 -0700 (Thu, 11 Jul 2019)


Log Message
Disable RGB10 IOSurface pixel format for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=199712


Reviewed by Beth Dakin.

Disable RGB10 IOSurface pixel format for Mac Catalyst. This format is not supported
on Mac Catalyst and causes us not to render anything.

* platform/graphics/cocoa/IOSurface.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (247357 => 247358)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 18:39:16 UTC (rev 247357)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 18:43:39 UTC (rev 247358)
@@ -1,3 +1,16 @@
+2019-07-11  Chris Dumez  
+
+Disable RGB10 IOSurface pixel format for Mac Catalyst
+https://bugs.webkit.org/show_bug.cgi?id=199712
+
+
+Reviewed by Beth Dakin.
+
+Disable RGB10 IOSurface pixel format for Mac Catalyst. This format is not supported
+on Mac Catalyst and causes us not to render anything.
+
+* platform/graphics/cocoa/IOSurface.h:
+
 2019-07-11  Jonathan Bedard  
 
 [iOS 13] Enable WebKit build


Modified: trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.h (247357 => 247358)

--- trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.h	2019-07-11 18:39:16 UTC (rev 247357)
+++ trunk/Source/WebCore/platform/graphics/cocoa/IOSurface.h	2019-07-11 18:43:39 UTC (rev 247358)
@@ -31,7 +31,7 @@
 #include "GraphicsContext.h"
 #include "IntSize.h"
 
-#if PLATFORM(IOS_FAMILY)
+#if PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)
 #define HAVE_IOSURFACE_RGB10 1
 #endif
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247357] trunk/Source/WebKit

2019-07-11 Thread commit-queue
Title: [247357] trunk/Source/WebKit








Revision 247357
Author commit-qu...@webkit.org
Date 2019-07-11 11:39:16 -0700 (Thu, 11 Jul 2019)


Log Message
Use mobile UA on jsfiddle.net
https://bugs.webkit.org/show_bug.cgi?id=199687


Patch by Alex Christensen  on 2019-07-11
Reviewed by Maciej Stachowiak.

Text selection does not work on iPads using desktop UA.
This isn't the best solution, but it's certainly *a* solution.

* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (247356 => 247357)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 18:36:57 UTC (rev 247356)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 18:39:16 UTC (rev 247357)
@@ -1,3 +1,17 @@
+2019-07-11  Alex Christensen  
+
+Use mobile UA on jsfiddle.net
+https://bugs.webkit.org/show_bug.cgi?id=199687
+
+
+Reviewed by Maciej Stachowiak.
+
+Text selection does not work on iPads using desktop UA.
+This isn't the best solution, but it's certainly *a* solution.
+
+* UIProcess/ios/WebPageProxyIOS.mm:
+(WebKit::desktopClassBrowsingRecommendedForRequest):
+
 2019-07-11  Jonathan Bedard  
 
 [iOS 13] Enable WebKit build


Modified: trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm (247356 => 247357)

--- trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm	2019-07-11 18:36:57 UTC (rev 247356)
+++ trunk/Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm	2019-07-11 18:39:16 UTC (rev 247357)
@@ -1288,6 +1288,9 @@
 if (equalLettersIgnoringASCIICase(host, "live.iqiyi.com") || host.endsWithIgnoringASCIICase(".live.iqiyi.com"))
 return false;
 
+if (equalLettersIgnoringASCIICase(host, "jsfiddle.net") || host.endsWithIgnoringASCIICase(".jsfiddle.net"))
+return false;
+
 if (equalLettersIgnoringASCIICase(host, "video.sina.com.cn") || host.endsWithIgnoringASCIICase(".video.sina.com.cn"))
 return false;
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247356] trunk/Source/WebInspectorUI

2019-07-11 Thread drousso
Title: [247356] trunk/Source/WebInspectorUI








Revision 247356
Author drou...@apple.com
Date 2019-07-11 11:36:57 -0700 (Thu, 11 Jul 2019)


Log Message
Web Inspector: Layers: Uncaught Exception: Request with id = 2 failed. {"code":-32601,"message":"'Page' domain was not found","data":[{"code":-32601,"message":"'Page' domain was not found"}]}
https://bugs.webkit.org/show_bug.cgi?id=199555

Reviewed by Joseph Pecoraro.

Use modern inspected target support checking, and defer agent commands until a target is
available.

* UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
(WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
(WI.Layers3DContentView.prototype._toggleCompositingBorders):

* UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype._toggleCompositingBorders):
(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
(WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged):
(WI.DOMTreeContentView.prototype._showPrintStylesChanged):
(WI.DOMTreeContentView.prototype._showRulersChanged):
Drive-by: apply the same changes to the Elements tab for when the Layers tab isn't enabled.

Modified Paths

trunk/Source/WebInspectorUI/ChangeLog
trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js
trunk/Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js




Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (247355 => 247356)

--- trunk/Source/WebInspectorUI/ChangeLog	2019-07-11 17:17:58 UTC (rev 247355)
+++ trunk/Source/WebInspectorUI/ChangeLog	2019-07-11 18:36:57 UTC (rev 247356)
@@ -1,3 +1,28 @@
+2019-07-11  Devin Rousso  
+
+Web Inspector: Layers: Uncaught Exception: Request with id = 2 failed. {"code":-32601,"message":"'Page' domain was not found","data":[{"code":-32601,"message":"'Page' domain was not found"}]}
+https://bugs.webkit.org/show_bug.cgi?id=199555
+
+Reviewed by Joseph Pecoraro.
+
+Use modern inspected target support checking, and defer agent commands until a target is
+available.
+
+* UserInterface/Views/Layers3DContentView.js:
+(WI.Layers3DContentView):
+(WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
+(WI.Layers3DContentView.prototype._updateCompositingBordersButtonState):
+(WI.Layers3DContentView.prototype._toggleCompositingBorders):
+
+* UserInterface/Views/DOMTreeContentView.js:
+(WI.DOMTreeContentView):
+(WI.DOMTreeContentView.prototype._toggleCompositingBorders):
+(WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
+(WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged):
+(WI.DOMTreeContentView.prototype._showPrintStylesChanged):
+(WI.DOMTreeContentView.prototype._showRulersChanged):
+Drive-by: apply the same changes to the Elements tab for when the Layers tab isn't enabled.
+
 2019-07-09  Devin Rousso  
 
 Web Inspector: Canvas: replace WTF::Vector with std::initializer_list in CallTracer to avoid dynamic allocations


Modified: trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js (247355 => 247356)

--- trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2019-07-11 17:17:58 UTC (rev 247355)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js	2019-07-11 18:36:57 UTC (rev 247356)
@@ -34,7 +34,7 @@
 if (InspectorBackend.domains.Page) {
 this._compositingBordersButtonNavigationItem = new WI.ActivateButtonNavigationItem("layer-borders", WI.UIString("Show compositing borders"), WI.UIString("Hide compositing borders"), "Images/LayerBorders.svg", 13, 13);
 this._compositingBordersButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._toggleCompositingBorders, this);
-this._compositingBordersButtonNavigationItem.enabled = !!PageAgent.getCompositingBordersVisible;
+this._compositingBordersButtonNavigationItem.enabled = !!InspectorBackend.domains.Page.getCompositingBordersVisible;
 this._compositingBordersButtonNavigationItem.visibilityPriority = WI.NavigationItem.VisibilityPriority.Low;
 }
 
@@ -42,8 +42,8 @@
 WI.settings.showPaintRects.addEventListener(WI.Setting.Event.Changed, this._showPaintRectsSettingChanged, this);
 this._paintFlashingButtonNavigationItem = new WI.ActivateButtonNavigationItem("paint-flashing", WI.UIString("Enable paint flashing"), WI.UIString("Disable paint flashing"), "Images/Paint.svg", 16, 16);
 this._paintFlashingButtonNavigationItem.addEventListener(WI.ButtonNavigationItem.Event.Clicked, this._togglePaintFlashing, this);
-this._paintFlashingButtonNavigationItem.enabled = !!PageAgent.setShowPaintRects;
-

[webkit-changes] [247355] trunk

2019-07-11 Thread jbedard
Title: [247355] trunk








Revision 247355
Author jbed...@apple.com
Date 2019-07-11 10:17:58 -0700 (Thu, 11 Jul 2019)


Log Message
[iOS 13] Enable WebKit build
https://bugs.webkit.org/show_bug.cgi?id=199481


Reviewed by Tim Horton.

Source/WebCore:

No new tests, iOS 13 test expectations will be migrated in the near future.

* platform/ios/LocalCurrentTraitCollection.mm:
(WebCore::LocalCurrentTraitCollection::LocalCurrentTraitCollection): Remove underscore from currentTraitCollection.
(WebCore::LocalCurrentTraitCollection::~LocalCurrentTraitCollection): Remove underscore from setCurrentTraitCollection.

Source/WebCore/PAL:

* pal/spi/cocoa/NSProgressSPI.h: We need the NSProgress SPI in public builds because NSProgress API
is marked unavailable on iOS, watchOS and tvOS.
* pal/spi/ios/CoreUISPI.h: Add CUIStyleEffectConfiguration.appearanceName SPI.
* pal/spi/ios/DataDetectorsUISPI.h: Add UIContextMenuConfiguration.contextMenuConfigurationForURL SPI.
* pal/spi/ios/SystemPreviewSPI.h: Add ARQuickLookWebKitItem.initWithPreviewItemProvider SPI.
* pal/spi/ios/UIKitSPI.h: Add systemBrownColor, UIColor.tableCellDefaultSelectionTintColor should be marked nullable.
* pal/spi/mac/AVFoundationSPI.h: Add AVOutputDevice.name SPI.

Source/WebKit:

* Platform/spi/ios/UIKitSPI.h: Add UITextEffectsWindow.sharedTextEffectsWindowForWindowScene SPI.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView showGlobalMenuControllerInRect:]): setTargetRect, setMenuVisible marked depreciated in iOS 13.
(-[WKContentView hideGlobalMenuController]): Ditto.

Tools:

* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Add iOS framework stubs.

WebKitLibraries:

Added iOS 13 framework stubs, used tbd version 3 in all new stubs.

* WebKitPrivateFrameworkStubs/iOS/13: Added.
* WebKitPrivateFrameworkStubs/iOS/13/AppSupport.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/AssertionServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/AuthKit.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/CorePDF.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/CorePrediction.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/SafariSafeBrowsing.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/13/URLFormatting.framework: Added.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/PAL/ChangeLog
trunk/Source/WebCore/PAL/pal/spi/cocoa/NSProgressSPI.h
trunk/Source/WebCore/PAL/pal/spi/ios/CoreUISPI.h
trunk/Source/WebCore/PAL/pal/spi/ios/DataDetectorsUISPI.h
trunk/Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h
trunk/Source/WebCore/PAL/pal/spi/ios/UIKitSPI.h
trunk/Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h
trunk/Source/WebCore/platform/ios/LocalCurrentTraitCollection.mm
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
trunk/Tools/ChangeLog
trunk/Tools/TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig
trunk/WebKitLibraries/ChangeLog


Added Paths

trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AppSupport.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AppSupport.framework/AppSupport.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AssertionServices.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AssertionServices.framework/AssertionServices.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AuthKit.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/AuthKit.framework/AuthKit.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/CorePDF.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/CorePDF.framework/CorePDF.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/CorePrediction.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/CorePrediction.framework/CorePrediction.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/GraphicsServices.framework/GraphicsServices.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/SafariSafeBrowsing.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/URLFormatting.framework/
trunk/WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/13/URLFormatting.framework/URLFormatting.tbd




Diff

Modified: trunk/Source/WebCore/ChangeLog (247354 => 247355)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 17:10:52 UTC (rev 247354)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 17:17:58 UTC (rev 247355)
@@ -1,3 +1,17 @@
+2019-07-11  Jonathan Bedard  
+
+[iOS 13] Enable WebKit build
+https://bugs.webkit.org/show_bug.cgi?id=199481
+
+
+Reviewed by Tim Horton.
+
+No new 

[webkit-changes] [247354] trunk/Source/WebCore

2019-07-11 Thread cdumez
Title: [247354] trunk/Source/WebCore








Revision 247354
Author cdu...@apple.com
Date 2019-07-11 10:10:52 -0700 (Thu, 11 Jul 2019)


Log Message
Fix non thread-safe usage of makeWeakPtr() in MediaPlayerPrivateMediaFoundation
https://bugs.webkit.org/show_bug.cgi?id=199700

Reviewed by Eric Carlson.

The code was calling makeWeakPtr() on a main-thread object, from a background thread.
This is not thread safe. To address the issue, this patches creates the WeakPtr ahead
of time, on the main thread.

* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::create):
(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::wrapped):
(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::ThreadSafeWrapper):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp
trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (247353 => 247354)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 17:08:30 UTC (rev 247353)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 17:10:52 UTC (rev 247354)
@@ -1,3 +1,24 @@
+2019-07-11  Chris Dumez  
+
+Fix non thread-safe usage of makeWeakPtr() in MediaPlayerPrivateMediaFoundation
+https://bugs.webkit.org/show_bug.cgi?id=199700
+
+Reviewed by Eric Carlson.
+
+The code was calling makeWeakPtr() on a main-thread object, from a background thread.
+This is not thread safe. To address the issue, this patches creates the WeakPtr ahead
+of time, on the main thread. 
+
+* platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
+(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
+(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
+(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
+(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
+* platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
+(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::create):
+(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::wrapped):
+(WebCore::MediaPlayerPrivateMediaFoundation::ThreadSafeWrapper::ThreadSafeWrapper):
+
 2019-07-11  Zalan Bujtas  
 
 [LFC][IFC] Cleanup InlineFormattingContext::LineLayout class.


Modified: trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp (247353 => 247354)

--- trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp	2019-07-11 17:08:30 UTC (rev 247353)
+++ trunk/Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp	2019-07-11 17:10:52 UTC (rev 247354)
@@ -58,7 +58,8 @@
 namespace WebCore {
 
 MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation(MediaPlayer* player) 
-: m_player(player)
+: m_weakThis(makeWeakPtr(this))
+, m_player(player)
 , m_visible(false)
 , m_loadingProgress(false)
 , m_paused(true)
@@ -425,7 +426,7 @@
 hr = asyncResult->GetStatus();
 m_loadingProgress = SUCCEEDED(hr);
 
-callOnMainThread([weakPtr = makeWeakPtr(*this)] {
+callOnMainThread([weakPtr = m_weakThis] {
 if (!weakPtr)
 return;
 weakPtr->onCreatedMediaSource();
@@ -454,7 +455,7 @@
 
 switch (mediaEventType) {
 case MESessionTopologySet: {
-callOnMainThread([weakPtr = makeWeakPtr(*this)] {
+callOnMainThread([weakPtr = m_weakThis] {
 if (!weakPtr)
 return;
 weakPtr->onTopologySet();
@@ -463,7 +464,7 @@
 }
 
 case MESessionStarted: {
-callOnMainThread([weakPtr = makeWeakPtr(*this)] {
+callOnMainThread([weakPtr = m_weakThis] {
 if (!weakPtr)
 return;
 weakPtr->onSessionStarted();
@@ -472,7 +473,7 @@
 }
 
 case MEBufferingStarted: {
-callOnMainThread([weakPtr = makeWeakPtr(*this)] {
+callOnMainThread([weakPtr = m_weakThis] {
 if (!weakPtr)
 return;
 weakPtr->onBufferingStarted();
@@ -481,7 +482,7 @@
 }
 
 case MEBufferingStopped: {
-callOnMainThread([weakPtr = makeWeakPtr(*this)] {
+callOnMainThread([weakPtr = m_weakThis] {
 if (!weakPtr)
 return;
 weakPtr->onBufferingStopped();
@@ -490,7 +491,7 @@
 }
 
 case MESessionEnded: {
-callOnMainThread([weakPtr = 

[webkit-changes] [247351] tags/Safari-608.1.35

2019-07-11 Thread kocsen_chung
Title: [247351] tags/Safari-608.1.35








Revision 247351
Author kocsen_ch...@apple.com
Date 2019-07-11 08:33:17 -0700 (Thu, 11 Jul 2019)


Log Message
Cherry-pick r247307. rdar://problem/52859522

Unreviewed, rolling out r247286.

Caused TestWTF.WTF.StringOperators to fail on debug bots

Reverted changeset:

"Add StringBuilder member function which allows makeString()
style variadic argument construction"
https://bugs.webkit.org/show_bug.cgi?id=198997
https://trac.webkit.org/changeset/247286

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

Modified Paths

tags/Safari-608.1.35/Source/WTF/ChangeLog
tags/Safari-608.1.35/Source/WTF/wtf/posix/FileSystemPOSIX.cpp
tags/Safari-608.1.35/Source/WTF/wtf/text/StringBuilder.cpp
tags/Safari-608.1.35/Source/WTF/wtf/text/StringBuilder.h
tags/Safari-608.1.35/Source/WTF/wtf/text/StringConcatenate.h
tags/Safari-608.1.35/Tools/ChangeLog
tags/Safari-608.1.35/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp




Diff

Modified: tags/Safari-608.1.35/Source/WTF/ChangeLog (247350 => 247351)

--- tags/Safari-608.1.35/Source/WTF/ChangeLog	2019-07-11 14:09:55 UTC (rev 247350)
+++ tags/Safari-608.1.35/Source/WTF/ChangeLog	2019-07-11 15:33:17 UTC (rev 247351)
@@ -1,3 +1,33 @@
+2019-07-11  Alan Coon  
+
+Cherry-pick r247307. rdar://problem/52859522
+
+Unreviewed, rolling out r247286.
+
+Caused TestWTF.WTF.StringOperators to fail on debug bots
+
+Reverted changeset:
+
+"Add StringBuilder member function which allows makeString()
+style variadic argument construction"
+https://bugs.webkit.org/show_bug.cgi?id=198997
+https://trac.webkit.org/changeset/247286
+
+git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247307 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+2019-07-10  Ryan Haddad  
+
+Unreviewed, rolling out r247286.
+
+Caused TestWTF.WTF.StringOperators to fail on debug bots
+
+Reverted changeset:
+
+"Add StringBuilder member function which allows makeString()
+style variadic argument construction"
+https://bugs.webkit.org/show_bug.cgi?id=198997
+https://trac.webkit.org/changeset/247286
+
 2019-07-09  Sam Weinig  
 
 Add StringBuilder member function which allows makeString() style variadic argument construction


Modified: tags/Safari-608.1.35/Source/WTF/wtf/posix/FileSystemPOSIX.cpp (247350 => 247351)

--- tags/Safari-608.1.35/Source/WTF/wtf/posix/FileSystemPOSIX.cpp	2019-07-11 14:09:55 UTC (rev 247350)
+++ tags/Safari-608.1.35/Source/WTF/wtf/posix/FileSystemPOSIX.cpp	2019-07-11 15:33:17 UTC (rev 247351)
@@ -301,8 +301,10 @@
 {
 StringBuilder builder;
 builder.append(path);
-for (auto& component : components)
-builder.flexibleAppend('/', component);
+for (auto& component : components) {
+builder.append('/');
+builder.append(component);
+}
 return builder.toString();
 }
 


Modified: tags/Safari-608.1.35/Source/WTF/wtf/text/StringBuilder.cpp (247350 => 247351)

--- tags/Safari-608.1.35/Source/WTF/wtf/text/StringBuilder.cpp	2019-07-11 14:09:55 UTC (rev 247350)
+++ tags/Safari-608.1.35/Source/WTF/wtf/text/StringBuilder.cpp	2019-07-11 15:33:17 UTC (rev 247351)
@@ -163,7 +163,7 @@
 ASSERT(m_buffer->length() == requiredLength);
 }
 
-template<>
+template <>
 void StringBuilder::reallocateBuffer(unsigned requiredLength)
 {
 // If the buffer has only one ref (by this StringBuilder), reallocate it,
@@ -183,7 +183,7 @@
 ASSERT(hasOverflowed() || m_buffer->length() == requiredLength);
 }
 
-template<>
+template <>
 void StringBuilder::reallocateBuffer(unsigned requiredLength)
 {
 // If the buffer has only one ref (by this StringBuilder), reallocate it,
@@ -231,29 +231,21 @@
 ASSERT(hasOverflowed() || !newCapacity || m_buffer->length() >= newCapacity);
 }
 
-// Make 'additionalLength' additional capacity be available in m_buffer, update m_string & m_length,
+// Make 'length' additional capacity be available in m_buffer, update m_string & m_length,
 // return a pointer to the newly allocated storage.
 // Returns nullptr if the size of the new builder would have overflowed
-template
-ALWAYS_INLINE CharacterType* StringBuilder::appendUninitialized(unsigned additionalLength)
+template 
+ALWAYS_INLINE CharType* StringBuilder::appendUninitialized(unsigned length)
 {
-ASSERT(additionalLength);
+ASSERT(length);
 
 // Calculate the new size of the builder after appending.
-CheckedInt32 requiredLength = m_length + additionalLength;
+CheckedInt32 requiredLength = m_length + length;
 if (requiredLength.hasOverflowed()) {
 didOverflow();
 return nullptr;
 }
 
-return appendUninitializedWithoutOverflowCheck(requiredLength);
-}
-
-template
-ALWAYS_INLINE CharacterType* StringBuilder::appendUninitializedWithoutOverflowCheck(CheckedInt32 requiredLength)

[webkit-changes] [247350] trunk/Source/WebCore

2019-07-11 Thread zalan
Title: [247350] trunk/Source/WebCore








Revision 247350
Author za...@apple.com
Date 2019-07-11 07:09:55 -0700 (Thu, 11 Jul 2019)


Log Message
[LFC][IFC] Cleanup InlineFormattingContext::LineLayout class.
https://bugs.webkit.org/show_bug.cgi?id=199702


Reviewed by Sam Weinig.

Move some structs to .cpp. They don't need to pollute the class declaration.

* layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const):
(): Deleted.
* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint):
(WebCore::Layout::LineInput::LineInput):
(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted.
(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput): Deleted.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h
trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (247349 => 247350)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 13:36:50 UTC (rev 247349)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 14:09:55 UTC (rev 247350)
@@ -1,3 +1,23 @@
+2019-07-11  Zalan Bujtas  
+
+[LFC][IFC] Cleanup InlineFormattingContext::LineLayout class.
+https://bugs.webkit.org/show_bug.cgi?id=199702
+
+
+Reviewed by Sam Weinig.
+
+Move some structs to .cpp. They don't need to pollute the class declaration. 
+
+* layout/inlineformatting/InlineFormattingContext.h:
+(WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const):
+(): Deleted.
+* layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
+(WebCore::Layout::LineInput::HorizontalConstraint::HorizontalConstraint):
+(WebCore::Layout::LineInput::LineInput):
+(WebCore::Layout::InlineFormattingContext::LineLayout::placeInlineItems const):
+(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::HorizontalConstraint::HorizontalConstraint): Deleted.
+(WebCore::Layout::InlineFormattingContext::LineLayout::LineInput::LineInput): Deleted.
+
 2019-07-11  Joanmarie Diggs  
 
 AX: Implement support for ARIA roles insertion, deletion, subscript, superscript, and time


Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h (247349 => 247350)

--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h	2019-07-11 13:36:50 UTC (rev 247349)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.h	2019-07-11 14:09:55 UTC (rev 247350)
@@ -38,6 +38,8 @@
 
 class FloatingState;
 class InlineContainer;
+struct LineContent;
+struct LineInput;
 
 // This class implements the layout logic for inline formatting contexts.
 // https://www.w3.org/TR/CSS22/visuren.html#inline-formatting
@@ -58,33 +60,6 @@
 
 private:
 LayoutState& layoutState() const { return m_layoutState; }
-
-struct InlineIndexAndSplitPosition {
-unsigned index { 0 };
-Optional splitPosition;
-};
-
-struct LineInput {
-LineInput(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth, Line::SkipVerticalAligment, InlineIndexAndSplitPosition firstToProcess, const InlineItems&);
-struct HorizontalConstraint {
-HorizontalConstraint(LayoutPoint logicalTopLeft, LayoutUnit availableLogicalWidth);
-
-LayoutPoint logicalTopLeft;
-LayoutUnit availableLogicalWidth;
-};
-HorizontalConstraint horizontalConstraint;
-// FIXME Alternatively we could just have a second pass with vertical positioning (preferred width computation opts out) 
-Line::SkipVerticalAligment skipVerticalAligment;
-InlineIndexAndSplitPosition firstInlineItem;
-const InlineItems& inlineItems;
-Optional floatMinimumLogicalBottom;
-};
-
-struct LineContent {
-Optional lastCommitted;
-Vector> floats;
-std::unique_ptr runs;
-};
 LineContent placeInlineItems(const LineInput&) const;
 void createDisplayRuns(const Line::Content&, const Vector>& floats, LayoutUnit widthConstraint) const;
 void alignRuns(TextAlignMode, InlineRuns&, unsigned firstRunIndex, LayoutUnit availableWidth) const;


Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp (247349 => 247350)

--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-07-11 13:36:50 UTC (rev 247349)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContextLineLayout.cpp	2019-07-11 14:09:55 UTC (rev 

[webkit-changes] [247348] trunk/Tools

2019-07-11 Thread aperez
Title: [247348] trunk/Tools








Revision 247348
Author ape...@igalia.com
Date 2019-07-11 05:45:22 -0700 (Thu, 11 Jul 2019)


Log Message
[ews-build] Remove workers {ltilve,tanty}-gtk-wk2-ews from configuration
https://bugs.webkit.org/show_bug.cgi?id=199707

Reviewed by Aakash Jain.

* BuildSlaveSupport/ews-build/config.json: Remove old unused workers.

Modified Paths

trunk/Tools/BuildSlaveSupport/ews-build/config.json
trunk/Tools/ChangeLog




Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/config.json (247347 => 247348)

--- trunk/Tools/BuildSlaveSupport/ews-build/config.json	2019-07-11 10:57:54 UTC (rev 247347)
+++ trunk/Tools/BuildSlaveSupport/ews-build/config.json	2019-07-11 12:45:22 UTC (rev 247348)
@@ -25,14 +25,6 @@
   "platform": "gtk"
 },
 {
-  "name": "tanty-gtk-wk2-ews",
-  "platform": "gtk"
-},
-{
-  "name": "ltilve-gtk-wk2-ews",
-  "platform": "gtk"
-},
-{
   "name": "igalia-wpe-ews",
   "platform": "wpe"
 },
@@ -301,7 +293,7 @@
   "platform": "gtk",
   "configuration": "release",
   "architectures": ["x86_64"],
-  "workernames": ["igalia1-gtk-wk2-ews", "igalia2-gtk-wk2-ews", "igalia3-gtk-wk2-ews", "igalia4-gtk-wk2-ews", "aperez-gtk-ews", "tanty-gtk-wk2-ews", "ltilve-gtk-wk2-ews"]
+  "workernames": ["igalia1-gtk-wk2-ews", "igalia2-gtk-wk2-ews", "igalia3-gtk-wk2-ews", "igalia4-gtk-wk2-ews", "aperez-gtk-ews"]
 },
 {
   "name": "iOS-12-Build-EWS",


Modified: trunk/Tools/ChangeLog (247347 => 247348)

--- trunk/Tools/ChangeLog	2019-07-11 10:57:54 UTC (rev 247347)
+++ trunk/Tools/ChangeLog	2019-07-11 12:45:22 UTC (rev 247348)
@@ -1,3 +1,12 @@
+2019-07-11  Adrian Perez de Castro  
+
+[ews-build] Remove workers {ltilve,tanty}-gtk-wk2-ews from configuration
+https://bugs.webkit.org/show_bug.cgi?id=199707
+
+Reviewed by Aakash Jain.
+
+* BuildSlaveSupport/ews-build/config.json: Remove old unused workers.
+
 2019-07-10  Simon Fraser  
 
 [iOS WK2] With modal overlay and body overflow:hidden, can't access all the content






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247347] trunk/Source/WebCore

2019-07-11 Thread commit-queue
Title: [247347] trunk/Source/WebCore








Revision 247347
Author commit-qu...@webkit.org
Date 2019-07-11 03:57:54 -0700 (Thu, 11 Jul 2019)


Log Message
[GStreamer][MediaStream] Use the new dispatchMediaSampleToObservers to dispatch new buffers
https://bugs.webkit.org/show_bug.cgi?id=199689

Patch by Thibault Saunier  on 2019-07-11
Reviewed by Philippe Normand.

We already have tests for this.

* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::processNewFrame):
(WebCore::GStreamerVideoCaptureSource::newSampleCallback):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (247346 => 247347)

--- trunk/Source/WebCore/ChangeLog	2019-07-11 09:42:22 UTC (rev 247346)
+++ trunk/Source/WebCore/ChangeLog	2019-07-11 10:57:54 UTC (rev 247347)
@@ -1,3 +1,17 @@
+2019-07-11  Thibault Saunier  
+
+[GStreamer][MediaStream] Use the new dispatchMediaSampleToObservers to dispatch new buffers
+https://bugs.webkit.org/show_bug.cgi?id=199689
+
+Reviewed by Philippe Normand.
+
+We already have tests for this.
+
+* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
+(WebCore::GStreamerVideoCaptureSource::processNewFrame):
+(WebCore::GStreamerVideoCaptureSource::newSampleCallback):
+* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
+
 2019-07-10  Simon Fraser  
 
 [iOS WK2] With modal overlay and body overflow:hidden, can't access all the content


Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp (247346 => 247347)

--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp	2019-07-11 09:42:22 UTC (rev 247346)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp	2019-07-11 10:57:54 UTC (rev 247347)
@@ -160,14 +160,21 @@
 m_capturer->play();
 }
 
+void GStreamerVideoCaptureSource::processNewFrame(Ref&& sample)
+{
+if (!isProducingData() || muted())
+return;
+
+dispatchMediaSampleToObservers(WTFMove(sample));
+}
+
 GstFlowReturn GStreamerVideoCaptureSource::newSampleCallback(GstElement* sink, GStreamerVideoCaptureSource* source)
 {
 auto gstSample = adoptGRef(gst_app_sink_pull_sample(GST_APP_SINK(sink)));
 auto mediaSample = MediaSampleGStreamer::create(WTFMove(gstSample), WebCore::FloatSize(), String());
 
-// FIXME - Check how presentationSize is supposed to be used here.
-callOnMainThread([protectedThis = makeRef(*source), mediaSample = WTFMove(mediaSample)] {
-protectedThis->videoSampleAvailable(mediaSample.get());
+source->scheduleDeferredTask([source, sample = WTFMove(mediaSample)] () mutable {
+source->processNewFrame(WTFMove(sample));
 });
 
 return GST_FLOW_OK;


Modified: trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h (247346 => 247347)

--- trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2019-07-11 09:42:22 UTC (rev 247346)
+++ trunk/Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h	2019-07-11 10:57:54 UTC (rev 247347)
@@ -40,6 +40,7 @@
 const RealtimeMediaSourceSettings& settings() override;
 GstElement* pipeline() { return m_capturer->pipeline(); }
 GStreamerCapturer* capturer() { return m_capturer.get(); }
+void processNewFrame(Ref&&);
 
 protected:
 GStreamerVideoCaptureSource(String&& deviceID, String&& name, String&& hashSalt, const gchar * source_factory);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [247346] trunk/Source/JavaScriptCore

2019-07-11 Thread ysuzuki
Title: [247346] trunk/Source/_javascript_Core








Revision 247346
Author ysuz...@apple.com
Date 2019-07-11 02:42:22 -0700 (Thu, 11 Jul 2019)


Log Message
Unreviewed, revert r243617.
https://bugs.webkit.org/show_bug.cgi?id=196341

Mark pointed out that JSVirtualMachine can be gone in the other thread while we are executing GC constraint-solving.
This patch does not account that _javascript_Core.framework is multi-thread safe: JSVirtualMachine wrapper can be destroyed,
and [JSVirtualMachine dealloc] can be executed in any threads while the VM is retained and used in the other thread (e.g.
destroyed from AutoReleasePool in some thread).

* API/JSContext.mm:
(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext initWithGlobalContextRef:]):
(-[JSContext wrapperMap]):
(+[JSContext contextWithJSGlobalContextRef:]):
* API/JSVirtualMachine.mm:
(initWrapperCache):
(wrapperCache):
(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):
(-[JSVirtualMachine initWithContextGroupRef:]):
(-[JSVirtualMachine dealloc]):
(+[JSVirtualMachine virtualMachineWithContextGroupRef:]):
(-[JSVirtualMachine contextForGlobalContextRef:]):
(-[JSVirtualMachine addContext:forGlobalContextRef:]):
(scanExternalObjectGraph):
(scanExternalRememberedSet):
* API/JSVirtualMachineInternal.h:
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::setWrapperMap):
(JSC::JSGlobalObject::setAPIWrapper): Deleted.
(JSC::JSGlobalObject::apiWrapper const): Deleted.
* runtime/VM.h:

Modified Paths

trunk/Source/_javascript_Core/API/JSContext.mm
trunk/Source/_javascript_Core/API/JSVirtualMachine.mm
trunk/Source/_javascript_Core/API/JSVirtualMachineInternal.h
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/runtime/JSGlobalObject.h
trunk/Source/_javascript_Core/runtime/VM.h




Diff

Modified: trunk/Source/_javascript_Core/API/JSContext.mm (247345 => 247346)

--- trunk/Source/_javascript_Core/API/JSContext.mm	2019-07-11 07:34:19 UTC (rev 247345)
+++ trunk/Source/_javascript_Core/API/JSContext.mm	2019-07-11 09:42:22 UTC (rev 247346)
@@ -85,15 +85,13 @@
 };
 
 [self ensureWrapperMap];
+[m_virtualMachine addContext:self forGlobalContextRef:m_context];
 
-toJSGlobalObject(m_context)->setAPIWrapper((__bridge void*)self);
-
 return self;
 }
 
 - (void)dealloc
 {
-toJSGlobalObject(m_context)->setAPIWrapper((__bridge void*)nil);
 m_exception.clear();
 JSGlobalContextRelease(m_context);
 [m_virtualMachine release];
@@ -310,7 +308,7 @@
 context.exception = exceptionValue;
 };
 
-toJSGlobalObject(m_context)->setAPIWrapper((__bridge void*)self);
+[m_virtualMachine addContext:self forGlobalContextRef:m_context];
 
 return self;
 }
@@ -360,7 +358,7 @@
 
 - (JSWrapperMap *)wrapperMap
 {
-return toJSGlobalObject(m_context)->wrapperMap();
+return toJS(m_context)->lexicalGlobalObject()->wrapperMap();
 }
 
 - (JSValue *)wrapperForJSObject:(JSValueRef)value
@@ -371,7 +369,8 @@
 
 + (JSContext *)contextWithJSGlobalContextRef:(JSGlobalContextRef)globalContext
 {
-JSContext *context = (__bridge JSContext *)toJSGlobalObject(globalContext)->apiWrapper();
+JSVirtualMachine *virtualMachine = [JSVirtualMachine virtualMachineWithContextGroupRef:toRef((globalContext)->vm())];
+JSContext *context = [virtualMachine contextForGlobalContextRef:globalContext];
 if (!context)
 context = [[[JSContext alloc] initWithGlobalContextRef:globalContext] autorelease];
 return context;


Modified: trunk/Source/_javascript_Core/API/JSVirtualMachine.mm (247345 => 247346)

--- trunk/Source/_javascript_Core/API/JSVirtualMachine.mm	2019-07-11 07:34:19 UTC (rev 247345)
+++ trunk/Source/_javascript_Core/API/JSVirtualMachine.mm	2019-07-11 09:42:22 UTC (rev 247346)
@@ -41,9 +41,50 @@
 #import 
 #import 
 
+static NSMapTable *globalWrapperCache = 0;
+
+static Lock wrapperCacheMutex;
+
+static void initWrapperCache()
+{
+ASSERT(!globalWrapperCache);
+NSPointerFunctionsOptions keyOptions = NSPointerFunctionsOpaqueMemory | NSPointerFunctionsOpaquePersonality;
+NSPointerFunctionsOptions valueOptions = NSPointerFunctionsWeakMemory | NSPointerFunctionsObjectPersonality;
+globalWrapperCache = [[NSMapTable alloc] initWithKeyOptions:keyOptions valueOptions:valueOptions capacity:0];
+}
+
+static NSMapTable *wrapperCache()
+{
+if (!globalWrapperCache)
+initWrapperCache();
+return globalWrapperCache;
+}
+
+@interface JSVMWrapperCache : NSObject
++ (void)addWrapper:(JSVirtualMachine *)wrapper forJSContextGroupRef:(JSContextGroupRef)group;
++ (JSVirtualMachine *)wrapperForJSContextGroupRef:(JSContextGroupRef)group;
+@end
+
+@implementation JSVMWrapperCache
+
++ (void)addWrapper:(JSVirtualMachine *)wrapper forJSContextGroupRef:(JSContextGroupRef)group
+{
+std::lock_guard lock(wrapperCacheMutex);
+NSMapInsert(wrapperCache(), group, (__bridge void*)wrapper);
+}
+
++ (JSVirtualMachine 

[webkit-changes] [247345] trunk/Source/WebKit

2019-07-11 Thread wenson_hsieh
Title: [247345] trunk/Source/WebKit








Revision 247345
Author wenson_hs...@apple.com
Date 2019-07-11 00:34:19 -0700 (Thu, 11 Jul 2019)


Log Message
MobileSafari may crash under -[UIKeyboardTaskExecutionContext transferExecutionToMainThreadWithTask:]
https://bugs.webkit.org/show_bug.cgi?id=199701


Reviewed by Tim Horton.

Mitigates a crash wherein we end up calling the completion handler of
-requestAutocorrectionContextWithCompletionHandler: within a nested call
to -requestAutocorrectionContextWithCompletionHandler:. In this particular
case, a sync `window.open` from the web process to the UI process happens
while the UI process is already handling a sync autocorrection context
request. This causes the UI process to try and immediately dispatch the
incoming sync message to avoid deadlock. However, Safari's logic to create
and set up a new web view when opening a new window makes the new view the
first responder, which then prompts UIKit logic to request an autocorrection
context for the new web view.

To avoid the issue for now, simply use -resignFirstResponder as a cue to invoke
pending autocorrection context handlers in the original web view before UIKit
tries to request autocorrection context in the newly created view.

I attempted to write a test for this, but realized that we only end up hitting
the debug assertion pointed out in ; we should be
able to write a test for this in the future, if we teach Connection to handle
multiple outgoing sync messages.

For the time being, I've attached a manual test case to the bug.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _cancelPendingAutocorrectionContextHandler]):

Add a new helper to signify that a pending autocorrection context handler should be cancelled (invoked
immediately with empty data). Use this in a few places where we currently explicitly pass
-[WKAutocorrectionContext emptyAutocorrectionContext].

(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

Modified Paths

trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm




Diff

Modified: trunk/Source/WebKit/ChangeLog (247344 => 247345)

--- trunk/Source/WebKit/ChangeLog	2019-07-11 04:28:16 UTC (rev 247344)
+++ trunk/Source/WebKit/ChangeLog	2019-07-11 07:34:19 UTC (rev 247345)
@@ -1,3 +1,43 @@
+2019-07-11  Wenson Hsieh  
+
+MobileSafari may crash under -[UIKeyboardTaskExecutionContext transferExecutionToMainThreadWithTask:]
+https://bugs.webkit.org/show_bug.cgi?id=199701
+
+
+Reviewed by Tim Horton.
+
+Mitigates a crash wherein we end up calling the completion handler of
+-requestAutocorrectionContextWithCompletionHandler: within a nested call
+to -requestAutocorrectionContextWithCompletionHandler:. In this particular
+case, a sync `window.open` from the web process to the UI process happens
+while the UI process is already handling a sync autocorrection context
+request. This causes the UI process to try and immediately dispatch the
+incoming sync message to avoid deadlock. However, Safari's logic to create
+and set up a new web view when opening a new window makes the new view the
+first responder, which then prompts UIKit logic to request an autocorrection
+context for the new web view.
+
+To avoid the issue for now, simply use -resignFirstResponder as a cue to invoke
+pending autocorrection context handlers in the original web view before UIKit
+tries to request autocorrection context in the newly created view.
+
+I attempted to write a test for this, but realized that we only end up hitting
+the debug assertion pointed out in ; we should be
+able to write a test for this in the future, if we teach Connection to handle
+multiple outgoing sync messages.
+
+For the time being, I've attached a manual test case to the bug.
+
+* UIProcess/ios/WKContentViewInteraction.mm:
+(-[WKContentView resignFirstResponderForWebView]):
+(-[WKContentView _cancelPendingAutocorrectionContextHandler]):
+
+Add a new helper to signify that a pending autocorrection context handler should be cancelled (invoked
+immediately with empty data). Use this in a few places where we currently explicitly pass
+-[WKAutocorrectionContext emptyAutocorrectionContext].
+
+(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):
+
 2019-07-10  Simon Fraser  
 
 [iOS WK2] With modal overlay and body overflow:hidden, can't access all the content


Modified: trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (247344 => 247345)

--- trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-07-11 04:28:16 UTC (rev 247344)
+++ trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-07-11 07:34:19 UTC (rev 247345)
@@ -1267,6 +1267,7