Title: [95678] trunk/Source
Revision
95678
Author
jer.no...@apple.com
Date
2011-09-21 16:06:42 -0700 (Wed, 21 Sep 2011)

Log Message

Add settings to control the availability of the Web Audio API to WebKit and WebKit2.
https://bugs.webkit.org/show_bug.cgi?id=68382

Source/WebCore:

Reviewed by Darin Adler.

Only create a AudioContext object if the Web Audio feature is runtime-enabled in Settings.

No new tests, as this feature is not yet enabled by default.

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::webkitAudioContext):

Source/WebKit/mac:

Reviewed by Darin Adler.

Initialize the webAudioEnabled preference to NO by default.

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKit2:

Add support for the webAudioEnabled preference in WebKit2.

Reviewed by Darin Adler.

* Shared/WebPreferencesStore.h: Add WebAudioEnabled getter and setter macro.
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebAudioEnabled): Added.
(WKPreferencesGetWebAudioEnabled): Added.
* UIProcess/API/C/WKPreferences.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Update the webAudioEnabled preference.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (95677 => 95678)


--- trunk/Source/WebCore/ChangeLog	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebCore/ChangeLog	2011-09-21 23:06:42 UTC (rev 95678)
@@ -1,3 +1,17 @@
+2011-09-19  Jer Noble  <jer.no...@apple.com>
+
+        Add settings to control the availability of the Web Audio API to WebKit and WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=68382
+
+        Reviewed by Darin Adler.
+
+        Only create a AudioContext object if the Web Audio feature is runtime-enabled in Settings.
+
+        No new tests, as this feature is not yet enabled by default.
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::webkitAudioContext):
+
 2011-09-21  Anders Carlsson  <ander...@apple.com>
 
         Remove checks for Leopard-only Objective-C APIs

Modified: trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp (95677 => 95678)


--- trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp	2011-09-21 23:06:42 UTC (rev 95678)
@@ -601,22 +601,31 @@
 }
 #endif
 
+#if ENABLE(WEB_AUDIO) || ENABLE(WEB_SOCKETS)
+static Settings* settingsForWindow(const JSDOMWindow* window)
+{
+    ASSERT(window);
+    if (Frame* frame = window->impl()->frame())
+        return frame->settings();
+    return 0;
+}
+#endif
+
 #if ENABLE(WEB_AUDIO)
 JSValue JSDOMWindow::webkitAudioContext(ExecState* exec) const
 {
-    return getDOMConstructor<JSAudioContextConstructor>(exec, this);
+    Settings* settings = settingsForWindow(this);
+    if (settings && settings->webAudioEnabled())
+        return getDOMConstructor<JSAudioContextConstructor>(exec, this);
+    return jsUndefined();
 }
 #endif
 
 #if ENABLE(WEB_SOCKETS)
 JSValue JSDOMWindow::webSocket(ExecState* exec) const
 {
-    Frame* frame = impl()->frame();
-    if (!frame)
+    if (!settingsForWindow(this))
         return jsUndefined();
-    Settings* settings = frame->settings();
-    if (!settings)
-        return jsUndefined();
     return getDOMConstructor<JSWebSocketConstructor>(exec, this);
 }
 #endif

Modified: trunk/Source/WebKit/mac/ChangeLog (95677 => 95678)


--- trunk/Source/WebKit/mac/ChangeLog	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-09-21 23:06:42 UTC (rev 95678)
@@ -1,3 +1,15 @@
+2011-09-19  Jer Noble  <jer.no...@apple.com>
+
+        Add settings to control the availability of the Web Audio API to WebKit and WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=68382
+
+        Reviewed by Darin Adler.
+
+        Initialize the webAudioEnabled preference to NO by default.
+
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]):
+
 2011-09-21  Anders Carlsson  <ander...@apple.com>
 
         Remove checks for Leopard-only Objective-C APIs

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (95677 => 95678)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-09-21 23:06:42 UTC (rev 95678)
@@ -384,6 +384,7 @@
         [NSNumber numberWithBool:YES],  WebKitHixie76WebSocketProtocolEnabledKey,
         [NSNumber numberWithBool:NO],   WebKitMediaPlaybackRequiresUserGesturePreferenceKey,
         [NSNumber numberWithBool:YES],  WebKitMediaPlaybackAllowsInlinePreferenceKey,
+        [NSNumber numberWithBool:NO],   WebKitWebAudioEnabledPreferenceKey,
 
         [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
         [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,

Modified: trunk/Source/WebKit2/ChangeLog (95677 => 95678)


--- trunk/Source/WebKit2/ChangeLog	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit2/ChangeLog	2011-09-21 23:06:42 UTC (rev 95678)
@@ -1,3 +1,20 @@
+2011-09-19  Jer Noble  <jer.no...@apple.com>
+
+        Add settings to control the availability of the Web Audio API to WebKit and WebKit2.
+        https://bugs.webkit.org/show_bug.cgi?id=68382
+
+        Add support for the webAudioEnabled preference in WebKit2.
+
+        Reviewed by Darin Adler.
+
+        * Shared/WebPreferencesStore.h: Add WebAudioEnabled getter and setter macro.
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetWebAudioEnabled): Added.
+        (WKPreferencesGetWebAudioEnabled): Added.
+        * UIProcess/API/C/WKPreferences.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Update the webAudioEnabled preference.
+
 2011-09-21  Dan Bernstein  <m...@apple.com>
 
         Use the prefix "WK" instead of "Web" for Objective-C classes defined in WebKit2.

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (95677 => 95678)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-09-21 23:06:42 UTC (rev 95678)
@@ -93,6 +93,7 @@
     macro(InspectorStartsAttached, inspectorStartsAttached, Bool, bool, true) \
     macro(ShowsToolTipOverTruncatedText, showsToolTipOverTruncatedText, Bool, bool, false) \
     macro(MockScrollbarsEnabled, mockScrollbarsEnabled, Bool, bool, false) \
+    macro(WebAudioEnabled, webAudioEnabled, Bool, bool, false) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

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


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-09-21 23:06:42 UTC (rev 95678)
@@ -621,3 +621,13 @@
 {
     return toImpl(preferencesRef)->mockScrollbarsEnabled();
 }
+
+void WKPreferencesSetWebAudioEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setWebAudioEnabled(enabled);
+}
+
+bool WKPreferencesGetWebAudioEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->webAudioEnabled();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h (95677 => 95678)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.h	2011-09-21 23:06:42 UTC (rev 95678)
@@ -165,6 +165,10 @@
 WK_EXPORT void WKPreferencesSetAVFoundationEnabled(WKPreferencesRef preferencesRef, bool enabled);
 WK_EXPORT bool WKPreferencesGetAVFoundationEnabled(WKPreferencesRef preferencesRef);
 
+// Defaults to false
+WK_EXPORT void WKPreferencesSetWebAudioEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetWebAudioEnabled(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (95677 => 95678)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-09-21 22:54:50 UTC (rev 95677)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-09-21 23:06:42 UTC (rev 95678)
@@ -1624,6 +1624,10 @@
     settings->setUseHixie76WebSocketProtocol(store.getBoolValueForKey(WebPreferencesKey::hixie76WebSocketProtocolEnabledKey()));
 #endif
 
+#if ENABLE(WEB_AUDIO)
+    settings->setWebAudioEnabled(store.getBoolValueForKey(WebPreferencesKey::webAudioEnabledKey()));
+#endif
+
     platformPreferencesDidChange(store);
 }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to