Added new API to enable/disable link effect(link sound)
authorRyuan Choi <ryuan.choi@samsung.com>
Wed, 5 Jun 2013 10:49:52 +0000 (19:49 +0900)
committerGerrit Code Review <gerrit2@kim11>
Fri, 7 Jun 2013 00:14:54 +0000 (09:14 +0900)
[Title] Added new API to enable/disable link effect(link sound)
[Issue#] N/A
[Problem] OSP requested.
[Cause]
[Solution] Added.

Change-Id: I0a6862a4dc25b8448c37d929cb3ceccd3adb7067

Conflicts:
Source/WebCore/page/Settings.cpp
Source/WebKit2/Shared/WebPreferencesStore.h
Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp
Source/WebKit2/UIProcess/API/efl/ewk_settings.h
Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp

Source/WebCore/page/EventHandler.cpp
Source/WebCore/page/Settings.cpp
Source/WebCore/page/Settings.h
Source/WebKit2/Shared/WebPreferencesStore.h
Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp
Source/WebKit2/UIProcess/API/efl/ewk_settings.h
Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp

index 7511287..23fec35 100755 (executable)
@@ -508,21 +508,23 @@ bool EventHandler::handleMousePressEventSingleClick(const MouseEventWithHitTestR
     Node* innerNode = targetNode(event);
 
 #if ENABLE(TIZEN_LINK_EFFECT)
-    for (Node* node = innerNode; node && !node->disabled() && !node->rendererIsEditable(); node = node->parentNode()) {
-        if (node->hasTagName(HTMLNames::bodyTag))
-            continue;
+    if (m_frame->page() &&m_frame->page()->settings()->linkEffectEnabled()) {
+        for (Node* node = innerNode; node && !node->disabled() && !node->rendererIsEditable(); node = node->parentNode()) {
+            if (node->hasTagName(HTMLNames::bodyTag))
+                continue;
 
-        if (node->supportsFocus()
-            || node->hasEventListeners(eventNames().clickEvent)
-            || node->hasEventListeners(eventNames().mousedownEvent)
-            || node->hasEventListeners(eventNames().mouseupEvent)
-            || node->hasEventListeners(eventNames().mouseoverEvent)) {
-            TizenLinkEffect::playLinkEffect();
-            break;
-        }
+            if (node->supportsFocus()
+                || node->hasEventListeners(eventNames().clickEvent)
+                || node->hasEventListeners(eventNames().mousedownEvent)
+                || node->hasEventListeners(eventNames().mouseupEvent)
+                || node->hasEventListeners(eventNames().mouseoverEvent)) {
+                TizenLinkEffect::playLinkEffect();
+                break;
+            }
 
-        if (node->renderer() && node->renderer()->isRoot())
-            break;
+            if (node->renderer() && node->renderer()->isRoot())
+                break;
+        }
     }
 #endif
 
index c06cb04..b887b7b 100755 (executable)
@@ -311,6 +311,9 @@ Settings::Settings(Page* page)
     , m_loadRemoteImagesTimer(this, &Settings::loadRemoteImagesTimerFired)
     , m_loadRemoteImages(true)
 #endif
+#if ENABLE(TIZEN_ISF_PORT)
+    , m_linkEffectEnabled(true)
+#endif
 #if ENABLE(TIZEN_WEBKIT2_MEMORY_SAVING_MODE)
     , m_memorySavingModeEnabled(false)
 #endif
index 2fab6af..765f412 100755 (executable)
@@ -497,6 +497,11 @@ namespace WebCore {
         bool defaultKeypadEnabled() const { return m_defaultKeypadEnabled; }
 #endif
 
+#if ENABLE(TIZEN_LINK_EFFECT)
+        void setLinkEffectEnabled(bool flag) { m_linkEffectEnabled = flag; }
+        bool linkEffectEnabled() { return m_linkEffectEnabled; }
+#endif
+
 #if ENABLE(TIZEN_WEBKIT2_MEMORY_SAVING_MODE)
         void setMemorySavingMode(bool memorySavingMode) { m_memorySavingModeEnabled = memorySavingMode; }
         bool memorySavingModeEnabled() const { return m_memorySavingModeEnabled; }
@@ -843,6 +848,9 @@ namespace WebCore {
 #if ENABLE(TIZEN_ISF_PORT)
         bool m_defaultKeypadEnabled :1;
 #endif
+#if ENABLE(TIZEN_LINK_EFFECT)
+        bool m_linkEffectEnabled : 1;
+#endif
 #if ENABLE(TIZEN_WEBKIT2_MEMORY_SAVING_MODE)
         bool m_memorySavingModeEnabled;
 #endif
index b148ddc..c6a6600 100755 (executable)
@@ -204,6 +204,7 @@ namespace WebKit {
 #define FOR_EACH_WEBKIT_TIZEN_BOOL_PREFERENCE(macro) \
     macro(UsesEncodingDetector, usesEncodingDetector, Bool, bool, false) \
     macro(LoadRemoteImages, loadRemoteImages, Bool, bool, true) \
+    macro(LinkEffectEnabled, linkEffectEnabled, Bool, bool, true) \
     macro(EnableDefaultKeypad, defaultKeypadEnabled, Bool, bool, true) \
     macro(InteractiveFormValidationEnabled, interactiveFormValidationEnabled, Bool, bool, true) \
     macro(GeolocationEnabled, geolocationEnabled, Bool, bool, true) \
@@ -218,6 +219,7 @@ namespace WebKit {
     macro(AsynchronousSpellCheckingEnabled, asynchronousSpellCheckingEnabled, Bool, bool, false) \
     macro(UsesEncodingDetector, usesEncodingDetector, Bool, bool, false) \
     macro(LoadRemoteImages, loadRemoteImages, Bool, bool, true) \
+    macro(LinkEffectEnabled, linkEffectEnabled, Bool, bool, true) \
     macro(EnableDefaultKeypad, defaultKeypadEnabled, Bool, bool, true) \
     macro(InteractiveFormValidationEnabled, interactiveFormValidationEnabled, Bool, bool, true) \
     macro(GeolocationEnabled, geolocationEnabled, Bool, bool, true) \
index 6af8a5b..cbb798d 100755 (executable)
@@ -307,6 +307,30 @@ Eina_Bool ewk_settings_load_remote_images_get(const Ewk_Settings* settings)
 }
 #endif
 
+Eina_Bool ewk_settings_link_effect_enabled_set(Ewk_Settings* settings, Eina_Bool linkEffectEnabled)
+{
+#if ENABLE(TIZEN_LINK_EFFECT)
+    EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+    settings->preferences()->setLinkEffectEnabled(linkEffectEnabled);
+
+    return true;
+#else
+    return false;
+#endif
+}
+
+Eina_Bool ewk_settings_link_effect_enabled_get(const Ewk_Settings* settings)
+{
+#if ENABLE(TIZEN_LINK_EFFECT)
+    EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
+
+    return settings->preferences()->linkEffectEnabled();
+#else
+    return false;
+#endif
+}
+
 Eina_Bool ewk_settings_uses_encoding_detector_set(Ewk_Settings* settings, Eina_Bool use)
 {
     EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
index ba010b9..ea3f02d 100644 (file)
@@ -297,6 +297,27 @@ EAPI Eina_Bool ewk_settings_load_remote_images_get(const Ewk_Settings *settings)
 //#endif
 
 /**
+ * Requests to enable/disable link effect
+ *
+ * @param settings settings object to enable/disable link effect
+ *
+ * @param linkEffectEnabled @c EINA_TRUE to enable the link effect
+ *        @c EINA_FALSE to disable
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_settings_link_effect_enabled_set(Ewk_Settings *settings, Eina_Bool linkEffectEnabled);
+
+/**
+ * Returns enable/disable link effect
+ *
+ * @param settings settings object to get whether link effect is enabled or disabled
+ *
+ * @return @c EINA_TRUE on enable or @c EINA_FALSE on disable
+ */
+EAPI Eina_Bool ewk_settings_link_effect_enabled_get(const Ewk_Settings *settings);
+
+/**
  * Requests to set using encoding detector.
  *
  * @param settings settings object to set using encoding detector
index bce00e5..a7b07cc 100644 (file)
@@ -182,6 +182,9 @@ void WebPage::platformPreferencesDidChange(const WebPreferencesStore& store)
 #if ENABLE(TIZEN_LOAD_REMOTE_IMAGES)
     settings->setLoadRemoteImages(store.getBoolValueForKey(WebPreferencesKey::loadRemoteImagesKey()));
 #endif
+#if ENABLE(TIZEN_LINK_EFFECT)
+    settings->setLinkEffectEnabled(store.getBoolValueForKey(WebPreferencesKey::linkEffectEnabledKey()));
+#endif
 #if ENABLE(TIZEN_ISF_PORT)
     settings->setEnableDefaultKeypad(store.getBoolValueForKey(WebPreferencesKey::defaultKeypadEnabledKey()));
 #endif