2010-12-10 Joone Hur <joone@kldp.org>
[WebKit-https.git] / WebKit / gtk / WebCoreSupport / DumpRenderTreeSupportGtk.h
1 /*
2  *  Copyright (C) Research In Motion Limited 2010. All rights reserved.
3  *
4  *  This library is free software; you can redistribute it and/or
5  *  modify it under the terms of the GNU Lesser General Public
6  *  License as published by the Free Software Foundation; either
7  *  version 2 of the License, or (at your option) any later version.
8  *
9  *  This library is distributed in the hope that it will be useful,
10  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  *  Lesser General Public License for more details.
13  *
14  *  You should have received a copy of the GNU Lesser General Public
15  *  License along with this library; if not, write to the Free Software
16  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18
19 #ifndef DumpRenderTreeSupportGtk_h
20 #define DumpRenderTreeSupportGtk_h
21
22
23 #include "JSStringRef.h"
24 #include <webkit/webkitdefines.h>
25
26 #include <atk/atk.h>
27 #include <glib.h>
28 #include <webkit/webkitdefines.h>
29 #include <webkit/webkitwebframe.h>
30 #include <wtf/text/CString.h>
31
32 class DumpRenderTreeSupportGtk {
33
34 public:
35     DumpRenderTreeSupportGtk();
36     ~DumpRenderTreeSupportGtk();
37
38     static void setDumpRenderTreeModeEnabled(bool);
39     static bool dumpRenderTreeModeEnabled();
40
41     static void setLinksIncludedInFocusChain(bool);
42     static bool linksIncludedInFocusChain();
43     static JSValueRef nodesFromRect(JSContextRef context, JSValueRef value, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping);
44     static void dumpConfigurationForViewport(WebKitWebView* webView, gint availableWidth, gint availableHeight);
45
46     // FIXME: Move these to webkitwebframe.h once their API has been discussed.
47     static GSList* getFrameChildren(WebKitWebFrame* frame);
48     static WTF::CString getInnerText(WebKitWebFrame* frame);
49     static WTF::CString dumpRenderTree(WebKitWebFrame* frame);
50     static WTF::CString counterValueForElementById(WebKitWebFrame* frame, const char* id);
51     static int pageNumberForElementById(WebKitWebFrame* frame, const char* id, float pageWidth, float pageHeight);
52     static int numberOfPagesForFrame(WebKitWebFrame* frame, float pageWidth, float pageHeight);
53     static WTF::CString pageProperty(WebKitWebFrame* frame, const char* propertyName, int pageNumber);
54     static bool isPageBoxVisible(WebKitWebFrame* frame, int pageNumber);
55     static WTF::CString pageSizeAndMarginsInPixels(WebKitWebFrame* mainFrame, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft);
56     static void addUserStyleSheet(WebKitWebFrame* mainFrame, const char* sourceCode);
57     static guint getPendingUnloadEventCount(WebKitWebFrame* frame);
58     static bool pauseAnimation(WebKitWebFrame* frame, const char* name, double time, const char* element);
59     static bool pauseTransition(WebKitWebFrame* frame, const char* name, double time, const char* element);
60     static bool pauseSVGAnimation(WebKitWebFrame* frame, const char* animationId, double time, const char* elementId);
61     static WTF::CString markerTextForListItem(WebKitWebFrame* frame, JSContextRef context, JSValueRef nodeObject);
62     static unsigned int numberOfActiveAnimations(WebKitWebFrame* frame);
63     static void suspendAnimations(WebKitWebFrame* frame);
64     static void resumeAnimations(WebKitWebFrame* frame);
65     static void clearMainFrameName(WebKitWebFrame* frame);
66     static AtkObject* getFocusedAccessibleElement(WebKitWebFrame* frame);
67     static void layoutFrame(WebKitWebFrame*);
68
69     // WebKitWebView
70     static void executeCoreCommandByName(WebKitWebView* webView, const gchar* name, const gchar* value);
71     static bool isCommandEnabled(WebKitWebView* webView, const gchar* name);
72
73     // GC
74     static void gcCollectJavascriptObjects();
75     static void gcCollectJavascriptObjectsOnAlternateThread(bool waitUntilDone);
76     static unsigned long gcCountJavascriptObjects();
77
78     static void whiteListAccessFromOrigin(const gchar* sourceOrigin, const gchar* destinationProtocol, const gchar* destinationHost, bool allowDestinationSubdomains);
79     static void resetOriginAccessWhiteLists();
80     static unsigned int workerThreadCount();
81
82 private:
83     static bool s_drtRun;
84     static bool s_linksIncludedInTabChain;
85 };
86
87 #endif