Title: [170400] trunk/Source
Revision
170400
Author
beid...@apple.com
Date
2014-06-24 16:17:22 -0700 (Tue, 24 Jun 2014)

Log Message

Enable GAMEPAD in the Mac build, but disabled at runtime.
https://bugs.webkit.org/show_bug.cgi?id=134255

Reviewed by Dean Jackson.

Source/_javascript_Core:
* Configurations/FeatureDefines.xcconfig:

* runtime/JSObject.h: Export JSObject::removeDirect() to allow disabling
  functions at runtime.

Source/WebCore:
No new tests (No changes to a tested config).

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Add the ability to have a function be EnabledAtRuntime by
  removing such functions from the prototype if they are disabled.

Change the three new objects and the one new function to be EnabledAtRuntime
* Modules/gamepad/Gamepad.idl:
* Modules/gamepad/GamepadButton.idl:
* Modules/gamepad/GamepadEvent.idl:
* Modules/gamepad/NavigatorGamepad.idl:

Add a RuntimeEnabledFeature for Gamepads:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setGamepadsEnabled):
(WebCore::RuntimeEnabledFeatures::gamepadsEnabled):

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:
* Configurations/FeatureDefines.xcconfig:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(-[WebPreferences gamepadsEnabled]):
(-[WebPreferences setGamepadsEnabled:]):
* WebView/WebPreferencesPrivate.h:

* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:
* Configurations/FeatureDefines.xcconfig:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetGamepadsEnabled):
(WKPreferencesGetGamepadsEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (170399 => 170400)


--- trunk/Source/_javascript_Core/ChangeLog	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1,3 +1,15 @@
+2014-06-24  Brady Eidson  <beid...@apple.com>
+
+        Enable GAMEPAD in the Mac build, but disabled at runtime.
+        https://bugs.webkit.org/show_bug.cgi?id=134255
+
+        Reviewed by Dean Jackson.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+        * runtime/JSObject.h: Export JSObject::removeDirect() to allow disabling
+          functions at runtime.
+
 2014-06-24  Mark Hahnenberg  <mhahnenb...@apple.com>
 
         REGRESSION (r169703): Invalid cast in JSC::asGetterSetter / JSC::JSObject::defineOwnNonIndexProperty

Modified: trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig (170399 => 170400)


--- trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig	2014-06-24 23:17:22 UTC (rev 170400)
@@ -87,7 +87,8 @@
 ENABLE_FONT_LOAD_EVENTS = ;
 ENABLE_FULLSCREEN_API = $(ENABLE_FULLSCREEN_API_$(PLATFORM_NAME));
 ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
-ENABLE_GAMEPAD = ;
+ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(PLATFORM_NAME));
+ENABLE_GAMEPAD_macosx = ENABLE_GAMEPAD;
 ENABLE_GAMEPAD_DEPRECATED = ;
 ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING = $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_$(PLATFORM_NAME));

Modified: trunk/Source/_javascript_Core/runtime/JSObject.h (170399 => 170400)


--- trunk/Source/_javascript_Core/runtime/JSObject.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/_javascript_Core/runtime/JSObject.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -572,7 +572,7 @@
 
     void transitionTo(VM&, Structure*);
 
-    bool removeDirect(VM&, PropertyName); // Return true if anything is removed.
+    JS_EXPORT_PRIVATE bool removeDirect(VM&, PropertyName); // Return true if anything is removed.
     bool hasCustomProperties() { return structure()->didTransition(); }
     bool hasGetterSetterProperties() { return structure()->hasGetterSetterProperties(); }
     bool hasCustomGetterSetterProperties() { return structure()->hasCustomGetterSetterProperties(); }

Modified: trunk/Source/WebCore/ChangeLog (170399 => 170400)


--- trunk/Source/WebCore/ChangeLog	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/ChangeLog	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1,3 +1,31 @@
+2014-06-24  Brady Eidson  <beid...@apple.com>
+
+        Enable GAMEPAD in the Mac build, but disabled at runtime.
+        https://bugs.webkit.org/show_bug.cgi?id=134255
+
+        Reviewed by Dean Jackson.
+
+        No new tests (No changes to a tested config).
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation): Add the ability to have a function be EnabledAtRuntime by
+          removing such functions from the prototype if they are disabled.
+
+        Change the three new objects and the one new function to be EnabledAtRuntime
+        * Modules/gamepad/Gamepad.idl:
+        * Modules/gamepad/GamepadButton.idl:
+        * Modules/gamepad/GamepadEvent.idl:
+        * Modules/gamepad/NavigatorGamepad.idl:
+
+        Add a RuntimeEnabledFeature for Gamepads:
+        * bindings/generic/RuntimeEnabledFeatures.cpp:
+        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
+        * bindings/generic/RuntimeEnabledFeatures.h:
+        (WebCore::RuntimeEnabledFeatures::setGamepadsEnabled):
+        (WebCore::RuntimeEnabledFeatures::gamepadsEnabled):
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2014-06-24  Yusuke Suzuki  <utatane....@gmail.com>
 
         CSS JIT: Add positionInRootFragments to SelectorFragment

Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (170399 => 170400)


--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig	2014-06-24 23:17:22 UTC (rev 170400)
@@ -87,7 +87,8 @@
 ENABLE_FONT_LOAD_EVENTS = ;
 ENABLE_FULLSCREEN_API = $(ENABLE_FULLSCREEN_API_$(PLATFORM_NAME));
 ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
-ENABLE_GAMEPAD = ;
+ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(PLATFORM_NAME));
+ENABLE_GAMEPAD_macosx = ENABLE_GAMEPAD;
 ENABLE_GAMEPAD_DEPRECATED = ;
 ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING = $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_$(PLATFORM_NAME));

Modified: trunk/Source/WebCore/Modules/gamepad/Gamepad.idl (170399 => 170400)


--- trunk/Source/WebCore/Modules/gamepad/Gamepad.idl	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/Modules/gamepad/Gamepad.idl	2014-06-24 23:17:22 UTC (rev 170400)
@@ -24,6 +24,7 @@
  */
 
 [
+    EnabledAtRuntime=Gamepads,
     Conditional=GAMEPAD,
     ImplementationLacksVTable
 ] interface Gamepad {

Modified: trunk/Source/WebCore/Modules/gamepad/GamepadButton.idl (170399 => 170400)


--- trunk/Source/WebCore/Modules/gamepad/GamepadButton.idl	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/Modules/gamepad/GamepadButton.idl	2014-06-24 23:17:22 UTC (rev 170400)
@@ -24,6 +24,7 @@
  */
 
 [
+    EnabledAtRuntime=Gamepads,
     Conditional=GAMEPAD,
     ImplementationLacksVTable
 ] interface GamepadButton {

Modified: trunk/Source/WebCore/Modules/gamepad/GamepadEvent.idl (170399 => 170400)


--- trunk/Source/WebCore/Modules/gamepad/GamepadEvent.idl	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/Modules/gamepad/GamepadEvent.idl	2014-06-24 23:17:22 UTC (rev 170400)
@@ -24,6 +24,7 @@
  */
 
 [
+    EnabledAtRuntime=Gamepads,
     Conditional=GAMEPAD,
     ConstructorTemplate=Event
 ] interface GamepadEvent : Event {

Modified: trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl (170399 => 170400)


--- trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/Modules/gamepad/NavigatorGamepad.idl	2014-06-24 23:17:22 UTC (rev 170400)
@@ -26,6 +26,6 @@
 [
     Conditional=GAMEPAD,
 ] partial interface Navigator {
-    Gamepad[] getGamepads();
+    [EnabledAtRuntime=Gamepads] Gamepad[] getGamepads();
 };
 

Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp (170399 => 170400)


--- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp	2014-06-24 23:17:22 UTC (rev 170400)
@@ -102,6 +102,9 @@
 #if ENABLE(FONT_LOAD_EVENTS)
     , m_isFontLoadEventsEnabled(false)
 #endif
+#if ENABLE(GAMEPAD)
+    , m_areGamepadsEnabled(false)
+#endif
 {
 }
 

Modified: trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h (170399 => 170400)


--- trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -218,6 +218,11 @@
     void setPluginReplacementEnabled(bool isEnabled) { m_isPluginReplacementEnabled = isEnabled; }
     bool pluginReplacementEnabled() const { return m_isPluginReplacementEnabled; }
 
+#if ENABLE(GAMEPAD)
+    void setGamepadsEnabled(bool areEnabled) { m_areGamepadsEnabled = areEnabled; }
+    bool gamepadsEnabled() const { return m_areGamepadsEnabled; }
+#endif
+
     static RuntimeEnabledFeatures& sharedFeatures();
 
 private:
@@ -295,6 +300,10 @@
     bool m_isFontLoadEventsEnabled;
 #endif
 
+#if ENABLE(GAMEPAD)
+    bool m_areGamepadsEnabled;
+#endif
+
     friend class WTF::NeverDestroyed<RuntimeEnabledFeatures>;
 };
 

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (170399 => 170400)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1940,6 +1940,8 @@
         $hashSize++;
     }
 
+    my @runtimeEnabledFunctions = ();
+
     foreach my $function (@{$interface->functions}) {
         next if ($function->isStatic);
         next if $function->{overloadIndex} && $function->{overloadIndex} > 1;
@@ -1965,6 +1967,8 @@
             $conditionals{$name} = $conditional;
         }
 
+        push(@runtimeEnabledFunctions, $function) if $function->signature->extendedAttributes->{"EnabledAtRuntime"};
+
         $hashSize++;
     }
 
@@ -2011,6 +2015,20 @@
             push(@implContent, "{\n");
             push(@implContent, "    Base::finishCreation(vm);\n");
             push(@implContent, "    reifyStaticProperties(vm, ${className}PrototypeTableValues, *this);\n");
+
+            foreach my $function (@runtimeEnabledFunctions) {
+                my $conditionalString = $codeGenerator->GenerateConditionalString($function->signature);
+                push(@implContent, "#if ${conditionalString}\n") if $conditionalString;
+                AddToImplIncludes("RuntimeEnabledFeatures.h");
+                my $signature = $function->signature;
+                my $enable_function = GetRuntimeEnableFunctionName($signature);
+                my $name = $signature->name;
+                push(@implContent, "    if (!${enable_function}()) {\n");
+                push(@implContent, "        Identifier propertyName(&vm, reinterpret_cast<const LChar*>(\"$name\"), strlen(\"$name\"));\n");
+                push(@implContent, "        removeDirect(vm, propertyName);\n");
+                push(@implContent, "    }\n");
+                push(@implContent, "#endif\n") if $conditionalString;
+            }
             push(@implContent, "}\n\n");
         } else {
             push(@implContent, "void ${className}Prototype::finishCreation(VM& vm)\n");

Modified: trunk/Source/WebKit/mac/ChangeLog (170399 => 170400)


--- trunk/Source/WebKit/mac/ChangeLog	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/ChangeLog	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1,3 +1,21 @@
+2014-06-24  Brady Eidson  <beid...@apple.com>
+
+        Enable GAMEPAD in the Mac build, but disabled at runtime.
+        https://bugs.webkit.org/show_bug.cgi?id=134255
+
+        Reviewed by Dean Jackson.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.mm:
+        (-[WebPreferences gamepadsEnabled]):
+        (-[WebPreferences setGamepadsEnabled:]):
+        * WebView/WebPreferencesPrivate.h:
+
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]):
+
 2014-06-24  Dan Bernstein  <m...@apple.com>
 
         Fixed the iOS build after r170358.

Modified: trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig (170399 => 170400)


--- trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/Configurations/FeatureDefines.xcconfig	2014-06-24 23:17:22 UTC (rev 170400)
@@ -87,7 +87,8 @@
 ENABLE_FONT_LOAD_EVENTS = ;
 ENABLE_FULLSCREEN_API = $(ENABLE_FULLSCREEN_API_$(PLATFORM_NAME));
 ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
-ENABLE_GAMEPAD = ;
+ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(PLATFORM_NAME));
+ENABLE_GAMEPAD_macosx = ENABLE_GAMEPAD;
 ENABLE_GAMEPAD_DEPRECATED = ;
 ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING = $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_$(PLATFORM_NAME));

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (170399 => 170400)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -146,6 +146,7 @@
 #define WebKitMediaSourceEnabledPreferenceKey @"WebKitMediaSourceEnabled"
 #define WebKitShouldConvertPositionStyleOnCopyPreferenceKey @"WebKitShouldConvertPositionStyleOnCopy"
 #define WebKitImageControlsEnabledPreferenceKey @"WebKitImageControlsEnabled"
+#define WebKitGamepadsEnabledPreferenceKey @"WebKitGamepadsEnabled"
 
 #if !TARGET_OS_IPHONE
 // These are private both because callers should be using the cover methods and because the

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (170399 => 170400)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2014-06-24 23:17:22 UTC (rev 170400)
@@ -2538,6 +2538,16 @@
     [self _setBoolValue:enabled forKey:WebKitImageControlsEnabledPreferenceKey];
 }
 
+- (BOOL)gamepadsEnabled
+{
+    return [self _boolValueForKey:WebKitGamepadsEnabledPreferenceKey];
+}
+
+- (void)setGamepadsEnabled:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitGamepadsEnabledPreferenceKey];
+}
+
 - (BOOL)shouldConvertPositionStyleOnCopy
 {
     return [self _boolValueForKey:WebKitShouldConvertPositionStyleOnCopyPreferenceKey];

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (170399 => 170400)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -436,6 +436,9 @@
 - (void)setImageControlsEnabled:(BOOL)flag;
 - (BOOL)imageControlsEnabled;
 
+- (void)setGamepadsEnabled:(BOOL)flag;
+- (BOOL)gamepadsEnabled;
+
 #if TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MIN_REQUIRED < 80000
 - (void)_setAllowCompositingLayerVisualDegradation:(BOOL)flag;
 #endif

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (170399 => 170400)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2014-06-24 23:17:22 UTC (rev 170400)
@@ -2404,8 +2404,12 @@
     settings.setHiddenPageDOMTimerThrottlingEnabled([preferences hiddenPageDOMTimerThrottlingEnabled]);
 #endif
 
-settings.setHiddenPageCSSAnimationSuspensionEnabled([preferences hiddenPageCSSAnimationSuspensionEnabled]);
+    settings.setHiddenPageCSSAnimationSuspensionEnabled([preferences hiddenPageCSSAnimationSuspensionEnabled]);
 
+#if ENABLE(GAMEPAD)
+    RuntimeEnabledFeatures::sharedFeatures().setGamepadsEnabled([preferences gamepadsEnabled]);
+#endif
+
     NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
     if (timeout > 0)
         settings.setIncrementalRenderingSuppressionTimeoutInSeconds(timeout);

Modified: trunk/Source/WebKit2/ChangeLog (170399 => 170400)


--- trunk/Source/WebKit2/ChangeLog	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/ChangeLog	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1,3 +1,21 @@
+2014-06-24  Brady Eidson  <beid...@apple.com>
+
+        Enable GAMEPAD in the Mac build, but disabled at runtime.
+        https://bugs.webkit.org/show_bug.cgi?id=134255
+
+        Reviewed by Dean Jackson.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+        * Shared/WebPreferencesDefinitions.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetGamepadsEnabled):
+        (WKPreferencesGetGamepadsEnabled):
+        * UIProcess/API/C/WKPreferencesRefPrivate.h:
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences):
+
 2014-06-24  Anders Carlsson  <ander...@apple.com>
 
         Add support for v0 legacy decoding

Modified: trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig (170399 => 170400)


--- trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/Configurations/FeatureDefines.xcconfig	2014-06-24 23:17:22 UTC (rev 170400)
@@ -87,7 +87,8 @@
 ENABLE_FONT_LOAD_EVENTS = ;
 ENABLE_FULLSCREEN_API = $(ENABLE_FULLSCREEN_API_$(PLATFORM_NAME));
 ENABLE_FULLSCREEN_API_macosx = ENABLE_FULLSCREEN_API;
-ENABLE_GAMEPAD = ;
+ENABLE_GAMEPAD = $(ENABLE_GAMEPAD_$(PLATFORM_NAME));
+ENABLE_GAMEPAD_macosx = ENABLE_GAMEPAD;
 ENABLE_GAMEPAD_DEPRECATED = ;
 ENABLE_GEOLOCATION = ENABLE_GEOLOCATION;
 ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING = $(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING_$(PLATFORM_NAME));

Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (170399 => 170400)


--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -207,6 +207,7 @@
     macro(ImageControlsEnabled, imageControlsEnabled, Bool, bool, false) \
     macro(EnableInheritURIQueryComponent, enableInheritURIQueryComponent, Bool, bool, false) \
     macro(ServiceControlsEnabled, serviceControlsEnabled, Bool, bool, false) \
+    macro(GamepadsEnabled, gamepadsEnabled, Bool, bool, false) \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \
     macro(PDFScaleFactor, pdfScaleFactor, Double, double, 0) \

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


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2014-06-24 23:17:22 UTC (rev 170400)
@@ -1275,3 +1275,13 @@
 {
     return toImpl(preferencesRef)->imageControlsEnabled();
 }
+
+void WKPreferencesSetGamepadsEnabled(WKPreferencesRef preferencesRef, bool enabled)
+{
+    toImpl(preferencesRef)->setGamepadsEnabled(enabled);
+}
+
+bool WKPreferencesGetGamepadsEnabled(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->gamepadsEnabled();
+}

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


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h	2014-06-24 23:17:22 UTC (rev 170400)
@@ -330,6 +330,10 @@
 WK_EXPORT void WKPreferencesSetImageControlsEnabled(WKPreferencesRef preferencesRef, bool enabled);
 WK_EXPORT bool WKPreferencesGetImageControlsEnabled(WKPreferencesRef preferencesRef);
 
+// Default to false.
+WK_EXPORT void WKPreferencesSetGamepadsEnabled(WKPreferencesRef preferencesRef, bool enabled);
+WK_EXPORT bool WKPreferencesGetGamepadsEnabled(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (170399 => 170400)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-06-24 23:16:37 UTC (rev 170399)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2014-06-24 23:17:22 UTC (rev 170400)
@@ -2775,6 +2775,10 @@
     settings.setUseImageDocumentForSubframePDF(true);
 #endif
 
+#if ENABLE(GAMEPAD)
+    RuntimeEnabledFeatures::sharedFeatures().setGamepadsEnabled(store.getBoolValueForKey(WebPreferencesKey::gamepadsEnabledKey()));
+#endif
+
     if (store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey()))
         m_processSuppressionDisabledByWebPreference.stop();
     else
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to