Title: [96497] trunk/Tools
Revision
96497
Author
[email protected]
Date
2011-10-03 07:21:17 -0700 (Mon, 03 Oct 2011)

Log Message

[EFL] DRT: Add DumpHistoryItem.{cpp,h}
https://bugs.webkit.org/show_bug.cgi?id=63992

Patch by Raphael Kubo da Costa <[email protected]> on 2011-10-03
Reviewed by Antonio Gomes.

This is the code responsible for dumping the back and forward history
list.

* DumpRenderTree/efl/DumpHistoryItem.cpp: Added.
(dumpHistoryItem):
(dumpBackForwardListForWebView):
(dumpBackForwardListForWebViews):
* DumpRenderTree/efl/DumpHistoryItem.h: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (96496 => 96497)


--- trunk/Tools/ChangeLog	2011-10-03 14:16:46 UTC (rev 96496)
+++ trunk/Tools/ChangeLog	2011-10-03 14:21:17 UTC (rev 96497)
@@ -1,3 +1,19 @@
+2011-10-03  Raphael Kubo da Costa  <[email protected]>
+
+        [EFL] DRT: Add DumpHistoryItem.{cpp,h}
+        https://bugs.webkit.org/show_bug.cgi?id=63992
+
+        Reviewed by Antonio Gomes.
+
+        This is the code responsible for dumping the back and forward history
+        list.
+
+        * DumpRenderTree/efl/DumpHistoryItem.cpp: Added.
+        (dumpHistoryItem):
+        (dumpBackForwardListForWebView):
+        (dumpBackForwardListForWebViews):
+        * DumpRenderTree/efl/DumpHistoryItem.h: Added.
+
 2011-10-03  Zeno Albisser  <[email protected]>
 
         [Qt][WK2][Mac] WebKit2 does not build on mac after merge of Qt5 refactor branch.

Added: trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.cpp (0 => 96497)


--- trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.cpp	                        (rev 0)
+++ trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.cpp	2011-10-03 14:21:17 UTC (rev 96497)
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2011 ProFUSION Embedded Systems
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "DumpHistoryItem.h"
+
+#include "DumpRenderTree.h"
+#include "DumpRenderTreeChrome.h"
+#include "WebCoreSupport/DumpRenderTreeSupportEfl.h"
+#include "ewk_private.h"
+#include <EWebKit.h>
+#include <cstdio>
+#include <wtf/HashMap.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/Vector.h>
+
+Ewk_History_Item* prevTestBFItem = 0;
+const unsigned historyItemIndent = 8;
+
+static void dumpHistoryItem(const Ewk_History_Item* item, int indent, bool current)
+{
+    ASSERT(item);
+    int start = 0;
+    if (current) {
+        printf("curr->");
+        start = 6;
+    }
+    for (int i = start; i < indent; i++)
+        putchar(' ');
+
+    // normalize file URLs.
+    const char* uri = ewk_history_item_uri_get(item);
+    if (!strncasecmp(uri, "file://", sizeof("file://") - 1)) {
+        const char* pos = strstr(uri, "/LayoutTests/");
+        if (!pos)
+            return;
+
+        printf("(file test):%s", pos + sizeof("/LayoutTests/") - 1);
+    } else
+        printf("%s", uri);
+
+    const String target = DumpRenderTreeSupportEfl::historyItemTarget(item);
+    if (!target.isEmpty())
+        printf(" (in frame \"%s\")", target.utf8().data());
+    if (DumpRenderTreeSupportEfl::isTargetItem(item))
+        printf("  **nav target**");
+    putchar('\n');
+
+    const HistoryItemChildrenMap children = DumpRenderTreeSupportEfl::childHistoryItems(item);
+    for (HistoryItemChildrenMap::const_iterator it = children.begin(); it != children.end(); ++it)
+        dumpHistoryItem((*it).second, indent + 4, false);
+}
+
+static void dumpBackForwardListForWebView(Evas_Object* view)
+{
+    printf("\n============== Back Forward List ==============\n");
+
+    const Ewk_History* history = ewk_view_history_get(view);
+
+    // Print out all items in the list after prevTestBFItem, which was from the previous test
+    // Gather items from the end of the list, the print them out from oldest to newest
+    Eina_List* itemsToPrint = 0;
+    void* historyItem;
+    Eina_List* backwardList = ewk_history_back_list_get(history);
+    EINA_LIST_FREE(backwardList, historyItem) {
+        if (historyItem == prevTestBFItem) {
+            eina_list_free(backwardList);
+            break;
+        }
+        itemsToPrint = eina_list_append(itemsToPrint, historyItem);
+    }
+
+    const Ewk_History_Item* currentItem = ewk_history_history_item_current_get(history);
+    if (currentItem)
+        itemsToPrint = eina_list_append(itemsToPrint, currentItem);
+
+    Eina_List* forwardList = ewk_history_forward_list_get(history);
+    EINA_LIST_FREE(forwardList, historyItem) {
+        ASSERT(historyItem != prevTestBFItem);
+        itemsToPrint = eina_list_append(itemsToPrint, historyItem);
+    }
+
+    EINA_LIST_FREE(itemsToPrint, historyItem) {
+        dumpHistoryItem(static_cast<Ewk_History_Item*>(historyItem), historyItemIndent, historyItem == currentItem);
+        ewk_history_item_free(static_cast<Ewk_History_Item*>(historyItem));
+    }
+
+    printf("===============================================\n");
+}
+
+void dumpBackForwardListForWebViews()
+{
+    // Dump the back forward list of the main WebView first
+    dumpBackForwardListForWebView(browser->mainView());
+
+    Vector<Evas_Object*>::const_iterator it = browser->extraViews().begin();
+    for (; it != browser->extraViews().end(); ++it)
+        dumpBackForwardListForWebView(*it);
+}

Added: trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.h (0 => 96497)


--- trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.h	                        (rev 0)
+++ trunk/Tools/DumpRenderTree/efl/DumpHistoryItem.h	2011-10-03 14:21:17 UTC (rev 96497)
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2011 ProFUSION Embedded Systems
+ * Copyright (C) 2011 Samsung Electronics
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1.  Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ * 2.  Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef DumpHistoryItem_h
+#define DumpHistoryItem_h
+
+#include <Evas.h>
+
+void dumpBackForwardListForWebViews();
+
+#endif // DumpHistoryItem_h
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to