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);
}