WebKit Bugzilla
Attachment 358504 Details for
Bug 193188
: Deactivate audio session whenever possible
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-193188-20190108070443.patch (text/plain), 21.74 KB, created by
Eric Carlson
on 2019-01-07 10:04:45 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eric Carlson
Created:
2019-01-07 10:04:45 PST
Size:
21.74 KB
patch
obsolete
>Subversion Revision: 239676 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 3b718d102b27c05fb479747b9368f58f924e93e2..73973d076cd7ef09efcf376f10527a4059582859 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,39 @@ >+2019-01-07 Eric Carlson <eric.carlson@apple.com> >+ >+ Deactivate audio session whenever possible >+ https://bugs.webkit.org/show_bug.cgi?id=193188 >+ <rdar://problem/42678977> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Test: media/deactivate-audio-session.html >+ >+ * platform/audio/AudioSession.cpp: >+ (WebCore::AudioSession::tryToSetActive): >+ (WebCore::AudioSession::tryToSetActiveInternal): >+ * platform/audio/AudioSession.h: >+ (WebCore::AudioSession::isActive const): >+ >+ * platform/audio/PlatformMediaSessionManager.cpp: >+ (WebCore::PlatformMediaSessionManager::removeSession): >+ (WebCore::deactivateAudioSession): >+ (WebCore::PlatformMediaSessionManager::shouldDeactivateAudioSession): >+ (WebCore::PlatformMediaSessionManager::setShouldDeactivateAudioSession): >+ * platform/audio/PlatformMediaSessionManager.h: >+ >+ * platform/audio/ios/AudioSessionIOS.mm: >+ (WebCore::AudioSession::tryToSetActiveInternal): >+ (WebCore::AudioSession::tryToSetActive): Deleted. >+ >+ * platform/audio/mac/AudioSessionMac.cpp: >+ (WebCore::AudioSession::tryToSetActiveInternal): >+ (WebCore::AudioSession::tryToSetActive): Deleted. >+ >+ * testing/Internals.cpp: >+ (WebCore::Internals::audioSessionActive const): >+ * testing/Internals.h: >+ * testing/Internals.idl: >+ > 2019-01-07 Zalan Bujtas <zalan@apple.com> > > [LFC][BFC] Margin collapsing should not be limited to in-flow non-replaced boxes. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 4c199aaaae5acbb24d144cde08b4b8dd13b49b07..3fcfed5ab91c32004bb9d0829475234cac29c25f 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,14 @@ >+2019-01-07 Eric Carlson <eric.carlson@apple.com> >+ >+ Deactivate audio session whenever possible >+ https://bugs.webkit.org/show_bug.cgi?id=193188 >+ <rdar://problem/42678977> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::WebPage): >+ > 2019-01-07 Alex Christensen <achristensen@webkit.org> > > Modernize CacheModel and disk cache fetching and clearing >diff --git a/Source/WebCore/platform/audio/AudioSession.cpp b/Source/WebCore/platform/audio/AudioSession.cpp >index 2cc9791d964fee9c8bd15975c62a570893165017..f60eae80109e12dca5445454fa858464a98758dd 100644 >--- a/Source/WebCore/platform/audio/AudioSession.cpp >+++ b/Source/WebCore/platform/audio/AudioSession.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013-2014 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -39,6 +39,15 @@ AudioSession& AudioSession::sharedSession() > return session; > } > >+bool AudioSession::tryToSetActive(bool active) >+{ >+ if (!tryToSetActiveInternal(active)) >+ return false; >+ >+ m_active = active; >+ return true; >+} >+ > #if !PLATFORM(COCOA) > class AudioSessionPrivate { > }; >@@ -91,7 +100,7 @@ size_t AudioSession::numberOfOutputChannels() const > return 0; > } > >-bool AudioSession::tryToSetActive(bool) >+bool AudioSession::tryToSetActiveInternal(bool) > { > notImplemented(); > return true; >diff --git a/Source/WebCore/platform/audio/AudioSession.h b/Source/WebCore/platform/audio/AudioSession.h >index 1b632e1309f690a0451e4516bc555f8ea17fe116..cabb8741419e4ec4f11e75b047e3c21664ab7db1 100644 >--- a/Source/WebCore/platform/audio/AudioSession.h >+++ b/Source/WebCore/platform/audio/AudioSession.h >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013-2018 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -87,13 +87,18 @@ public: > bool isMuted() const; > void handleMutedStateChange(); > >+ bool isActive() const { return m_active; } >+ > private: > friend class NeverDestroyed<AudioSession>; > AudioSession(); > ~AudioSession(); > >+ bool tryToSetActiveInternal(bool); >+ > std::unique_ptr<AudioSessionPrivate> m_private; > HashSet<MutedStateObserver*> m_observers; >+ bool m_active { false }; // Used only for testing. > }; > > } >diff --git a/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp b/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp >index f68f86661a0665e5aef9632f0ff9b9b29cccc715..2050c5e082f3381b671802f835b07ec54e48c5d4 100644 >--- a/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp >+++ b/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013-2015 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -162,6 +162,12 @@ void PlatformMediaSessionManager::removeSession(PlatformMediaSession& session) > if (m_sessions.isEmpty() || std::all_of(m_sessions.begin(), m_sessions.end(), std::logical_not<void>())) { > m_remoteCommandListener = nullptr; > m_audioHardwareListener = nullptr; >+#if USE(AUDIO_SESSION) >+ if (m_becameActive && shouldDeactivateAudioSession()) { >+ AudioSession::sharedSession().tryToSetActive(false); >+ m_becameActive = false; >+ } >+#endif > } > > updateSessionState(); >@@ -199,6 +205,8 @@ bool PlatformMediaSessionManager::sessionWillBeginPlayback(PlatformMediaSession& > #if USE(AUDIO_SESSION) > if (activeAudioSessionRequired() && !AudioSession::sharedSession().tryToSetActive(true)) > return false; >+ >+ m_becameActive = true; > #endif > > if (m_interrupted) >@@ -469,6 +477,22 @@ PlatformMediaSession* PlatformMediaSessionManager::findSession(const Function<bo > return foundSession; > } > >+static bool& deactivateAudioSession() >+{ >+ static bool deactivate; >+ return deactivate; >+} >+ >+bool PlatformMediaSessionManager::shouldDeactivateAudioSession() >+{ >+ return deactivateAudioSession(); >+} >+ >+void PlatformMediaSessionManager::setShouldDeactivateAudioSession(bool deactivate) >+{ >+ deactivateAudioSession() = deactivate; >+} >+ > #else // ENABLE(VIDEO) || ENABLE(WEB_AUDIO) > > void PlatformMediaSessionManager::updateNowPlayingInfoIfNecessary() >diff --git a/Source/WebCore/platform/audio/PlatformMediaSessionManager.h b/Source/WebCore/platform/audio/PlatformMediaSessionManager.h >index e670dafc113131daa4e282c9c40bb209327b4832..065d94fedc895ad6edd5bdae20046cab2260d8f2 100644 >--- a/Source/WebCore/platform/audio/PlatformMediaSessionManager.h >+++ b/Source/WebCore/platform/audio/PlatformMediaSessionManager.h >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013-2015 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -48,6 +48,8 @@ public: > > static void updateNowPlayingInfoIfNecessary(); > >+ WEBCORE_EXPORT static void setShouldDeactivateAudioSession(bool); >+ > virtual ~PlatformMediaSessionManager() = default; > > virtual void scheduleUpdateNowPlayingInfo() { } >@@ -146,6 +148,8 @@ private: > void systemWillSleep() override; > void systemDidWake() override; > >+ static bool shouldDeactivateAudioSession(); >+ > SessionRestrictions m_restrictions[PlatformMediaSession::MediaStreamCapturingAudio + 1]; > mutable Vector<PlatformMediaSession*> m_sessions; > std::unique_ptr<RemoteCommandListener> m_remoteCommandListener; >@@ -161,6 +165,10 @@ private: > mutable bool m_isApplicationInBackground { false }; > bool m_willIgnoreSystemInterruptions { false }; > mutable int m_iteratingOverSessions { 0 }; >+ >+#if USE(AUDIO_SESSION) >+ bool m_becameActive { false }; >+#endif > }; > > } >diff --git a/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm b/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm >index 6b0f3a062ed6bc33124b5be33cc89c158ac19660..dd65dae8602f99dfdf6642a08aaf831c10da9c4b 100644 >--- a/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm >+++ b/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013-2014 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -32,6 +32,7 @@ > #import <AVFoundation/AVAudioSession.h> > #import <objc/runtime.h> > #import <pal/spi/mac/AVFoundationSPI.h> >+#import <wtf/OSObjectPtr.h> > #import <wtf/RetainPtr.h> > #import <wtf/SoftLinking.h> > >@@ -82,6 +83,7 @@ class AudioSessionPrivate { > public: > AudioSessionPrivate(AudioSession*); > AudioSession::CategoryType m_categoryOverride; >+ OSObjectPtr<dispatch_queue_t> m_dispatchQueue; > }; > > AudioSessionPrivate::AudioSessionPrivate(AudioSession*) >@@ -213,11 +215,29 @@ size_t AudioSession::numberOfOutputChannels() const > return [[AVAudioSession sharedInstance] outputNumberOfChannels]; > } > >-bool AudioSession::tryToSetActive(bool active) >+bool AudioSession::tryToSetActiveInternal(bool active) > { >- NSError *error = nil; >- [[AVAudioSession sharedInstance] setActive:active withOptions:active ? 0 : AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; >- return !error; >+ __block NSError* error = nil; >+ >+ if (!m_private->m_dispatchQueue) >+ m_private->m_dispatchQueue = adoptOSObject(dispatch_queue_create("AudioSession Activation Queue", DISPATCH_QUEUE_SERIAL)); >+ >+ // We need to deactivate the session on another queue because the AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation option >+ // means that AVAudioSession may synchronously unduck previously ducked clients. Activation needs to complete before this method >+ // returns, so do it synchronously on the same serial queue. >+ if (active) { >+ dispatch_sync(m_private->m_dispatchQueue.get(), ^{ >+ [[AVAudioSession sharedInstance] setActive:YES withOptions:0 error:&error]; >+ }); >+ >+ return !error; >+ } >+ >+ dispatch_async(m_private->m_dispatchQueue.get(), ^{ >+ [[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:&error]; >+ }); >+ >+ return true; > } > > size_t AudioSession::preferredBufferSize() const >diff --git a/Source/WebCore/platform/audio/mac/AudioSessionMac.cpp b/Source/WebCore/platform/audio/mac/AudioSessionMac.cpp >index e9180988d69c96508dc121a170e712aeaaccfe5a..5537c21ee41f4e587c4611784ee0e3ac62bdb4d4 100644 >--- a/Source/WebCore/platform/audio/mac/AudioSessionMac.cpp >+++ b/Source/WebCore/platform/audio/mac/AudioSessionMac.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2013 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -126,7 +126,7 @@ size_t AudioSession::numberOfOutputChannels() const > return 0; > } > >-bool AudioSession::tryToSetActive(bool) >+bool AudioSession::tryToSetActiveInternal(bool) > { > notImplemented(); > return true; >diff --git a/Source/WebCore/testing/Internals.cpp b/Source/WebCore/testing/Internals.cpp >index 3c0a59f1d72f1d4a285a815a4172168d771e823a..18e57892aba4fc4c9c191273939be4cb5ba799c5 100644 >--- a/Source/WebCore/testing/Internals.cpp >+++ b/Source/WebCore/testing/Internals.cpp >@@ -1,6 +1,6 @@ > /* > * Copyright (C) 2012 Google Inc. All rights reserved. >- * Copyright (C) 2013-2018 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -4630,6 +4630,14 @@ double Internals::preferredAudioBufferSize() const > return 0; > } > >+bool Internals::audioSessionActive() const >+{ >+#if USE(AUDIO_SESSION) >+ return AudioSession::sharedSession().isActive(); >+#endif >+ return false; >+} >+ > void Internals::clearCacheStorageMemoryRepresentation(DOMPromiseDeferred<void>&& promise) > { > auto* document = contextDocument(); >diff --git a/Source/WebCore/testing/Internals.h b/Source/WebCore/testing/Internals.h >index b37fa6986d57b7b166b88bd42cf24e0b9e0f4fc3..f70b7b6b93e7bf017364036002da4686a6eece94 100644 >--- a/Source/WebCore/testing/Internals.h >+++ b/Source/WebCore/testing/Internals.h >@@ -1,6 +1,6 @@ > /* > * Copyright (C) 2012 Google Inc. All rights reserved. >- * Copyright (C) 2013-2017 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -693,6 +693,7 @@ public: > > String audioSessionCategory() const; > double preferredAudioBufferSize() const; >+ bool audioSessionActive() const; > > void clearCacheStorageMemoryRepresentation(DOMPromiseDeferred<void>&&); > void cacheStorageEngineRepresentation(DOMPromiseDeferred<IDLDOMString>&&); >diff --git a/Source/WebCore/testing/Internals.idl b/Source/WebCore/testing/Internals.idl >index 7a3d9174d1de2744a870fa27e358ad51e095b43d..0e746595da3af637cb7611324f69b8f20f33d04d 100644 >--- a/Source/WebCore/testing/Internals.idl >+++ b/Source/WebCore/testing/Internals.idl >@@ -1,6 +1,6 @@ > /* > * Copyright (C) 2012 Google Inc. All rights reserved. >- * Copyright (C) 2013-2017 Apple Inc. All rights reserved. >+ * Copyright (C) 2013-2019 Apple Inc. All rights reserved. > * > * Redistribution and use in source and binary forms, with or without > * modification, are permitted provided that the following conditions >@@ -688,6 +688,7 @@ enum CompositingPolicy { > > DOMString audioSessionCategory(); > double preferredAudioBufferSize(); >+ boolean audioSessionActive(); > > [Conditional=SERVICE_WORKER] Promise<boolean> hasServiceWorkerRegistration(DOMString scopeURL); > [Conditional=SERVICE_WORKER] void terminateServiceWorker(ServiceWorker worker); >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index f6d4bea1d358578a1be6345447491635dfbf02cd..b6c533051948441f8f3b236f5c6e72a23e33ff86 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -1,5 +1,5 @@ > /* >- * Copyright (C) 2010-2018 Apple Inc. All rights reserved. >+ * Copyright (C) 2010-2019 Apple Inc. All rights reserved. > * Copyright (C) 2012 Intel Corporation. All rights reserved. > * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) > * >@@ -188,6 +188,7 @@ > #include <WebCore/PageConfiguration.h> > #include <WebCore/PingLoader.h> > #include <WebCore/PlatformKeyboardEvent.h> >+#include <WebCore/PlatformMediaSessionManager.h> > #include <WebCore/PluginDocument.h> > #include <WebCore/PrintContext.h> > #include <WebCore/PromisedAttachmentInfo.h> >@@ -630,6 +631,10 @@ WebPage::WebPage(uint64_t pageID, WebPageCreationParameters&& parameters) > setViewportConfigurationViewLayoutSize(parameters.viewportConfigurationViewLayoutSize, parameters.viewportConfigurationLayoutSizeScaleFactor, 0); > setMaximumUnobscuredSize(parameters.maximumUnobscuredSize); > #endif >+ >+#if USE(AUDIO_SESSION) >+ PlatformMediaSessionManager::setShouldDeactivateAudioSession(true); >+#endif > } > > #if ENABLE(WEB_RTC) >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 1486382618788f2984e185d879169f8de3964695..088073ea62cc4ee108ebf709c1920fee5511ab41 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,17 @@ >+2019-01-07 Eric Carlson <eric.carlson@apple.com> >+ >+ Deactivate audio session whenever possible >+ https://bugs.webkit.org/show_bug.cgi?id=193188 >+ <rdar://problem/42678977> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * TestExpectations: Skip the new test. >+ * media/deactivate-audio-session-expected.txt: Added. >+ * media/deactivate-audio-session.html: Added. >+ * platform/ios/TestExpectations: Run the new test. >+ * platform/mac-wk2/TestExpectations: Ditto. >+ > 2019-01-07 Claudio Saavedra <csaavedra@igalia.com> > > [WPE][GTK] Skip css-painting-api tests >diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations >index 4d5c642b9a2b70e5c26b0e6af498f4465f17876c..c47acf0ce8092f04670c3d4d1f8eaf82a4642b88 100644 >--- a/LayoutTests/TestExpectations >+++ b/LayoutTests/TestExpectations >@@ -161,6 +161,7 @@ fast/media/mq-prefers-reduced-motion-live-update.html [ Skip ] > http/tests/loading/basic-auth-remove-credentials.html [ Skip ] > http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html [ Skip ] > http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html [ Skip ] >+media/deactivate-audio-session.html [ Skip ] > > # ApplePay is only available on iOS (greater than iOS 10) and macOS (greater than macOS 10.12) and only for WebKit2. > http/tests/ssl/applepay/ [ Skip ] >diff --git a/LayoutTests/media/deactivate-audio-session-expected.txt b/LayoutTests/media/deactivate-audio-session-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..78b4d9c74322b2c6a1bd91261f494cf510d362f7 >--- /dev/null >+++ b/LayoutTests/media/deactivate-audio-session-expected.txt >@@ -0,0 +1,8 @@ >+Test that audio session is deactivated when the last media element with audio is deleted. >+ >+** iframe loaded. >+EVENT(playing) >+EXPECTED (internals.audioSessionActive() == 'true') OK >+EXPECTED (internals.audioSessionActive() == 'false') OK >+END OF TEST >+ >diff --git a/LayoutTests/media/deactivate-audio-session.html b/LayoutTests/media/deactivate-audio-session.html >new file mode 100644 >index 0000000000000000000000000000000000000000..3d88ed088ed70de8c1a044f6d44284bfdd79f9a1 >--- /dev/null >+++ b/LayoutTests/media/deactivate-audio-session.html >@@ -0,0 +1,64 @@ >+<!DOCTYPE html> >+<html> >+ <head> >+ <title>'play' event</title> >+ <script src=media-file.js></script> >+ <script src=video-test.js></script> >+ <script src=../resources/gc.js></script> >+ >+ <script> >+ async function waitForTestToFinish() >+ { >+ gc(); >+ >+ if (window.internals) >+ await testExpectedEventually('internals.audioSessionActive()', false); >+ >+ endTest(); >+ } >+ >+ function playing() >+ { >+ consoleWrite("EVENT(playing)"); >+ >+ if (window.internals) >+ testExpected('internals.audioSessionActive()', true); >+ >+ let frame = document.getElementById("frame"); >+ frame.parentNode.innerHTML = ''; >+ >+ setTimeout(waitForTestToFinish, 100); >+ } >+ >+ function frameLoaded() >+ { >+ consoleWrite("** iframe loaded."); >+ >+ var standaloneMediaDocument = document.getElementById("frame").contentDocument; >+ let video = standaloneMediaDocument.querySelector("video"); >+ if (!video) { >+ failTest("ERROR: Video element was not found in frameLoaded()."); >+ return; >+ } >+ >+ video.pause(); >+ video.addEventListener('playing', playing); >+ video.play(); >+ } >+ >+ function start() >+ { >+ let frame = document.getElementById("frame"); >+ frame.onload = frameLoaded; >+ frame.src = findMediaFile('audio', 'content/test'); >+ } >+ </script> >+ </head> >+ >+ <body onload="start()"> >+ <p>Test that audio session is deactivated when the last media element with audio is deleted.</p> >+ <div> >+ <iframe id="frame" width=400 height=300"></iframe> >+ </div> >+ </body> >+</html> >diff --git a/LayoutTests/platform/ios/TestExpectations b/LayoutTests/platform/ios/TestExpectations >index 4c38407ee7b6c2b2d6155635eea954aed9e38a58..19c2499f34c3789e93f19a23946670d442ea0f49 100644 >--- a/LayoutTests/platform/ios/TestExpectations >+++ b/LayoutTests/platform/ios/TestExpectations >@@ -2818,6 +2818,7 @@ http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html > # Skipped in general expectations since they only work on iOS and Mac, WK2. > http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html [ Pass ] > http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html [ Pass ] >+media/deactivate-audio-session.html [ Pass ] > > webkit.org/b/175273 imported/w3c/web-platform-tests/html/browsers/windows/noreferrer-window-name.html [ Failure ] > >diff --git a/LayoutTests/platform/mac-wk2/TestExpectations b/LayoutTests/platform/mac-wk2/TestExpectations >index caaa4c15daac91f3659a35a6240645cae2a0521d..714d9e9c52a88a51bcba6bd6cf2e81212d627c04 100644 >--- a/LayoutTests/platform/mac-wk2/TestExpectations >+++ b/LayoutTests/platform/mac-wk2/TestExpectations >@@ -788,6 +788,7 @@ webkit.org/b/185994 [ Debug ] fast/text/user-installed-fonts/shadow-postscript-f > # Skipped in general expectations since they only work on iOS and Mac, WK2. > http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html [ Pass ] > http/tests/security/strip-referrer-to-origin-for-third-party-requests-in-private-mode.html [ Pass ] >+media/deactivate-audio-session.html [ Pass ] > > # Link preconnect is disabled on pre-High Sierra because the CFNetwork SPI is missing. > [ Sierra ] http/tests/preconnect [ Skip ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 193188
:
358483
|
358489
|
358502
| 358504