Title: [189112] trunk
Revision
189112
Author
jer.no...@apple.com
Date
2015-08-28 11:51:42 -0700 (Fri, 28 Aug 2015)

Log Message

[iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=147512

Reviewed by Anders Carlsson.

Source/WebCore:

Updated existing tests to use the Setting rather than the Behavior Restriction.

Get rid of the sessionRestrictsInlineVideoPlayback() method and the InlineVideoPlaybackRestricted
restriction. Instead, just use the allowsInlineMediaPlayback() setting, and require
WebKit and WebKitLegacy clients to initialize the setting appropriately.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Deleted.
* page/Settings.cpp: Add a new inlineMediaPlaybackRequiresPlaysInlineAttribute setting.
* page/Settings.in: Ditto.
* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback): Deleted.
* platform/audio/PlatformMediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions): Deleted.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Backup the allowsInlineMediaPlayback() setting value.
(WebCore::InternalSettings::Backup::restoreTo): Restore same.
(WebCore::InternalSettings::setAllowsInlineMediaPlayback): Set allowsInlineMediaPlayback().
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
* testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions): Deleted.

Source/WebKit/mac:

Add a new preference, inlineMediaPlaybackRequiresPlaysInlineAttribute, which defaults to
NO on iPad and YES on iPhone and iPod.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Default the value of WebKitAllowsInlineMediaPlaybackPreferenceKey to
YES on iPad and NO on iPhone and iPod.
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

Default the value of allowsInlineMediaPlayback to YES on iPad and NO on iPhone and iPod.
Add a new configuration property, _inlineMediaPlaybackRequiresPlaysInlineAttribute, which
defaults to NO on iPad and YES on iPhone and iPad.

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Set the value of WebKitAllowsInlineMediaPlayback / WKPreferencesSetMediaPlaybackAllowsInline()
to a consistent (true) value.

* DumpRenderTree/mac/DumpRenderTree.mm:
(setDefaultsToConsistentValuesForTesting):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

* media/video-fullscreeen-only-controls.html:
* media/video-fullscreeen-only-controls-expected.txt:
* media/video-fullscreeen-only-playback.html:
* media/video-fullscreeen-only-playback-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (189111 => 189112)


--- trunk/LayoutTests/ChangeLog	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/LayoutTests/ChangeLog	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,3 +1,15 @@
+2015-08-28  Jer Noble  <jer.no...@apple.com>
+
+        [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=147512
+
+        Reviewed by Anders Carlsson.
+
+        * media/video-fullscreeen-only-controls.html:
+        * media/video-fullscreeen-only-controls-expected.txt:
+        * media/video-fullscreeen-only-playback.html:
+        * media/video-fullscreeen-only-playback-expected.txt:
+
 2015-08-28  Eric Carlson  <eric.carl...@apple.com>
 
         Media Session: MediaSession.releaseSession() renamed to deactivate()

Modified: trunk/LayoutTests/media/video-fullscreeen-only-controls-expected.txt (189111 => 189112)


--- trunk/LayoutTests/media/video-fullscreeen-only-controls-expected.txt	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/LayoutTests/media/video-fullscreeen-only-controls-expected.txt	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,7 +1,7 @@
 This tests that when inline-playback is restricted, the video element's "controls" are always shown while inline.
 
 
-RUN(internals.setMediaSessionRestrictions('video', 'InlineVideoPlaybackRestricted'))
+RUN(internals.settings.setAllowsInlineMediaPlayback(false))
 EXPECTED (video.hasAttribute('controls') == 'false') OK
 EXPECTED (video.controls == 'false') OK
 EXPECTED (shadowRoot = internals.shadowRoot(video) != 'null') OK

Modified: trunk/LayoutTests/media/video-fullscreeen-only-controls.html (189111 => 189112)


--- trunk/LayoutTests/media/video-fullscreeen-only-controls.html	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/LayoutTests/media/video-fullscreeen-only-controls.html	2015-08-28 18:51:42 UTC (rev 189112)
@@ -9,7 +9,7 @@
     var shadowRoot;
     var panel;
 
-    run("internals.setMediaSessionRestrictions('video', 'InlineVideoPlaybackRestricted')");
+    run("internals.settings.setAllowsInlineMediaPlayback(false)");
 
     var video = document.getElementById('video');
     video.src = "" "content/test");

Modified: trunk/LayoutTests/media/video-fullscreeen-only-playback-expected.txt (189111 => 189112)


--- trunk/LayoutTests/media/video-fullscreeen-only-playback-expected.txt	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/LayoutTests/media/video-fullscreeen-only-playback-expected.txt	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,7 +1,7 @@
 
 Test play() when <video> playback requires fullscreen.
 
-RUN(internals.setMediaSessionRestrictions('video', 'InlineVideoPlaybackRestricted'))
+internals.settings.setAllowsInlineMediaPlayback(false)
 
 EVENT(canplaythrough)
 EXPECTED (video.webkitSupportsFullscreen == 'true') OK

Modified: trunk/LayoutTests/media/video-fullscreeen-only-playback.html (189111 => 189112)


--- trunk/LayoutTests/media/video-fullscreeen-only-playback.html	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/LayoutTests/media/video-fullscreeen-only-playback.html	2015-08-28 18:51:42 UTC (rev 189112)
@@ -64,7 +64,7 @@
 
                 video.src = "" "content/test");
 
-                run("internals.setMediaSessionRestrictions('video', 'InlineVideoPlaybackRestricted')");
+                run("internals.settings.setAllowsInlineMediaPlayback(false)");
                 consoleWrite("");
             }
         </script>

Modified: trunk/Source/WebCore/ChangeLog (189111 => 189112)


--- trunk/Source/WebCore/ChangeLog	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/ChangeLog	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,3 +1,34 @@
+2015-08-28  Jer Noble  <jer.no...@apple.com>
+
+        [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=147512
+
+        Reviewed by Anders Carlsson.
+
+        Updated existing tests to use the Setting rather than the Behavior Restriction.
+
+        Get rid of the sessionRestrictsInlineVideoPlayback() method and the InlineVideoPlaybackRestricted
+        restriction. Instead, just use the allowsInlineMediaPlayback() setting, and require
+        WebKit and WebKitLegacy clients to initialize the setting appropriately.
+
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Deleted.
+        * page/Settings.cpp: Add a new inlineMediaPlaybackRequiresPlaysInlineAttribute setting.
+        * page/Settings.in: Ditto.
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        (WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback): Deleted.
+        * platform/audio/PlatformMediaSessionManager.h:
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        (WebCore::MediaSessionManageriOS::resetRestrictions): Deleted.
+        * testing/InternalSettings.cpp:
+        (WebCore::InternalSettings::Backup::Backup): Backup the allowsInlineMediaPlayback() setting value.
+        (WebCore::InternalSettings::Backup::restoreTo): Restore same.
+        (WebCore::InternalSettings::setAllowsInlineMediaPlayback): Set allowsInlineMediaPlayback().
+        * testing/InternalSettings.h:
+        * testing/InternalSettings.idl:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setMediaSessionRestrictions): Deleted.
+
 2015-08-28  Eric Carlson  <eric.carl...@apple.com>
 
         Media Session: MediaSession.releaseSession() renamed to deactivate()

Modified: trunk/Source/WebCore/html/MediaElementSession.cpp (189111 => 189112)


--- trunk/Source/WebCore/html/MediaElementSession.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/html/MediaElementSession.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -360,22 +360,11 @@
     if (pageExplicitlyAllowsElementToAutoplayInline(element))
         return false;
 
-    if (!PlatformMediaSessionManager::sharedManager().sessionRestrictsInlineVideoPlayback(*this))
-        return false;
-
     Settings* settings = element.document().settings();
     if (!settings || !settings->allowsInlineMediaPlayback())
         return true;
 
-    if (element.fastHasAttribute(HTMLNames::webkit_playsinlineAttr))
-        return false;
-
-#if PLATFORM(IOS)
-    if (applicationIsDumpRenderTree())
-        return false;
-#endif
-
-    return true;
+    return settings->inlineMediaPlaybackRequiresPlaysInlineAttribute() && !element.fastHasAttribute(HTMLNames::webkit_playsinlineAttr);
 }
 
 bool MediaElementSession::allowsAutomaticMediaDataLoading(const HTMLMediaElement& element) const

Modified: trunk/Source/WebCore/page/Settings.cpp (189111 => 189112)


--- trunk/Source/WebCore/page/Settings.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/page/Settings.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -122,6 +122,7 @@
 static const bool defaultFixedBackgroundsPaintRelativeToDocument = true;
 static const bool defaultAcceleratedCompositingForFixedPositionEnabled = true;
 static const bool defaultAllowsInlineMediaPlayback = false;
+static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = true;
 static const bool defaultRequiresUserGestureForMediaPlayback = true;
 static const bool defaultAudioPlaybackRequiresUserGesture = true;
 static const bool defaultShouldRespectImageOrientation = true;
@@ -133,6 +134,7 @@
 static const bool defaultFixedBackgroundsPaintRelativeToDocument = false;
 static const bool defaultAcceleratedCompositingForFixedPositionEnabled = false;
 static const bool defaultAllowsInlineMediaPlayback = true;
+static const bool defaultInlineMediaPlaybackRequiresPlaysInlineAttribute = false;
 static const bool defaultRequiresUserGestureForMediaPlayback = false;
 static const bool defaultAudioPlaybackRequiresUserGesture = false;
 static const bool defaultShouldRespectImageOrientation = false;

Modified: trunk/Source/WebCore/page/Settings.in (189111 => 189112)


--- trunk/Source/WebCore/page/Settings.in	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/page/Settings.in	2015-08-28 18:51:42 UTC (rev 189112)
@@ -128,6 +128,7 @@
 requiresUserGestureForMediaPlayback initial=defaultRequiresUserGestureForMediaPlayback
 audioPlaybackRequiresUserGesture initial=defaultAudioPlaybackRequiresUserGesture
 allowsInlineMediaPlayback initial=defaultAllowsInlineMediaPlayback
+inlineMediaPlaybackRequiresPlaysInlineAttribute initial=defaultInlineMediaPlaybackRequiresPlaysInlineAttribute
 allowsPictureInPictureMediaPlayback initial=defaultAllowsPictureInPictureMediaPlayback
 mediaControlsScaleWithPageZoom initial=defaultMediaControlsScaleWithPageZoom
 passwordEchoEnabled initial=false

Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp (189111 => 189112)


--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -267,15 +267,6 @@
     return m_sessions[0];
 }
     
-bool PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback(const PlatformMediaSession& session) const
-{
-    PlatformMediaSession::MediaType sessionType = session.presentationType();
-    if (sessionType != PlatformMediaSession::Video)
-        return false;
-
-    return m_restrictions[sessionType] & InlineVideoPlaybackRestricted;
-}
-
 bool PlatformMediaSessionManager::sessionCanLoadMedia(const PlatformMediaSession& session) const
 {
     return session.state() == PlatformMediaSession::Playing || !session.isHidden() || session.isPlayingToWirelessPlaybackTarget();

Modified: trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h (189111 => 189112)


--- trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/platform/audio/PlatformMediaSessionManager.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -81,9 +81,6 @@
 
     virtual bool sessionWillBeginPlayback(PlatformMediaSession&);
     virtual void sessionWillEndPlayback(PlatformMediaSession&);
-
-    bool sessionRestrictsInlineVideoPlayback(const PlatformMediaSession&) const;
-
     virtual bool sessionCanLoadMedia(const PlatformMediaSession&) const;
 
 #if PLATFORM(IOS)

Modified: trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm (189111 => 189112)


--- trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -34,7 +34,6 @@
 #import "PlatformMediaSession.h"
 #import "SoftLinking.h"
 #import "SystemMemory.h"
-#import "WebCoreSystemInterface.h"
 #import "WebCoreThreadRun.h"
 #import <AVFoundation/AVAudioSession.h>
 #import <MediaPlayer/MPMediaItem.h>
@@ -148,10 +147,6 @@
 
     PlatformMediaSessionManager::resetRestrictions();
 
-    static wkDeviceClass deviceClass = iosDeviceClass();
-    if (deviceClass == wkDeviceClassiPhone || deviceClass == wkDeviceClassiPod)
-        addRestriction(PlatformMediaSession::Video, InlineVideoPlaybackRestricted);
-
     if (ramSize() < systemMemoryRequiredForVideoInBackgroundTabs) {
         LOG(Media, "MediaSessionManageriOS::resetRestrictions - restricting video in background tabs because system memory = %zul", ramSize());
         addRestriction(PlatformMediaSession::Video, BackgroundTabPlaybackRestricted);

Modified: trunk/Source/WebCore/testing/InternalSettings.cpp (189111 => 189112)


--- trunk/Source/WebCore/testing/InternalSettings.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/testing/InternalSettings.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -101,6 +101,8 @@
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
     , m_allowsAirPlayForMediaPlayback(settings.allowsAirPlayForMediaPlayback())
 #endif
+    , m_allowsInlineMediaPlayback(settings.allowsInlineMediaPlayback())
+    , m_inlineMediaPlaybackRequiresPlaysInlineAttribute(settings.inlineMediaPlaybackRequiresPlaysInlineAttribute())
 {
 }
 
@@ -165,6 +167,8 @@
 #if ENABLE(TOUCH_EVENTS)
     settings.setTouchEventEmulationEnabled(m_touchEventEmulationEnabled);
 #endif
+    settings.setAllowsInlineMediaPlayback(m_allowsInlineMediaPlayback);
+    settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(m_inlineMediaPlaybackRequiresPlaysInlineAttribute);
     RuntimeEnabledFeatures::sharedFeatures().setPluginReplacementEnabled(m_pluginReplacementEnabled);
 }
 
@@ -524,6 +528,18 @@
     settings()->setScrollingTreeIncludesFrames(enabled);
 }
 
+void InternalSettings::setAllowsInlineMediaPlayback(bool allows, ExceptionCode& ec)
+{
+    InternalSettingsGuardForSettings();
+    settings()->setAllowsInlineMediaPlayback(allows);
+}
+
+void InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool requires, ExceptionCode& ec)
+{
+    InternalSettingsGuardForSettings();
+    settings()->setInlineMediaPlaybackRequiresPlaysInlineAttribute(requires);
+}
+
 // If you add to this list, make sure that you update the Backup class for test reproducability!
 
 }

Modified: trunk/Source/WebCore/testing/InternalSettings.h (189111 => 189112)


--- trunk/Source/WebCore/testing/InternalSettings.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/testing/InternalSettings.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -99,6 +99,8 @@
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
         bool m_allowsAirPlayForMediaPlayback;
 #endif
+        bool m_allowsInlineMediaPlayback;
+        bool m_inlineMediaPlaybackRequiresPlaysInlineAttribute;
     };
 
     static PassRefPtr<InternalSettings> create(Page* page)
@@ -144,6 +146,8 @@
     void setBackgroundShouldExtendBeyondPage(bool, ExceptionCode&);
     void setShouldConvertPositionStyleOnCopy(bool, ExceptionCode&);
     void setScrollingTreeIncludesFrames(bool, ExceptionCode&);
+    void setAllowsInlineMediaPlayback(bool, ExceptionCode&);
+    void setInlineMediaPlaybackRequiresPlaysInlineAttribute(bool, ExceptionCode&);
 
 private:
     explicit InternalSettings(Page*);

Modified: trunk/Source/WebCore/testing/InternalSettings.idl (189111 => 189112)


--- trunk/Source/WebCore/testing/InternalSettings.idl	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebCore/testing/InternalSettings.idl	2015-08-28 18:51:42 UTC (rev 189112)
@@ -74,5 +74,7 @@
     [RaisesException] void setScrollingTreeIncludesFrames(boolean enabled);
 
     [RaisesException] void setMinimumTimerInterval(unrestricted double intervalInSeconds);
+    [RaisesException] void setAllowsInlineMediaPlayback(boolean allows);
+    [RaisesException] void setInlineMediaPlaybackRequiresPlaysInlineAttribute(boolean requires);
 };
 

Modified: trunk/Source/WebKit/mac/ChangeLog (189111 => 189112)


--- trunk/Source/WebKit/mac/ChangeLog	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit/mac/ChangeLog	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,3 +1,23 @@
+2015-08-28  Jer Noble  <jer.no...@apple.com>
+
+        [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=147512
+
+        Reviewed by Anders Carlsson.
+
+        Add a new preference, inlineMediaPlaybackRequiresPlaysInlineAttribute, which defaults to
+        NO on iPad and YES on iPhone and iPod.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]): Default the value of WebKitAllowsInlineMediaPlaybackPreferenceKey to
+        YES on iPad and NO on iPhone and iPod.
+        (-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
+        (-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2015-08-28  Timothy Horton  <timothy_hor...@apple.com>
 
         [Mac] Right-clicking on GIFs spins the UI process for a while

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (189111 => 189112)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -121,6 +121,7 @@
 #define WebKitHixie76WebSocketProtocolEnabledKey @"WebKitHixie76WebSocketProtocolEnabled"
 #define WebKitRequiresUserGestureForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackRequiresUserGesture"
 #define WebKitAllowsInlineMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsInline"
+#define WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey @"InlineMediaPlaybackRequiresPlaysInlineAttribute"
 #define WebKitAllowsPictureInPictureMediaPlaybackPreferenceKey @"WebKitAllowsPictureInPictureMediaPlayback"
 #define WebKitAllowsAirPlayForMediaPlaybackPreferenceKey @"WebKitMediaPlaybackAllowsAirPlay"
 #define WebKitMediaControlsScaleWithPageZoomPreferenceKey @"WebKitMediaControlsScaleWithPageZoom"

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (189111 => 189112)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -395,6 +395,9 @@
     JSC::initializeThreading();
     WTF::initializeMainThreadToProcessMainThread();
     RunLoop::initializeMainRunLoop();
+#else
+    bool allowsInlineMediaPlayback = WKGetDeviceClass() == WKDeviceClassiPad;
+    bool requiresPlaysInlineAttribute = !allowsInlineMediaPlayback;
 #endif
     InitWebCoreSystemInterface();
 
@@ -519,6 +522,7 @@
 #if !PLATFORM(IOS)
         [NSNumber numberWithBool:NO],   WebKitRequiresUserGestureForMediaPlaybackPreferenceKey,
         [NSNumber numberWithBool:YES],  WebKitAllowsInlineMediaPlaybackPreferenceKey,
+        [NSNumber numberWithBool:YES],  WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey,
         [NSNumber numberWithBool:YES],  WebKitMediaControlsScaleWithPageZoomPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitWebAudioEnabledPreferenceKey,
         [NSNumber numberWithBool:YES],  WebKitBackspaceKeyNavigationEnabledKey,
@@ -529,7 +533,8 @@
         [NSNumber numberWithBool:NO],   WebKitShouldRespectImageOrientationKey,
 #else
         [NSNumber numberWithBool:YES],  WebKitRequiresUserGestureForMediaPlaybackPreferenceKey,
-        [NSNumber numberWithBool:NO],   WebKitAllowsInlineMediaPlaybackPreferenceKey,
+        [NSNumber numberWithBool:allowsInlineMediaPlayback],   WebKitAllowsInlineMediaPlaybackPreferenceKey,
+        [NSNumber numberWithBool:requiresPlaysInlineAttribute], WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey,
         [NSNumber numberWithBool:NO],   WebKitMediaControlsScaleWithPageZoomPreferenceKey,
         [NSNumber numberWithUnsignedInt:AudioSession::None],  WebKitAudioSessionCategoryOverride,
 #if HAVE(AVKIT)
@@ -2198,6 +2203,16 @@
     [self _setBoolValue:flag forKey:WebKitAllowsInlineMediaPlaybackPreferenceKey];
 }
 
+- (BOOL)inlineMediaPlaybackRequiresPlaysInlineAttribute
+{
+    return [self _boolValueForKey:WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey];
+}
+
+- (void)setInlineMediaPlaybackRequiresPlaysInlineAttribute:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey];
+}
+
 - (BOOL)mediaControlsScaleWithPageZoom
 {
     return [self _boolValueForKey:WebKitMediaControlsScaleWithPageZoomPreferenceKey];

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (189111 => 189112)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -248,6 +248,9 @@
 - (void)setMediaPlaybackAllowsInline:(BOOL)flag;
 - (BOOL)mediaPlaybackAllowsInline;
 
+- (void)setInlineMediaPlaybackRequiresPlaysInlineAttribute:(BOOL)flag;
+- (BOOL)inlineMediaPlaybackRequiresPlaysInlineAttribute;
+
 - (void)setMediaControlsScaleWithPageZoom:(BOOL)flag;
 - (BOOL)mediaControlsScaleWithPageZoom;
 

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (189111 => 189112)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -2304,6 +2304,7 @@
 
     settings.setRequiresUserGestureForMediaPlayback([preferences mediaPlaybackRequiresUserGesture]);
     settings.setAllowsInlineMediaPlayback([preferences mediaPlaybackAllowsInline]);
+    settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute([preferences inlineMediaPlaybackRequiresPlaysInlineAttribute]);
     settings.setAllowsPictureInPictureMediaPlayback([preferences allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback());
     settings.setMediaControlsScaleWithPageZoom([preferences mediaControlsScaleWithPageZoom]);
     settings.setSuppressesIncrementalRendering([preferences suppressesIncrementalRendering]);

Modified: trunk/Source/WebKit2/ChangeLog (189111 => 189112)


--- trunk/Source/WebKit2/ChangeLog	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/ChangeLog	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,3 +1,32 @@
+2015-08-28  Jer Noble  <jer.no...@apple.com>
+
+        [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=147512
+
+        Reviewed by Anders Carlsson.
+
+        Default the value of allowsInlineMediaPlayback to YES on iPad and NO on iPhone and iPod.
+        Add a new configuration property, _inlineMediaPlaybackRequiresPlaysInlineAttribute, which
+        defaults to NO on iPad and YES on iPhone and iPad.
+
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration init]):
+        * Shared/WebPreferencesDefinitions.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
+        (WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView initWithFrame:configuration:]):
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration init]):
+        (-[WKWebViewConfiguration copyWithZone:]):
+        (-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
+        (-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
+        * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2015-08-28  Timothy Horton  <timothy_hor...@apple.com>
 
         Add navigation gesture callbacks to WKPageNavigationClient

Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (189111 => 189112)


--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -57,6 +57,7 @@
 #define DEFAULT_MINIMUM_FONT_ZOOM_SIZE WKGetMinimumZoomFontSize()
 #define DEFAULT_PASSWORD_ECHO_ENABLED true
 #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK false
+#define DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE true
 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK true
 #define DEFAULT_MEDIA_CONTROLS_SCALE_WITH_PAGE_ZOOM false
 #define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED false
@@ -69,6 +70,7 @@
 #define DEFAULT_MINIMUM_FONT_ZOOM_SIZE 0
 #define DEFAULT_PASSWORD_ECHO_ENABLED false
 #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK true
+#define DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE false
 #define DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK false
 #define DEFAULT_MEDIA_CONTROLS_SCALE_WITH_PAGE_ZOOM true
 #define DEFAULT_TEMPORARY_TILE_COHORT_RETENTION_ENABLED true
@@ -132,6 +134,7 @@
     macro(AVFoundationEnabled, isAVFoundationEnabled, Bool, bool, true) \
     macro(RequiresUserGestureForMediaPlayback, requiresUserGestureForMediaPlayback, Bool, bool, DEFAULT_REQUIRES_USER_GESTURE_FOR_MEDIA_PLAYBACK) \
     macro(AllowsInlineMediaPlayback, allowsInlineMediaPlayback, Bool, bool, DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK) \
+    macro(InlineMediaPlaybackRequiresPlaysInlineAttribute, inlineMediaPlaybackRequiresPlaysInlineAttribute, Bool, bool, DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE) \
     macro(AllowsPictureInPictureMediaPlayback, allowsPictureInPictureMediaPlayback, Bool, bool, true) \
     macro(AllowsAirPlayForMediaPlayback, allowsAirPlayForMediaPlayback, Bool, bool, true) \
     macro(MediaControlsScaleWithPageZoom, mediaControlsScaleWithPageZoom, Bool, bool, DEFAULT_MEDIA_CONTROLS_SCALE_WITH_PAGE_ZOOM) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (189111 => 189112)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -748,6 +748,16 @@
     return toImpl(preferencesRef)->allowsInlineMediaPlayback();
 }
 
+void WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)->setInlineMediaPlaybackRequiresPlaysInlineAttribute(flag);
+}
+
+bool WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->inlineMediaPlaybackRequiresPlaysInlineAttribute();
+}
+
 void WKPreferencesSetMediaControlsScaleWithPageZoom(WKPreferencesRef preferencesRef, bool flag)
 {
     toImpl(preferencesRef)->setMediaControlsScaleWithPageZoom(flag);

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (189111 => 189112)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -177,6 +177,10 @@
 WK_EXPORT void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag);
 WK_EXPORT bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef);
 
+// Defaults to false.
+WK_EXPORT void WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute(WKPreferencesRef preferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute(WKPreferencesRef preferencesRef);
+
 // Defaults to false on iOS, true elsewhere.
 WK_EXPORT void WKPreferencesSetMediaControlsScaleWithPageZoom(WKPreferencesRef preferencesRef, bool flag);
 WK_EXPORT bool WKPreferencesGetMediaControlsScaleWithPageZoom(WKPreferencesRef preferencesRef);

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (189111 => 189112)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -327,6 +327,7 @@
     pageConfiguration->setAlwaysRunsAtForegroundPriority([_configuration _alwaysRunsAtForegroundPriority]);
 
     pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsInlineMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsInlineMediaPlayback]));
+    pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::inlineMediaPlaybackRequiresPlaysInlineAttributeKey(), WebKit::WebPreferencesStore::Value(!![_configuration _inlineMediaPlaybackRequiresPlaysInlineAttribute]));
     pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration allowsPictureInPictureMediaPlayback] && shouldAllowPictureInPictureMediaPlayback()));
     pageConfiguration->preferenceValues().set(WebKit::WebPreferencesKey::requiresUserGestureForMediaPlaybackKey(), WebKit::WebPreferencesStore::Value(!![_configuration requiresUserActionForMediaPlayback]));
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (189111 => 189112)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -40,6 +40,7 @@
 
 #if PLATFORM(IOS)
 #import "UIKitSPI.h"
+#import "WebKitSystemInterfaceIOS.h"
 #endif
 
 template<typename T> class LazyInitialized {
@@ -94,6 +95,8 @@
 #if PLATFORM(IOS)
     LazyInitialized<RetainPtr<WKWebViewContentProviderRegistry>> _contentProviderRegistry;
     BOOL _alwaysRunsAtForegroundPriority;
+    BOOL _allowsInlineMediaPlayback;
+    BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute;
 #endif
 }
 
@@ -105,6 +108,8 @@
 #if PLATFORM(IOS)
     _requiresUserActionForMediaPlayback = YES;
     _allowsPictureInPictureMediaPlayback = YES;
+    _allowsInlineMediaPlayback = WKGetDeviceClass() == WKDeviceClassiPad;
+    _inlineMediaPlaybackRequiresPlaysInlineAttribute = !_allowsInlineMediaPlayback;
 #endif
 
 #if ENABLE(WIRELESS_PLAYBACK_TARGET)
@@ -140,6 +145,7 @@
 
 #if PLATFORM(IOS)
     configuration->_allowsInlineMediaPlayback = self->_allowsInlineMediaPlayback;
+    configuration->_inlineMediaPlaybackRequiresPlaysInlineAttribute = self->_inlineMediaPlaybackRequiresPlaysInlineAttribute;
     configuration->_allowsPictureInPictureMediaPlayback = self->_allowsPictureInPictureMediaPlayback;
     configuration->_alwaysRunsAtForegroundPriority = _alwaysRunsAtForegroundPriority;
     configuration->_requiresUserActionForMediaPlayback = self->_requiresUserActionForMediaPlayback;
@@ -335,6 +341,16 @@
 {
     _alwaysRunsAtForegroundPriority = alwaysRunsAtForegroundPriority;
 }
+
+- (BOOL)_inlineMediaPlaybackRequiresPlaysInlineAttribute
+{
+    return _inlineMediaPlaybackRequiresPlaysInlineAttribute;
+}
+
+- (void)_setInlineMediaPlaybackRequiresPlaysInlineAttribute:(BOOL)requires
+{
+    _inlineMediaPlaybackRequiresPlaysInlineAttribute = requires;
+}
 #endif
 
 @end

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h (189111 => 189112)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h	2015-08-28 18:51:42 UTC (rev 189112)
@@ -45,6 +45,8 @@
 
 #if TARGET_OS_IPHONE
 @property (nonatomic, setter=_setAlwaysRunsAtForegroundPriority:) BOOL _alwaysRunsAtForegroundPriority WK_AVAILABLE(NA, WK_IOS_TBA);
+
+@property (nonatomic, setter=_setInlineMediaPlaybackRequiresPlaysInlineAttribute:) BOOL _inlineMediaPlaybackRequiresPlaysInlineAttribute WK_AVAILABLE(NA, WK_IOS_TBA);
 #endif
 
 @property (nonatomic, strong, setter=_setVisitedLinkProvider:) _WKVisitedLinkProvider *_visitedLinkProvider WK_DEPRECATED(10_10, WK_MAC_TBA, 8_0, WK_IOS_TBA, "Please use visitedLinkStore instead");

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (189111 => 189112)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -2734,6 +2734,7 @@
     settings.setAccelerated2dCanvasEnabled(store.getBoolValueForKey(WebPreferencesKey::accelerated2dCanvasEnabledKey()));
     settings.setRequiresUserGestureForMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::requiresUserGestureForMediaPlaybackKey()));
     settings.setAllowsInlineMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsInlineMediaPlaybackKey()));
+    settings.setInlineMediaPlaybackRequiresPlaysInlineAttribute(store.getBoolValueForKey(WebPreferencesKey::inlineMediaPlaybackRequiresPlaysInlineAttributeKey()));
     settings.setAllowsPictureInPictureMediaPlayback(store.getBoolValueForKey(WebPreferencesKey::allowsPictureInPictureMediaPlaybackKey()));
     settings.setMediaControlsScaleWithPageZoom(store.getBoolValueForKey(WebPreferencesKey::mediaControlsScaleWithPageZoomKey()));
     settings.setMockScrollbarsEnabled(store.getBoolValueForKey(WebPreferencesKey::mockScrollbarsEnabledKey()));

Modified: trunk/Tools/ChangeLog (189111 => 189112)


--- trunk/Tools/ChangeLog	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Tools/ChangeLog	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1,3 +1,18 @@
+2015-08-28  Jer Noble  <jer.no...@apple.com>
+
+        [iOS] Make the AllowsInlineMediaPlayback preference work in WebKit / WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=147512
+
+        Reviewed by Anders Carlsson.
+
+        Set the value of WebKitAllowsInlineMediaPlayback / WKPreferencesSetMediaPlaybackAllowsInline()
+        to a consistent (true) value.
+
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (setDefaultsToConsistentValuesForTesting):
+        * WebKitTestRunner/TestController.cpp:
+        (WTR::TestController::resetPreferencesToConsistentValues):
+
 2015-08-28  Tim Horton  <timothy_hor...@apple.com>
 
         Add navigation gesture callbacks to WKPageNavigationClient

Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (189111 => 189112)


--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -1005,6 +1005,8 @@
         @"AppleLanguages": @[ @"en" ],
         WebKitEnableFullDocumentTeardownPreferenceKey: @YES,
         WebKitFullScreenEnabledPreferenceKey: @YES,
+        WebKitAllowsInlineMediaPlaybackPreferenceKey: @YES,
+        WebKitInlineMediaPlaybackRequiresPlaysInlineAttributeKey: @NO,
         @"UseWebKitWebInspector": @YES,
 #if !PLATFORM(IOS)
         @"NSPreferredSpellServerLanguage": @"en_US",

Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (189111 => 189112)


--- trunk/Tools/WebKitTestRunner/TestController.cpp	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp	2015-08-28 18:51:42 UTC (rev 189112)
@@ -638,6 +638,9 @@
     // FIXME: We should be testing the default.
     WKPreferencesSetStorageBlockingPolicy(preferences, kWKAllowAllStorage);
 
+    WKPreferencesSetMediaPlaybackAllowsInline(preferences, true);
+    WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute(preferences, false);
+
     WKCookieManagerDeleteAllCookies(WKContextGetCookieManager(m_context.get()));
 
     platformResetPreferencesToConsistentValues();

Modified: trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm (189111 => 189112)


--- trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm	2015-08-28 18:49:02 UTC (rev 189111)
+++ trunk/Tools/WebKitTestRunner/cocoa/TestControllerCocoa.mm	2015-08-28 18:51:42 UTC (rev 189112)
@@ -55,7 +55,12 @@
 
     globalWebViewConfiguration.processPool = [[WKProcessPool alloc] _initWithConfiguration:(_WKProcessPoolConfiguration *)contextConfiguration];
     globalWebViewConfiguration.websiteDataStore = (WKWebsiteDataStore *)WKContextGetWebsiteDataStore(context);
+
+#if TARGET_OS_IPHONE
+    globalWebViewConfiguration.allowsInlineMediaPlayback = YES;
+    globalWebViewConfiguration._inlineMediaPlaybackRequiresPlaysInlineAttribute = NO;
 #endif
+#endif
 }
 
 WKPreferencesRef TestController::platformPreferences()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to