WebKitTestRunner needs layoutTestController.elementDoesAutoCompleteForElementWithId
[WebKit-https.git] / Source / WebKit / gtk / WebCoreSupport / DumpRenderTreeSupportGtk.h
1 /*
2  *  Copyright (C) Research In Motion Limited 2010. All rights reserved.
3  *  Copyright (C) 2012 Apple Inc. All Rights Reserved.
4  *
5  *  This library is free software; you can redistribute it and/or
6  *  modify it under the terms of the GNU Lesser General Public
7  *  License as published by the Free Software Foundation; either
8  *  version 2 of the License, or (at your option) any later version.
9  *
10  *  This library is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  *  Lesser General Public License for more details.
14  *
15  *  You should have received a copy of the GNU Lesser General Public
16  *  License along with this library; if not, write to the Free Software
17  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18  */
19
20 #ifndef DumpRenderTreeSupportGtk_h
21 #define DumpRenderTreeSupportGtk_h
22
23 #include "JSStringRef.h"
24 #include <atk/atk.h>
25 #include <glib.h>
26 #include <webkit/webkitdefines.h>
27 #include <wtf/text/CString.h>
28
29 namespace WebKit {
30
31 enum {
32     WebFindOptionsCaseInsensitive = 1 << 0,
33     WebFindOptionsAtWordStarts = 1 << 1,
34     WebFindOptionsTreatMedialCapitalAsWordStart = 1 << 2,
35     WebFindOptionsBackwards = 1 << 3,
36     WebFindOptionsWrapAround = 1 << 4,
37     WebFindOptionsStartInSelection = 1 << 5
38 };
39
40 }
41 typedef unsigned WebKitFindOptions;
42
43 class DumpRenderTreeSupportGtk {
44
45 public:
46     DumpRenderTreeSupportGtk();
47     ~DumpRenderTreeSupportGtk();
48
49     static void setDumpRenderTreeModeEnabled(bool);
50     static bool dumpRenderTreeModeEnabled();
51
52     static void setLinksIncludedInFocusChain(bool);
53     static bool linksIncludedInFocusChain();
54     static void setSelectTrailingWhitespaceEnabled(bool);
55     static bool selectTrailingWhitespaceEnabled();
56
57     static void clearOpener(WebKitWebFrame*);
58
59     // FIXME: Move these to webkitwebframe.h once their API has been discussed.
60     static GSList* getFrameChildren(WebKitWebFrame*);
61     static WTF::CString getInnerText(WebKitWebFrame*);
62     static WTF::CString dumpRenderTree(WebKitWebFrame*);
63     static void addUserScript(WebKitWebFrame*, const char*, bool, bool);
64     static void addUserStyleSheet(WebKitWebFrame*, const char* sourceCode, bool allFrames);
65     static guint getPendingUnloadEventCount(WebKitWebFrame*);
66     static void clearMainFrameName(WebKitWebFrame*);
67     static AtkObject* getFocusedAccessibleElement(WebKitWebFrame*);
68     static AtkObject* getRootAccessibleElement(WebKitWebFrame*);
69     static void layoutFrame(WebKitWebFrame*);
70     static void setValueForUser(JSContextRef, JSValueRef, JSStringRef);
71     static bool shouldClose(WebKitWebFrame*);
72
73     // WebKitWebView
74     static void executeCoreCommandByName(WebKitWebView*, const gchar* name, const gchar* value);
75     static bool isCommandEnabled(WebKitWebView*, const gchar* name);
76     static bool findString(WebKitWebView*, const gchar*, WebKitFindOptions);
77     static void rectangleForSelection(WebKitWebFrame*, cairo_rectangle_int_t*);
78     static void scalePageBy(WebKitWebView*, float, float, float);
79     static void setDefersLoading(WebKitWebView*, bool);
80     static void setSmartInsertDeleteEnabled(WebKitWebView*, bool);
81     static void forceWebViewPaint(WebKitWebView*);
82
83     // Accessibility
84     static WTF::CString accessibilityHelpText(AtkObject*);
85
86     // TextInputController
87     static void setComposition(WebKitWebView*, const char*, int start, int length);
88     static bool hasComposition(WebKitWebView*);
89     static bool compositionRange(WebKitWebView*, int* start, int* length);
90     static void confirmComposition(WebKitWebView*, const char*);
91     static bool firstRectForCharacterRange(WebKitWebView*, int location, int length, cairo_rectangle_int_t*);
92     static bool selectedRange(WebKitWebView*, int* start, int* length);
93     static void doCommand(WebKitWebView*, const char*);
94     // GC
95     static void gcCollectJavascriptObjects();
96     static void gcCollectJavascriptObjectsOnAlternateThread(bool waitUntilDone);
97     static unsigned long gcCountJavascriptObjects();
98
99     static void whiteListAccessFromOrigin(const gchar* sourceOrigin, const gchar* destinationProtocol, const gchar* destinationHost, bool allowDestinationSubdomains);
100     static void removeWhiteListAccessFromOrigin(const char* sourceOrigin, const char* destinationProtocol, const char* destinationHost, bool allowDestinationSubdomains);
101     static void resetOriginAccessWhiteLists();
102
103     static void resetGeolocationClientMock(WebKitWebView*);
104     static void setMockGeolocationPermission(WebKitWebView*, bool allowed);
105     static void setMockGeolocationPosition(WebKitWebView*, double latitude, double longitude, double accuracy);
106     static void setMockGeolocationPositionUnavailableError(WebKitWebView*, const gchar* errorMessage);
107     static int numberOfPendingGeolocationPermissionRequests(WebKitWebView*);
108
109     static void setPageCacheSupportsPlugins(WebKitWebView*, bool enabled);
110     static void setCSSGridLayoutEnabled(WebKitWebView*, bool enabled);
111     static void setCSSRegionsEnabled(WebKitWebView*, bool enabled);
112     static void setCSSCustomFilterEnabled(WebKitWebView*, bool enabled);
113     static void setExperimentalContentSecurityPolicyFeaturesEnabled(bool);
114     static void setSeamlessIFramesEnabled(bool);
115     static void setShadowDOMEnabled(bool);
116     static void setStyleScopedEnabled(bool);
117
118     static void deliverAllMutationsIfNecessary();
119     static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const char* urlScheme);
120     static void setSerializeHTTPLoads(bool enabled);
121
122     static void setTracksRepaints(WebKitWebFrame*, bool tracks);
123     static bool isTrackingRepaints(WebKitWebFrame*);
124     static GSList* trackedRepaintRects(WebKitWebFrame*);
125     static void resetTrackedRepaints(WebKitWebFrame*);
126
127     static void clearMemoryCache();
128     static void clearApplicationCache();
129
130     enum FrameLoadEvent {
131         WillPerformClientRedirectToURL,
132         DidCancelClientRedirect,
133         DidReceiveServerRedirectForProvisionalLoad,
134         DidDisplayInsecureContent,
135         DidDetectXSS,
136     };
137     typedef void (*FrameLoadEventCallback)(WebKitWebFrame*, FrameLoadEvent, const char* url);
138     static void setFrameLoadEventCallback(FrameLoadEventCallback);
139     static FrameLoadEventCallback s_frameLoadEventCallback;
140
141     typedef bool (*AuthenticationCallback) (CString& username, CString& password);
142     static void setAuthenticationCallback(AuthenticationCallback);
143     static AuthenticationCallback s_authenticationCallback;
144
145 private:
146     static bool s_drtRun;
147     static bool s_linksIncludedInTabChain;
148     static bool s_selectTrailingWhitespaceEnabled;
149 };
150
151 #endif