[EFL] Enable SHADOW_DOM flag
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Jun 2012 00:28:03 +0000 (00:28 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Jun 2012 00:28:03 +0000 (00:28 +0000)
https://bugs.webkit.org/show_bug.cgi?id=87732

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-12
Reviewed by Kentaro Hara.

.:

Enable SHADOW_DOM flag by default at compile time for EFL port.

* Source/autotools/symbols.filter: Fix GTK build by adding new symbol.
* Source/cmake/OptionsEfl.cmake:
* Source/cmakeconfig.h.cmake:

Source/WebCore:

Test: fast/dom/shadow/shadow-root-innerHTML.html

* dom/ShadowRoot.idl: Add JSGenerateToJSObject extended attribute so
that the ShadowRoot properties are accessible on JS side.
* testing/Internals.idl: Fix SHADOW_DOM ifdef check.

Source/WebKit:

Add WebCore/bindings/generic to include directories so
that we can include RuntimeEnabledFeatures.h.

* CMakeLists.txt:

Source/WebKit/efl:

Add Ewk setting to toggle Shadow DOM support at runtime.

* ewk/ewk_settings.cpp:
(ewk_settings_shadow_dom_enable_get):
(ewk_settings_shadow_dom_enable_set):
* ewk/ewk_settings.h:

Tools:

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::resetDefaultsToConsistentValues): Enable
SHADOW_DOM by default in DRT.
* DumpRenderTree/efl/DumpRenderTreeView.cpp:
(onFocusCanCycle): Enable focus cycling in EFL DRT to behave like
Chromium and Mac ports.
(drtViewAdd):
* Scripts/webkitperl/FeatureList.pm: Enable SHADOW_DOM flag by default
at compile time for EFL port.

LayoutTests:

Unskip most of the test cases associated to Shadow DOM now that the
feature is enabled by default for EFL's DRT.

* platform/efl/Skipped:
* platform/efl/TestExpectations:
* platform/efl/fast/dom/shadow/form-in-shadow-expected.txt: Added.
* platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120144 268f45cc-cd09-0410-ab3c-d52691b4dbfc

21 files changed:
ChangeLog
LayoutTests/ChangeLog
LayoutTests/platform/efl/Skipped
LayoutTests/platform/efl/TestExpectations
LayoutTests/platform/efl/fast/dom/shadow/form-in-shadow-expected.txt [new file with mode: 0644]
LayoutTests/platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/dom/ShadowRoot.idl
Source/WebCore/testing/Internals.idl
Source/WebKit/CMakeLists.txt
Source/WebKit/ChangeLog
Source/WebKit/efl/ChangeLog
Source/WebKit/efl/ewk/ewk_settings.cpp
Source/WebKit/efl/ewk/ewk_settings.h
Source/autotools/symbols.filter
Source/cmake/OptionsEfl.cmake
Source/cmakeconfig.h.cmake
Tools/ChangeLog
Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp
Tools/DumpRenderTree/efl/DumpRenderTreeView.cpp
Tools/Scripts/webkitperl/FeatureList.pm

index 0ee9b3a..60afa08 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,18 @@
 2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
 
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Enable SHADOW_DOM flag by default at compile time for EFL port.
+
+        * Source/autotools/symbols.filter: Fix GTK build by adding new symbol.
+        * Source/cmake/OptionsEfl.cmake:
+        * Source/cmakeconfig.h.cmake:
+
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
         [EFL] enable LEGACY_WEBKIT_BLOB_BUILDER flag
         https://bugs.webkit.org/show_bug.cgi?id=88715
 
index 14384c7..3f92c44 100644 (file)
@@ -1,3 +1,18 @@
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Unskip most of the test cases associated to Shadow DOM now that the
+        feature is enabled by default for EFL's DRT.
+
+        * platform/efl/Skipped:
+        * platform/efl/TestExpectations:
+        * platform/efl/fast/dom/shadow/form-in-shadow-expected.txt: Added.
+        * platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt: Added.
+
 2012-06-12  Ojan Vafai  <ojan@chromium.org>
 
         Add some expecations to green the chromium tree while the bugs are resolved.
index c699bec..963eacc 100644 (file)
@@ -100,10 +100,6 @@ editing/text-iterator/basic-iteration.html
 # EFL's LayoutTestController does not implement setMediaType
 fast/media/print-restores-previous-mediatype.html
 
-# ENABLE(SHADOW_DOM) is disabled
-fast/dom/shadow
-editing/shadow
-
 # ENABLE(DATALIST) is disabled
 fast/forms/datalist
 
@@ -757,23 +753,6 @@ http/tests/websocket/tests/hixie76/workers/close-in-onmessage-crash.html
 # Tests for features under development
 # ------------------------------------
 
-# ENABLE(SHADOW_DOM) is disabled.
-fast/dom/shadow/content-element-outside-shadow-style.html
-fast/dom/shadow/content-element-in-media-element.html
-fast/dom/shadow/content-element-in-meter-element.html
-fast/dom/shadow/get-element-by-id-in-shadow-root.html
-fast/dom/shadow/shadow-root-js-api.html
-fast/dom/shadow/shadow-disable.html
-fast/dom/shadow/shadow-dom-event-dispatching.html
-fast/dom/shadow/shadow-root-attached.html
-fast/dom/shadow/shadow-root-new.html
-fast/dom/shadow/shadow-root-append.html
-fast/dom/shadow/shadow-element-rendering-single.html
-fast/dom/shadow/shadow-element-rendering-multiple.html
-fast/dom/shadow/multiple-shadowroot.html
-fast/dom/shadow/multiple-shadowroot-rendering.html
-fast/dom/shadow/multiple-shadowroot-adopt.html
-
 # ENABLE_INPUT_TYPE_* are not enabled.
 # https://bugs.webkit.org/show_bug.cgi?id=29359
 # https://bugs.webkit.org/show_bug.cgi?id=68971
index 798a07c..5c39bbe 100644 (file)
@@ -96,6 +96,8 @@ BUGWK86623 : editing/pasteboard/drop-inputtext-acquires-style.html = TEXT
 BUGWK86623 : editing/pasteboard/drop-link.html = TEXT
 BUGWK86623 : editing/pasteboard/drop-text-events.html = TEXT
 BUGWK86623 : editing/pasteboard/get-data-text-plain-drop.html = TEXT
+BUGWK86623 : fast/dom/shadow/drop-event-for-input-in-shadow.html = TEXT
+BUGWK86623 : fast/dom/shadow/drop-event-in-shadow.html = TEXT
 BUGWK86623 : http/tests/local/fileapi/file-last-modified-after-delete.html = TEXT
 
 BUGWK88198 : svg/stroke/non-scaling-stroke-pattern.svg = PASS IMAGE
@@ -159,10 +161,6 @@ BUGWK60103 : fast/replaced/border-radius-clip.html = TEXT PASS
 // FAILING TESTS
 //////////////////////////////////////////////////////////////////////////////////////////
 
-// Needs ENABLE_SHADOW_DOM
-BUGWK76439 DEBUG : fast/dom/shadow/content-element-api.html = TEXT
-BUGWK76439 DEBUG : fast/dom/shadow/content-element-outside-shadow.html = TEXT
-
 // Needs inner spin button to respect -webkit-inner-spin-button style
 BUGWK87619 : fast/forms/number/input-appearance-number-rtl.html = TEXT
 BUGWK87619 : fast/forms/number/input-appearance-spinbutton-disabled-readonly.html = TEXT
@@ -549,8 +547,6 @@ BUGWK84835 : editing/execCommand/copy-without-selection.html = TEXT
 BUGWK84835 : editing/execCommand/findString-diacriticals.html = TEXT
 BUGWK84835 : editing/execCommand/indent-paragraphs.html = TEXT
 
-BUGWK86961 : editing/execCommand/paste-and-match-style-event.html = CRASH
-
 // DRT doesn't check for isPrinting().
 BUGWK87226 : printing/iframe-print.html = TEXT
 BUGWK87226 : printing/media-queries-print.html = MISSING
@@ -627,6 +623,7 @@ BUGWK86091 : fast/events/right-click-focus.html = TEXT
 BUGWK86091 : fast/events/selectstart-prevent-selection-on-right-click.html = TEXT
 BUGWK86091 : media/context-menu-actions.html = TEXT
 BUGWK86091 : media/controls-right-click-on-timebar.html = TEXT
+BUGWK86091 : editing/shadow/rightclick-on-meter-in-shadow-crash.html = TEXT
 
 // EFL's EventSender contextClick, needs baselines
 BUGWK86091 : editing/selection/5354455-2.html = MISSING
@@ -645,6 +642,13 @@ BUGWK86597 : fullscreen/video-controls-drag.html = TEXT
 BUGWK86187 : media/media-fullscreen-not-in-document.html = TEXT
 BUGWK86187 SKIP : media/media-fullscreen-inline.html = PASS
 
+// ecore_x library is not initialized and calls to it cause crashes
+BUGWK86961 : editing/execCommand/paste-and-match-style-event.html = CRASH
+BUGWK86961 : fast/dom/shadow/cppevent-in-shadow.html = CRASH
+
+// Selection problem in Shadow DOM test (passes on GTK)
+BUGWKEFL : fast/dom/shadow/selections-in-shadow.html = TEXT
+
 // This test is specific to QuickTime media engine.
 BUGWKEFL SKIP : media/video-does-not-loop.html = PASS
 
diff --git a/LayoutTests/platform/efl/fast/dom/shadow/form-in-shadow-expected.txt b/LayoutTests/platform/efl/fast/dom/shadow/form-in-shadow-expected.txt
new file mode 100644 (file)
index 0000000..dec76f1
--- /dev/null
@@ -0,0 +1,10 @@
+PASS obj.hidden is 'hidden'
+PASS obj.text is 'text'
+PASS obj.checkbox1 is 'on'
+PASS obj.checkbox2 is undefined.
+PASS obj.range is '50'
+PASS obj.textarea is 'textarea'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt b/LayoutTests/platform/efl/fast/dom/shadow/tab-order-iframe-and-shadow-expected.txt
new file mode 100644 (file)
index 0000000..2ffa38a
--- /dev/null
@@ -0,0 +1,57 @@
+CONSOLE MESSAGE: line 104: ReferenceError: Can't find variable: log
+This tests that pressing Tab key should traverse into iframe and shadow tree, and pressing Shift-Tab should reverse the order.
+
+Should move from input-01 to input-13 in forward
+PASS
+Should move from input-13 to input-15 in forward
+PASS
+Should move from input-15 to input-02 in forward
+PASS
+Should move from input-02 to host-01/input-03 in forward
+PASS
+Should move from host-01/input-03 to input-04 in forward
+PASS
+Should move from input-04 to iframe/input-06 in forward
+PASS
+Should move from iframe/input-06 to iframe/host-02 in forward
+PASS
+Should move from iframe/host-02 to iframe/host-02/input-09 in forward
+PASS
+Should move from iframe/host-02/input-09 to iframe/host-02/input-08 in forward
+PASS
+Should move from iframe/host-02/input-08 to iframe/input-12 in forward
+PASS
+Should move from iframe/input-12 to iframe/input-11 in forward
+PASS
+Should move from iframe/input-11 to iframe/input-05 in forward
+PASS
+Should move from iframe/input-05 to input-14 in forward
+PASS
+Should move from input-14 to iframe/input-05 in backward
+PASS
+Should move from iframe/input-05 to iframe/input-11 in backward
+PASS
+Should move from iframe/input-11 to iframe/input-12 in backward
+PASS
+Should move from iframe/input-12 to iframe/host-02/input-08 in backward
+PASS
+Should move from iframe/host-02/input-08 to iframe/host-02/input-09 in backward
+PASS
+Should move from iframe/host-02/input-09 to iframe/host-02 in backward
+PASS
+Should move from iframe/host-02 to iframe/input-06 in backward
+PASS
+Should move from iframe/input-06 to input-04 in backward
+PASS
+Should move from input-04 to host-01/input-03 in backward
+PASS
+Should move from host-01/input-03 to input-02 in backward
+PASS
+Should move from input-02 to input-15 in backward
+PASS
+Should move from input-15 to input-13 in backward
+PASS
+Should move from input-13 to input-01 in backward
+PASS
+
+
index 98ea9e2..1f22ba1 100644 (file)
@@ -1,3 +1,16 @@
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Test: fast/dom/shadow/shadow-root-innerHTML.html
+
+        * dom/ShadowRoot.idl: Add JSGenerateToJSObject extended attribute so
+        that the ShadowRoot properties are accessible on JS side.
+        * testing/Internals.idl: Fix SHADOW_DOM ifdef check.
+
 2012-06-12  Leo Yang  <leo.yang@torchmobile.com.cn>
 
         Dynamic hash table in DOMObjectHashTableMap is wrong in multiple threads
index 00f7cd8..d38ed54 100644 (file)
@@ -29,7 +29,8 @@ module core {
     interface [
         Conditional=SHADOW_DOM,
         Constructor(in Element host),
-        ConstructorRaisesException
+        ConstructorRaisesException,
+        JSGenerateToJSObject
     ] ShadowRoot : DocumentFragment {
         readonly attribute Element host;
         readonly attribute Element activeElement;
index a4490fa..e43a25b 100644 (file)
@@ -34,7 +34,7 @@ module window {
 
         unsigned long numberOfScopedHTMLStyleChildren(in Node scope) raises(DOMException);
 
-#if defined(ENABLE_SHADOW_DOM)
+#if defined(ENABLE_SHADOW_DOM) && ENABLE_SHADOW_DOM
         ShadowRoot ensureShadowRoot(in Element host) raises (DOMException);
         ShadowRoot shadowRoot(in Element host) raises (DOMException);
         ShadowRoot youngestShadowRoot(in Element host) raises (DOMException);
index f0ef98a..0d9e7b4 100644 (file)
@@ -4,6 +4,7 @@ SET(WebKit_INCLUDE_DIRECTORIES
     "${WEBCORE_DIR}/Modules/intents"
     "${WEBCORE_DIR}/Modules/webdatabase"
     "${WEBCORE_DIR}/accessibility"
+    "${WEBCORE_DIR}/bindings/generic"
     "${WEBCORE_DIR}/bindings/js"
     "${WEBCORE_DIR}/bindings"
     "${WEBCORE_DIR}/bridge"
index 7f09be8..a8bf7a7 100644 (file)
@@ -1,3 +1,15 @@
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Add WebCore/bindings/generic to include directories so
+        that we can include RuntimeEnabledFeatures.h.
+
+        * CMakeLists.txt:
+
 2012-06-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
 
         [Qt] Don't use WebKit HAVE() macro in public Qt headers
index 68c9dec..94a504c 100644 (file)
@@ -1,3 +1,17 @@
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        Add Ewk setting to toggle Shadow DOM support at runtime.
+
+        * ewk/ewk_settings.cpp:
+        (ewk_settings_shadow_dom_enable_get):
+        (ewk_settings_shadow_dom_enable_set):
+        * ewk/ewk_settings.h:
+
 2012-06-11  Kaustubh Atrawalkar  <kaustubh@motorola.com>
 
         [DRT] LTC:: counterValueForElementById() could be moved to Internals.
index 36b08c0..10b4fba 100644 (file)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2009-2010 ProFUSION embedded systems
     Copyright (C) 2009-2010 Samsung Electronics
+    Copyright (C) 2012 Intel Corporation
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -33,6 +34,7 @@
 #include "KURL.h"
 #include "MemoryCache.h"
 #include "PageCache.h"
+#include "RuntimeEnabledFeatures.h"
 #include "Settings.h"
 #include "ewk_private.h"
 #include "ewk_util_private.h"
@@ -248,6 +250,26 @@ void ewk_settings_object_cache_enable_set(Eina_Bool enable)
     WebCore::memoryCache()->setDisabled(!enable);
 }
 
+Eina_Bool ewk_settings_shadow_dom_enable_get()
+{
+#if ENABLE(SHADOW_DOM)
+    return WebCore::RuntimeEnabledFeatures::shadowDOMEnabled();
+#else
+    return false;
+#endif
+}
+
+Eina_Bool ewk_settings_shadow_dom_enable_set(Eina_Bool enable)
+{
+#if ENABLE(SHADOW_DOM)
+    enable = !!enable;
+    WebCore::RuntimeEnabledFeatures::setShadowDOMEnabled(enable);
+    return true;
+#else
+    return false;
+#endif
+}
+
 unsigned ewk_settings_page_cache_capacity_get()
 {
     return WebCore::pageCache()->capacity();
index 08f7931..2bd7cc0 100644 (file)
@@ -1,6 +1,7 @@
 /*
     Copyright (C) 2009-2010 ProFUSION embedded systems
     Copyright (C) 2009-2010 Samsung Electronics
+    Copyright (C) 2012 Intel Corporation
 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
@@ -278,6 +279,34 @@ EAPI Eina_Bool        ewk_settings_object_cache_enable_get(void);
 EAPI void             ewk_settings_object_cache_enable_set(Eina_Bool set);
 
 /**
+ * Returns whether Shadow DOM is enabled.
+ *
+ * Shadow DOM is a method of establishing and maintaining functional boundaries between
+ * DOM subtrees and how these subtrees interact with each other within a document tree,
+ * thus enabling better functional encapsulation within DOM.
+ *
+ * By default, Shadow DOM is disabled.
+ *
+ * @return @c EINA_TRUE if Shadow DOM is enabled or @c EINA_FALSE if not
+ *
+ * @sa ewk_settings_shadow_dom_enable_set
+ */
+EAPI Eina_Bool    ewk_settings_shadow_dom_enable_get(void);
+
+/**
+ * Enables/disables Shadow DOM functionality.
+ *
+ * Shadow DOM is a method of establishing and maintaining functional boundaries between
+ * DOM subtrees and how these subtrees interact with each other within a document tree,
+ * thus enabling better functional encapsulation within DOM.
+ *
+ * By default, Shadow DOM is disabled.
+ *
+ * @param set @c EINA_TRUE to enable Shadow DOM, @c EINA_FALSE to disable
+ */
+EAPI Eina_Bool    ewk_settings_shadow_dom_enable_set(Eina_Bool enable);
+
+/**
  * Defines the capacities for the in-memory object cache.
  *
  * The object cache is responsible for holding resources such as scripts, stylesheets
index 4cb8a99..c05d915 100644 (file)
@@ -31,6 +31,7 @@ _ZN7WebCore4Page13setPaginationERKNS0_10PaginationE;
 _ZN7WebCore4Page18setPageScaleFactorEfRKNS_8IntPointE;
 _ZN7WebCore4Page20setDeviceScaleFactorEf;
 _ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_10ClientRectE;
+_ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_10ShadowRootE;
 _ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_14ClientRectListE;
 _ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_5RangeE;
 _ZN7WebCore5Range6createEN3WTF10PassRefPtrINS_8DocumentEEENS2_INS_4NodeEEEiS6_i;
index 51d88f9..355fe9a 100644 (file)
@@ -81,6 +81,7 @@ WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_NETWORK_INFO ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_PAGE_VISIBILITY_API ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REGISTER_PROTOCOL_HANDLER ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME ON)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHADOW_DOM ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SHARED_WORKERS ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TOUCH_EVENTS ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_VIBRATION ON)
index fadc8cb..118498d 100644 (file)
@@ -64,6 +64,7 @@
 #cmakedefine01 ENABLE_PROGRESS_TAG
 #cmakedefine01 ENABLE_REGISTER_PROTOCOL_HANDLER
 #cmakedefine01 ENABLE_REQUEST_ANIMATION_FRAME
+#cmakedefine01 ENABLE_SHADOW_DOM
 #cmakedefine01 ENABLE_SHARED_WORKERS
 #cmakedefine01 ENABLE_SMOOTH_SCROLLING
 #cmakedefine01 ENABLE_SQL_DATABASE
index 21bd77e..c0514a4 100644 (file)
@@ -1,3 +1,20 @@
+2012-06-12  Christophe Dumez  <christophe.dumez@intel.com>
+
+        [EFL] Enable SHADOW_DOM flag
+        https://bugs.webkit.org/show_bug.cgi?id=87732
+
+        Reviewed by Kentaro Hara.
+
+        * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
+        (DumpRenderTreeChrome::resetDefaultsToConsistentValues): Enable
+        SHADOW_DOM by default in DRT.
+        * DumpRenderTree/efl/DumpRenderTreeView.cpp:
+        (onFocusCanCycle): Enable focus cycling in EFL DRT to behave like
+        Chromium and Mac ports.
+        (drtViewAdd):
+        * Scripts/webkitperl/FeatureList.pm: Enable SHADOW_DOM flag by default
+        at compile time for EFL port.
+
 2012-06-12  Ashod Nakashian  <ashodnakashian@yahoo.com>
 
         WinLauncher should show loading errors
index 799e68c..90a9cb7 100644 (file)
@@ -217,6 +217,7 @@ void DumpRenderTreeChrome::resetDefaultsToConsistentValues()
 
     ewk_settings_memory_cache_clear();
     ewk_settings_application_cache_clear();
+    ewk_settings_shadow_dom_enable_set(EINA_TRUE);
 
     ewk_view_setting_private_browsing_set(mainView(), EINA_FALSE);
     ewk_view_setting_spatial_navigation_set(mainView(), EINA_FALSE);
index d4f0444..32f4c39 100644 (file)
@@ -189,6 +189,12 @@ static Eina_Bool onNavigationPolicyDecision(Ewk_View_Smart_Data*, Ewk_Frame_Reso
     return policyDelegatePermissive;
 }
 
+static Eina_Bool onFocusCanCycle(Ewk_View_Smart_Data*, Ewk_Focus_Direction)
+{
+    // This is the behavior of Mac and Chromium ports and is expected by some test cases.
+    return true;
+}
+
 Evas_Object* drtViewAdd(Evas* evas)
 {
     static Ewk_View_Smart_Class api = EWK_VIEW_SMART_CLASS_INIT_NAME_VERSION("DRT_View");
@@ -208,6 +214,7 @@ Evas_Object* drtViewAdd(Evas* evas)
     api.exceeded_application_cache_quota = onExceededApplicationCacheQuota;
     api.exceeded_database_quota = onExceededDatabaseQuota;
     api.navigation_policy_decision = onNavigationPolicyDecision;
+    api.focus_can_cycle = onFocusCanCycle;
 
     return evas_object_smart_add(evas, evas_smart_class_new(&api.sc));
 }
index edcc5b7..187eb78 100644 (file)
@@ -324,7 +324,7 @@ my @features = (
       define => "ENABLE_SCRIPTED_SPEECH", default => 0, value => \$scriptedSpeechSupport },
 
     { option => "shadow-dom", desc => "Toggle Shadow DOM support",
-      define => "ENABLE_SHADOW_DOM", default => isGtk(), value => \$shadowDOMSupport },
+      define => "ENABLE_SHADOW_DOM", default => (isGtk() || isEfl()), value => \$shadowDOMSupport },
 
     { option => "shared-workers", desc => "Toggle Shared Workers support",
       define => "ENABLE_SHARED_WORKERS", default => (isAppleWebKit() || isGtk() || isBlackBerry() || isEfl()), value => \$sharedWorkersSupport },