Title: [91232] trunk/Source
Revision
91232
Author
[email protected]
Date
2011-07-18 19:21:40 -0700 (Mon, 18 Jul 2011)

Log Message

2011-07-18  Dean Jackson  <[email protected]>

        https://bugs.webkit.org/show_bug.cgi?id=64742
        Expose WebPreferences for media playback requiring user gestures and inline playback

        Reviewed by Simon Fraser.

        Media playback already tested if it should require user gestures, but
        no setting was ever exposed to clients. Also, some ports only allow media
        playback to be fullscreen, so exposing a new setting for them.

        Two new WebPreferences: MediaPlaybackRequiresUserGesture and
        MediaPlaybackAllowsInline.

    WebCore:

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Examine the new Setting
        for user gestures.
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h: Two new settings.
        (WebCore::Settings::setMediaPlaybackRequiresUserGesture):
        (WebCore::Settings::mediaPlaybackRequiresUserGesture):
        (WebCore::Settings::setMediaPlaybackAllowsInline):
        (WebCore::Settings::mediaPlaybackAllowsInline):

    WebKit/mac:

        * WebView/WebPreferenceKeysPrivate.h:
        * WebView/WebPreferences.mm:
        (+[WebPreferences initialize]):
        (-[WebPreferences mediaPlaybackRequiresUserGesture]):
        (-[WebPreferences setMediaPlaybackRequiresUserGesture:]):
        (-[WebPreferences mediaPlaybackAllowsInline]):
        (-[WebPreferences setMediaPlaybackAllowsInline:]):
        * WebView/WebPreferencesPrivate.h:
        * WebView/WebView.mm:
        (-[WebView _preferencesChanged:]):

    WebKit/win:

        * Interfaces/IWebPreferencesPrivate.idl:
        * WebPreferenceKeysPrivate.h:
        * WebPreferences.cpp:
        (WebPreferences::initializeDefaultSettings):
        (WebPreferences::setMediaPlaybackRequiresUserGesture):
        (WebPreferences::mediaPlaybackRequiresUserGesture):
        (WebPreferences::setMediaPlaybackAllowsInline):
        (WebPreferences::mediaPlaybackAllowsInline):
        * WebPreferences.h:
        * WebView.cpp:
        (WebView::notifyPreferencesChanged):

    WebKit2:

        * Shared/WebPreferencesStore.h:
        * UIProcess/API/C/WKPreferences.cpp:
        (WKPreferencesSetMediaPlaybackRequiresUserGesture):
        (WKPreferencesGetMediaPlaybackRequiresUserGesture):
        (WKPreferencesSetMediaPlaybackAllowsInline):
        (WKPreferencesGetMediaPlaybackAllowsInline):
        * UIProcess/API/C/WKPreferencesPrivate.h:
        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::updatePreferences):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (91231 => 91232)


--- trunk/Source/WebCore/ChangeLog	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebCore/ChangeLog	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1,3 +1,25 @@
+2011-07-18  Dean Jackson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=64742
+        Expose WebPreferences for media playback requiring user gestures and inline playback
+
+        Reviewed by Simon Fraser.
+
+        Media playback already tested if it should require user gestures, but
+        no setting was ever exposed to clients. Also, some ports only allow media
+        playback to be fullscreen, so exposing a new setting for them.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::HTMLMediaElement): Examine the new Setting
+        for user gestures.
+        * page/Settings.cpp:
+        (WebCore::Settings::Settings):
+        * page/Settings.h: Two new settings.
+        (WebCore::Settings::setMediaPlaybackRequiresUserGesture):
+        (WebCore::Settings::mediaPlaybackRequiresUserGesture):
+        (WebCore::Settings::setMediaPlaybackAllowsInline):
+        (WebCore::Settings::mediaPlaybackAllowsInline):
+
 2011-07-18  Ryosuke Niwa  <[email protected]>
 
         Leopard build fix after r91229.

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (91231 => 91232)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -184,6 +184,9 @@
     document->registerForDocumentActivationCallbacks(this);
     document->registerForMediaVolumeCallbacks(this);
     document->registerForPrivateBrowsingStateChangedCallbacks(this);
+    
+    if (document->settings() && document->settings()->mediaPlaybackRequiresUserGesture())
+        m_restrictions |= RequireUserGestureForRateChangeRestriction;
 }
 
 HTMLMediaElement::~HTMLMediaElement()

Modified: trunk/Source/WebCore/page/Settings.cpp (91231 => 91232)


--- trunk/Source/WebCore/page/Settings.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebCore/page/Settings.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -205,6 +205,8 @@
 #if ENABLE(WEB_SOCKETS)
     , m_useHixie76WebSocketProtocol(true)
 #endif
+    , m_mediaPlaybackRequiresUserGesture(false)
+    , m_mediaPlaybackAllowsInline(true)
     , m_loadsImagesAutomaticallyTimer(this, &Settings::loadsImagesAutomaticallyTimerFired)
 {
     // A Frame may not have been created yet, so we initialize the AtomicString 

Modified: trunk/Source/WebCore/page/Settings.h (91231 => 91232)


--- trunk/Source/WebCore/page/Settings.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebCore/page/Settings.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -432,6 +432,12 @@
         bool useHixie76WebSocketProtocol() { return m_useHixie76WebSocketProtocol; }
 #endif
 
+        void setMediaPlaybackRequiresUserGesture(bool flag) { m_mediaPlaybackRequiresUserGesture = flag; };
+        bool mediaPlaybackRequiresUserGesture() const { return m_mediaPlaybackRequiresUserGesture; }
+
+        void setMediaPlaybackAllowsInline(bool flag) { m_mediaPlaybackAllowsInline = flag; };
+        bool mediaPlaybackAllowsInline() const { return m_mediaPlaybackAllowsInline; }
+
     private:
         Page* m_page;
 
@@ -544,6 +550,8 @@
 #if ENABLE(WEB_SOCKETS)
         bool m_useHixie76WebSocketProtocol : 1;
 #endif
+        bool m_mediaPlaybackRequiresUserGesture : 1;
+        bool m_mediaPlaybackAllowsInline : 1;
 
         Timer<Settings> m_loadsImagesAutomaticallyTimer;
         void loadsImagesAutomaticallyTimerFired(Timer<Settings>*);

Modified: trunk/Source/WebKit/mac/ChangeLog (91231 => 91232)


--- trunk/Source/WebKit/mac/ChangeLog	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1,3 +1,24 @@
+2011-07-18  Dean Jackson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=64742
+        Expose WebPreferences for media playback requiring user gestures and inline playback
+
+        Reviewed by Simon Fraser.
+
+        Two new WebPreferences: MediaPlaybackRequiresUserGesture and
+        MediaPlaybackAllowsInline.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences mediaPlaybackRequiresUserGesture]):
+        (-[WebPreferences setMediaPlaybackRequiresUserGesture:]):
+        (-[WebPreferences mediaPlaybackAllowsInline]):
+        (-[WebPreferences setMediaPlaybackAllowsInline:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2011-07-18  Pratik Solanki  <[email protected]>
 
         Part of https://bugs.webkit.org/show_bug.cgi?id=63674

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (91231 => 91232)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -108,6 +108,8 @@
 #define WebKitHyperlinkAuditingEnabledPreferenceKey @"WebKitHyperlinkAuditingEnabled"
 #define WebKitAVFoundationEnabledKey @"WebKitAVFoundationEnabled"
 #define WebKitHixie76WebSocketProtocolEnabledKey @"WebKitHixie76WebSocketProtocolEnabled"
+#define WebKitMediaPlaybackRequiresUserGesturePreferenceKey @"WebKitMediaPlaybackRequiresUserGesture"
+#define WebKitMediaPlaybackAllowsInlinePreferenceKey @"WebKitMediaPlaybackAllowsInline"
 
 // These are private both because callers should be using the cover methods and because the
 // cover methods themselves are private.

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (91231 => 91232)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-07-19 02:21:40 UTC (rev 91232)
@@ -377,6 +377,9 @@
         [NSNumber numberWithBool:NO],   WebKitUsePreHTML5ParserQuirksKey,
         [NSNumber numberWithBool:YES],  WebKitAVFoundationEnabledKey,
         [NSNumber numberWithBool:YES],  WebKitHixie76WebSocketProtocolEnabledKey,
+        [NSNumber numberWithBool:NO],   WebKitMediaPlaybackRequiresUserGesturePreferenceKey,
+        [NSNumber numberWithBool:YES],  WebKitMediaPlaybackAllowsInlinePreferenceKey,
+
         [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
         [NSNumber numberWithLongLong:WebCore::ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
         nil];
@@ -1483,6 +1486,26 @@
 {
     return [self _boolValueForKey:WebKitHixie76WebSocketProtocolEnabledKey];
 }
+
+- (BOOL)mediaPlaybackRequiresUserGesture
+{
+    return [self _boolValueForKey:WebKitMediaPlaybackRequiresUserGesturePreferenceKey];
+}
+
+- (void)setMediaPlaybackRequiresUserGesture:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitMediaPlaybackRequiresUserGesturePreferenceKey];
+}
+
+- (BOOL)mediaPlaybackAllowsInline
+{
+    return [self _boolValueForKey:WebKitMediaPlaybackAllowsInlinePreferenceKey];
+}
+
+- (void)setMediaPlaybackAllowsInline:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitMediaPlaybackAllowsInlinePreferenceKey];
+}
 @end
 
 @implementation WebPreferences (WebInternal)

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (91231 => 91232)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -210,6 +210,12 @@
 - (BOOL)hyperlinkAuditingEnabled;
 - (void)setHyperlinkAuditingEnabled:(BOOL)enabled;
 
+- (void)setMediaPlaybackRequiresUserGesture:(BOOL)flag;
+- (BOOL)mediaPlaybackRequiresUserGesture;
+
+- (void)setMediaPlaybackAllowsInline:(BOOL)flag;
+- (BOOL)mediaPlaybackAllowsInline;
+
 // Other private methods
 - (void)_postPreferencesChangedNotification;
 - (void)_postPreferencesChangedAPINotification;

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (91231 => 91232)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1593,6 +1593,8 @@
 #if ENABLE(WEB_SOCKETS)
     settings->setUseHixie76WebSocketProtocol([preferences isHixie76WebSocketProtocolEnabled]);
 #endif
+    settings->setMediaPlaybackRequiresUserGesture([preferences mediaPlaybackRequiresUserGesture]);
+    settings->setMediaPlaybackAllowsInline([preferences mediaPlaybackAllowsInline]);
 
     // Application Cache Preferences are stored on the global cache storage manager, not in Settings.
     [WebApplicationCache setDefaultOriginQuota:[preferences applicationCacheDefaultOriginQuota]];

Modified: trunk/Source/WebKit/win/ChangeLog (91231 => 91232)


--- trunk/Source/WebKit/win/ChangeLog	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/ChangeLog	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1,3 +1,25 @@
+2011-07-18  Dean Jackson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=64742
+        Expose WebPreferences for media playback requiring user gestures and inline playback
+
+        Reviewed by Simon Fraser.
+
+        Two new WebPreferences: MediaPlaybackRequiresUserGesture and
+        MediaPlaybackAllowsInline.
+
+        * Interfaces/IWebPreferencesPrivate.idl:
+        * WebPreferenceKeysPrivate.h:
+        * WebPreferences.cpp:
+        (WebPreferences::initializeDefaultSettings):
+        (WebPreferences::setMediaPlaybackRequiresUserGesture):
+        (WebPreferences::mediaPlaybackRequiresUserGesture):
+        (WebPreferences::setMediaPlaybackAllowsInline):
+        (WebPreferences::mediaPlaybackAllowsInline):
+        * WebPreferences.h:
+        * WebView.cpp:
+        (WebView::notifyPreferencesChanged):
+
 2011-07-16  Simon Fraser  <[email protected]>
 
         Add code to attempt to align compositing layers to pixel boundaries when page scale changes

Modified: trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl (91231 => 91232)


--- trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2011-07-19 02:21:40 UTC (rev 91232)
@@ -130,4 +130,10 @@
 
     HRESULT setHixie76WebSocketProtocolEnabled([in] BOOL enabled);
     HRESULT hixie76WebSocketProtocolEnabled([out, retval] BOOL* enabled);
+
+    HRESULT setMediaPlaybackRequiresUserGesture([in] BOOL);
+    HRESULT mediaPlaybackRequiresUserGesture([out, retval] BOOL*);
+
+    HRESULT setMediaPlaybackAllowsInline([in] BOOL);
+    HRESULT mediaPlaybackAllowsInline([out, retval] BOOL*);
 }

Modified: trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h (91231 => 91232)


--- trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -154,3 +154,8 @@
 #define WebKitFullScreenEnabledPreferenceKey "WebKitFullScreenEnabled"
 
 #define WebKitHixie76WebSocketProtocolEnabledPreferenceKey "WebKitHixie76WebSocketProtocolEnabled"
+
+#define WebKitMediaPlaybackRequiresUserGesturePreferenceKey "WebKitMediaPlaybackRequiresUserGesture"
+
+#define WebKitMediaPlaybackAllowsInlinePreferenceKey "WebKitMediaPlaybackAllowsInline"
+

Modified: trunk/Source/WebKit/win/WebPreferences.cpp (91231 => 91232)


--- trunk/Source/WebKit/win/WebPreferences.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/WebPreferences.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -268,6 +268,9 @@
     CFDictionaryAddValue(defaults, CFSTR(WebKitHyperlinkAuditingEnabledPreferenceKey), kCFBooleanTrue);
     CFDictionaryAddValue(defaults, CFSTR(WebKitHixie76WebSocketProtocolEnabledPreferenceKey), kCFBooleanTrue);
 
+    CFDictionaryAddValue(defaults, CFSTR(WebKitMediaPlaybackRequiresUserGesturePreferenceKey), kCFBooleanFalse);
+    CFDictionaryAddValue(defaults, CFSTR(WebKitMediaPlaybackAllowsInlinePreferenceKey), kCFBooleanTrue);
+
     defaultSettings = defaults;
 }
 
@@ -957,6 +960,34 @@
     return S_OK;
 }
 
+HRESULT STDMETHODCALLTYPE WebPreferences::setMediaPlaybackRequiresUserGesture(
+    /* [in] */ BOOL enabled)
+{
+    setBoolValue(CFSTR(WebKitMediaPlaybackRequiresUserGesturePreferenceKey), enabled);
+    return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE WebPreferences::mediaPlaybackRequiresUserGesture(
+    /* [retval][out] */ BOOL* enabled)
+{
+    *enabled = boolValueForKey(CFSTR(WebKitMediaPlaybackRequiresUserGesturePreferenceKey));
+    return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE WebPreferences::setMediaPlaybackAllowsInline(
+    /* [in] */ BOOL enabled)
+{
+    setBoolValue(CFSTR(WebKitMediaPlaybackAllowsInlinePreferenceKey), enabled);
+    return S_OK;
+}
+
+HRESULT STDMETHODCALLTYPE WebPreferences::mediaPlaybackAllowsInline(
+    /* [retval][out] */ BOOL* enabled)
+{
+    *enabled = boolValueForKey(CFSTR(WebKitMediaPlaybackAllowsInlinePreferenceKey));
+    return S_OK;
+}
+
 HRESULT STDMETHODCALLTYPE WebPreferences::setAutosaves( 
     /* [in] */ BOOL enabled)
 {

Modified: trunk/Source/WebKit/win/WebPreferences.h (91231 => 91232)


--- trunk/Source/WebKit/win/WebPreferences.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/WebPreferences.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -438,6 +438,12 @@
     virtual HRESULT STDMETHODCALLTYPE hixie76WebSocketProtocolEnabled(BOOL*);
     virtual HRESULT STDMETHODCALLTYPE setHixie76WebSocketProtocolEnabled(BOOL);
 
+    virtual HRESULT STDMETHODCALLTYPE mediaPlaybackRequiresUserGesture(BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackRequiresUserGesture(BOOL);
+
+    virtual HRESULT STDMETHODCALLTYPE mediaPlaybackAllowsInline(BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackAllowsInline(BOOL);
+
     // WebPreferences
 
     // This method accesses a different preference key than developerExtrasEnabled.

Modified: trunk/Source/WebKit/win/WebView.cpp (91231 => 91232)


--- trunk/Source/WebKit/win/WebView.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit/win/WebView.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -4870,6 +4870,16 @@
     settings->setFullScreenEnabled(enabled);
 #endif
 
+    hr = prefsPrivate->mediaPlaybackRequiresUserGesture(&enabled);
+    if (FAILED(hr))
+        return hr;
+    settings->setMediaPlaybackRequiresUserGesture(enabled);
+
+    hr = prefsPrivate->mediaPlaybackAllowsInline(&enabled);
+    if (FAILED(hr))
+        return hr;
+    settings->setMediaPlaybackAllowsInline(enabled);
+
     return S_OK;
 }
 

Modified: trunk/Source/WebKit2/ChangeLog (91231 => 91232)


--- trunk/Source/WebKit2/ChangeLog	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit2/ChangeLog	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1,3 +1,23 @@
+2011-07-18  Dean Jackson  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=64742
+        Expose WebPreferences for media playback requiring user gestures and inline playback
+
+        Reviewed by Simon Fraser.
+
+        Two new WebPreferences: MediaPlaybackRequiresUserGesture and
+        MediaPlaybackAllowsInline.
+
+        * Shared/WebPreferencesStore.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetMediaPlaybackRequiresUserGesture):
+        (WKPreferencesGetMediaPlaybackRequiresUserGesture):
+        (WKPreferencesSetMediaPlaybackAllowsInline):
+        (WKPreferencesGetMediaPlaybackAllowsInline):
+        * UIProcess/API/C/WKPreferencesPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2011-07-18  James Robinson  <[email protected]>
 
         Timer scheduling should be based off the monotonic clock

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (91231 => 91232)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -76,6 +76,8 @@
     macro(AllowFileAccessFromFileURLs, allowFileAccessFromFileURLs, Bool, bool, false) \
     macro(AVFoundationEnabled, isAVFoundationEnabled, Bool, bool, true) \
     macro(Hixie76WebSocketProtocolEnabled, hixie76WebSocketProtocolEnabled, Bool, bool, true) \
+    macro(MediaPlaybackRequiresUserGesture, mediaPlaybackRequiresUserGesture, Bool, bool, false) \
+    macro(MediaPlaybackAllowsInline, mediaPlaybackAllowsInline, Bool, bool, true) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

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


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -571,3 +571,23 @@
 {
     return toImpl(preferencesRef)->hixie76WebSocketProtocolEnabled();
 }
+
+void WKPreferencesSetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)->setMediaPlaybackRequiresUserGesture(flag);
+}
+
+bool WKPreferencesGetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->mediaPlaybackRequiresUserGesture();
+}
+
+void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)->setMediaPlaybackAllowsInline(flag);
+}
+
+bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->mediaPlaybackAllowsInline();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (91231 => 91232)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2011-07-19 02:21:40 UTC (rev 91232)
@@ -132,6 +132,14 @@
 WK_EXPORT void WKPreferencesSetHixie76WebSocketProtocolEnabled(WKPreferencesRef preferencesRef, bool enabled);
 WK_EXPORT bool WKPreferencesGetHixie76WebSocketProtocolEnabled(WKPreferencesRef preferencesRef);
 
+// Defaults to false.
+WK_EXPORT void WKPreferencesSetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetMediaPlaybackRequiresUserGesture(WKPreferencesRef preferencesRef);
+
+// Defaults to true.
+WK_EXPORT void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (91231 => 91232)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-07-19 01:42:19 UTC (rev 91231)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-07-19 02:21:40 UTC (rev 91232)
@@ -1602,6 +1602,8 @@
     settings->setShowDebugBorders(store.getBoolValueForKey(WebPreferencesKey::compositingBordersVisibleKey()));
     settings->setShowRepaintCounter(store.getBoolValueForKey(WebPreferencesKey::compositingRepaintCountersVisibleKey()));
     settings->setWebGLEnabled(store.getBoolValueForKey(WebPreferencesKey::webGLEnabledKey()));
+    settings->setMediaPlaybackRequiresUserGesture(store.getBoolValueForKey(WebPreferencesKey::mediaPlaybackRequiresUserGestureKey()));
+    settings->setMediaPlaybackAllowsInline(store.getBoolValueForKey(WebPreferencesKey::mediaPlaybackAllowsInlineKey()));
 
 #if ENABLE(DATABASE)
     AbstractDatabase::setIsAvailable(store.getBoolValueForKey(WebPreferencesKey::databasesEnabledKey()));
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to