Title: [116547] trunk
Revision
116547
Author
[email protected]
Date
2012-05-09 11:40:25 -0700 (Wed, 09 May 2012)

Log Message

[EFL][DRT] EFL's DRT needs to support LayoutTestController.dumpIconChanges()
https://bugs.webkit.org/show_bug.cgi?id=84435

Patch by Christophe Dumez <[email protected]> on 2012-05-09
Reviewed by Antonio Gomes.

Source/WebKit/efl:

Emit a "icon,changed" signal on the frame when its favion changed.
Clarify that the "icon,loaded" signal is only emitted for the main
frame.

* WebCoreSupport/FrameLoaderClientEfl.cpp:
(WebCore::FrameLoaderClientEfl::dispatchDidReceiveIcon):
(WebCore::FrameLoaderClientEfl::dispatchDidChangeIcons):
* ewk/ewk_frame.cpp:
(ewk_frame_icon_changed):
* ewk/ewk_frame.h:
* ewk/ewk_private.h:

Tools:

Catch the "icon,changed" signal on the frames in EFL's DumpRenderTree
to support LayoutTestController's dumpIconChanges().

* DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
(DumpRenderTreeChrome::createView):
(DumpRenderTreeChrome::onFrameIconChanged):
(DumpRenderTreeChrome::onFrameCreated):
* DumpRenderTree/efl/DumpRenderTreeChrome.h:
(DumpRenderTreeChrome):

LayoutTests:

Unskip the test checking for DumpRenderTree's support for
LayoutTestController's dumpIconChanges() in EFL port.

* platform/efl/Skipped:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (116546 => 116547)


--- trunk/LayoutTests/ChangeLog	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/LayoutTests/ChangeLog	2012-05-09 18:40:25 UTC (rev 116547)
@@ -1,3 +1,15 @@
+2012-05-09  Christophe Dumez  <[email protected]>
+
+        [EFL][DRT] EFL's DRT needs to support LayoutTestController.dumpIconChanges()
+        https://bugs.webkit.org/show_bug.cgi?id=84435
+
+        Reviewed by Antonio Gomes.
+
+        Unskip the test checking for DumpRenderTree's support for
+        LayoutTestController's dumpIconChanges() in EFL port.
+
+        * platform/efl/Skipped:
+
 2012-05-09  Csaba Osztrogonác  <[email protected]>
 
         [Qt] Unreviewed gardening.

Modified: trunk/LayoutTests/platform/efl/Skipped (116546 => 116547)


--- trunk/LayoutTests/platform/efl/Skipped	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/LayoutTests/platform/efl/Skipped	2012-05-09 18:40:25 UTC (rev 116547)
@@ -2,10 +2,6 @@
 # Tests which depend on features which have not been implemented yet
 # --------------------------------------------------------------------
 
-# Needs API to receive notifications about changed icons
-# https://bugs.webkit.org/show_bug.cgi?id=33812
-fast/dom/icon-url-property.html
-
 # EFL's EventSender does not implement dumpFilenameBeingDragged
 fast/events/drag-image-filename.html
 

Modified: trunk/Source/WebKit/efl/ChangeLog (116546 => 116547)


--- trunk/Source/WebKit/efl/ChangeLog	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Source/WebKit/efl/ChangeLog	2012-05-09 18:40:25 UTC (rev 116547)
@@ -1,3 +1,22 @@
+2012-05-09  Christophe Dumez  <[email protected]>
+
+        [EFL][DRT] EFL's DRT needs to support LayoutTestController.dumpIconChanges()
+        https://bugs.webkit.org/show_bug.cgi?id=84435
+
+        Reviewed by Antonio Gomes.
+
+        Emit a "icon,changed" signal on the frame when its favion changed.
+        Clarify that the "icon,loaded" signal is only emitted for the main
+        frame.
+
+        * WebCoreSupport/FrameLoaderClientEfl.cpp:
+        (WebCore::FrameLoaderClientEfl::dispatchDidReceiveIcon):
+        (WebCore::FrameLoaderClientEfl::dispatchDidChangeIcons):
+        * ewk/ewk_frame.cpp:
+        (ewk_frame_icon_changed):
+        * ewk/ewk_frame.h:
+        * ewk/ewk_private.h:
+
 2012-05-09  Mikhail Pozdnyakov  <[email protected]>
 
         [EFL][DRT] LayoutTestController addUserScript implementation

Modified: trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp (116546 => 116547)


--- trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp	2012-05-09 18:40:25 UTC (rev 116547)
@@ -596,9 +596,8 @@
 
 void FrameLoaderClientEfl::dispatchDidReceiveIcon()
 {
-    /* report received favicon only for main frame. */
-    if (ewk_view_frame_main_get(m_view) != m_frame)
-        return;
+    // IconController loads icons only for the main frame.
+    ASSERT(ewk_view_frame_main_get(m_view) == m_frame);
 
     ewk_view_frame_main_icon_received(m_view);
 }
@@ -621,9 +620,11 @@
     ewk_view_title_set(m_view, cs.data());
 }
 
-void FrameLoaderClientEfl::dispatchDidChangeIcons(WebCore::IconType)
+void FrameLoaderClientEfl::dispatchDidChangeIcons(WebCore::IconType iconType)
 {
-    notImplemented();
+    // Other touch types are apple-specific
+    ASSERT(iconType == WebCore::Favicon);
+    ewk_frame_icon_changed(m_frame);
 }
 
 void FrameLoaderClientEfl::dispatchDidCommitLoad()

Modified: trunk/Source/WebKit/efl/ewk/ewk_frame.cpp (116546 => 116547)


--- trunk/Source/WebKit/efl/ewk/ewk_frame.cpp	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Source/WebKit/efl/ewk/ewk_frame.cpp	2012-05-09 18:40:25 UTC (rev 116547)
@@ -1724,6 +1724,20 @@
 
 /**
  * @internal
+ * Reports frame favicon changed.
+ *
+ * @param ewkFrame Frame.
+ *
+ * Emits signal: "icon,changed" with no parameters.
+ */
+void ewk_frame_icon_changed(Evas_Object* ewkFrame)
+{
+    DBG("ewkFrame=%p", ewkFrame);
+    evas_object_smart_callback_call(ewkFrame, "icon,changed", 0);
+}
+
+/**
+ * @internal
  * Reports uri changed and swap internal string reference.
  *
  * Emits signal: "uri,changed" with new uri as parameter.

Modified: trunk/Source/WebKit/efl/ewk/ewk_frame.h (116546 => 116547)


--- trunk/Source/WebKit/efl/ewk/ewk_frame.h	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Source/WebKit/efl/ewk/ewk_frame.h	2012-05-09 18:40:25 UTC (rev 116547)
@@ -39,6 +39,7 @@
  *     were changed due new layout, script actions or any other events.
  *  - "editorclient,contents,changed", void: reports that editor client's
  *    contents were changed
+ *  - "icon,changed", void: frame favicon changed.
  *  - "load,committed", void: reports load committed.
  *  - "load,document,finished", void: frame finished loading the document.
  *  - "load,error", const Ewk_Frame_Load_Error*: reports load failed

Modified: trunk/Source/WebKit/efl/ewk/ewk_private.h (116546 => 116547)


--- trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Source/WebKit/efl/ewk/ewk_private.h	2012-05-09 18:40:25 UTC (rev 116547)
@@ -241,6 +241,7 @@
 void ewk_frame_view_create_for_view(Evas_Object* ewkFrame, Evas_Object* view);
 bool ewk_frame_uri_changed(Evas_Object* ewkFrame);
 void ewk_frame_force_layout(Evas_Object* ewkFrame);
+void ewk_frame_icon_changed(Evas_Object* ewkFrame);
 
 WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* ewkFrame, const WebCore::IntSize& pluginSize, WebCore::HTMLPlugInElement* element, const WebCore::KURL& url, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues, const WTF::String& mimeType, bool loadManually);
 

Modified: trunk/Tools/ChangeLog (116546 => 116547)


--- trunk/Tools/ChangeLog	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Tools/ChangeLog	2012-05-09 18:40:25 UTC (rev 116547)
@@ -1,3 +1,20 @@
+2012-05-09  Christophe Dumez  <[email protected]>
+
+        [EFL][DRT] EFL's DRT needs to support LayoutTestController.dumpIconChanges()
+        https://bugs.webkit.org/show_bug.cgi?id=84435
+
+        Reviewed by Antonio Gomes.
+
+        Catch the "icon,changed" signal on the frames in EFL's DumpRenderTree
+        to support LayoutTestController's dumpIconChanges().
+
+        * DumpRenderTree/efl/DumpRenderTreeChrome.cpp:
+        (DumpRenderTreeChrome::createView):
+        (DumpRenderTreeChrome::onFrameIconChanged):
+        (DumpRenderTreeChrome::onFrameCreated):
+        * DumpRenderTree/efl/DumpRenderTreeChrome.h:
+        (DumpRenderTreeChrome):
+
 2012-05-09  Dominik Röttsches  <[email protected]>
 
         webkit-patch upload Fails Behind Load-balancing Proxies

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp (116546 => 116547)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp	2012-05-09 18:40:25 UTC (rev 116547)
@@ -108,6 +108,7 @@
     evas_object_smart_callback_add(view, "frame,created", onFrameCreated, 0);
 
     Evas_Object* mainFrame = ewk_view_frame_main_get(view);
+    evas_object_smart_callback_add(mainFrame, "icon,changed", onFrameIconChanged, 0);
     evas_object_smart_callback_add(mainFrame, "load,provisional", onFrameProvisionalLoad, 0);
     evas_object_smart_callback_add(mainFrame, "load,committed", onFrameLoadCommitted, 0);
     evas_object_smart_callback_add(mainFrame, "load,finished", onFrameLoadFinished, 0);
@@ -420,6 +421,14 @@
     printf("UI DELEGATE STATUS CALLBACK: setStatusText:%s\n", statusbarText);
 }
 
+void DumpRenderTreeChrome::onFrameIconChanged(void*, Evas_Object* frame, void*)
+{
+    if (!done && gLayoutTestController->dumpIconChanges()) {
+        const String frameName(DumpRenderTreeSupportEfl::suitableDRTFrameName(frame));
+        printf("%s - didChangeIcons\n", frameName.utf8().data());
+    }
+}
+
 void DumpRenderTreeChrome::onTitleChanged(void*, Evas_Object*, void* eventInfo)
 {
     if (!gLayoutTestController->dumpTitleChanges())
@@ -508,6 +517,7 @@
 {
     Evas_Object* frame = static_cast<Evas_Object*>(eventInfo);
 
+    evas_object_smart_callback_add(frame, "icon,changed", onFrameIconChanged, 0);
     evas_object_smart_callback_add(frame, "load,provisional", onFrameProvisionalLoad, 0);
     evas_object_smart_callback_add(frame, "load,committed", onFrameLoadCommitted, 0);
     evas_object_smart_callback_add(frame, "load,finished", onFrameLoadFinished, 0);

Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h (116546 => 116547)


--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h	2012-05-09 18:30:58 UTC (rev 116546)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.h	2012-05-09 18:40:25 UTC (rev 116547)
@@ -91,6 +91,8 @@
 
     static void onFrameCreated(void*, Evas_Object*, void*);
 
+    static void onFrameIconChanged(void*, Evas_Object*, void*);
+
     static void onFrameProvisionalLoad(void*, Evas_Object*, void*);
 
     static void onFrameLoadCommitted(void*, Evas_Object*, void*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to