File: DumpRenderTreeSupportGtk.h

package info (click to toggle)
qtwebkit 2.3.4.dfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 290,116 kB
  • ctags: 272,544
  • sloc: cpp: 1,417,496; python: 85,048; ansic: 39,353; perl: 38,858; ruby: 10,313; objc: 9,505; xml: 8,679; asm: 3,864; yacc: 2,458; sh: 1,237; lex: 813; makefile: 592; java: 228; php: 79
file content (143 lines) | stat: -rw-r--r-- 6,660 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 *  Copyright (C) Research In Motion Limited 2010. All rights reserved.
 *  Copyright (C) 2012 Apple Inc. All Rights Reserved.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */

#ifndef DumpRenderTreeSupportGtk_h
#define DumpRenderTreeSupportGtk_h

#include "JSStringRef.h"
#include <atk/atk.h>
#include <glib.h>
#include <webkit/webkitdefines.h>
#include <wtf/text/CString.h>

namespace WebKit {

enum {
    WebFindOptionsCaseInsensitive = 1 << 0,
    WebFindOptionsAtWordStarts = 1 << 1,
    WebFindOptionsTreatMedialCapitalAsWordStart = 1 << 2,
    WebFindOptionsBackwards = 1 << 3,
    WebFindOptionsWrapAround = 1 << 4,
    WebFindOptionsStartInSelection = 1 << 5
};

}
typedef unsigned WebKitFindOptions;

class DumpRenderTreeSupportGtk {

public:
    DumpRenderTreeSupportGtk();
    ~DumpRenderTreeSupportGtk();

    static void setDumpRenderTreeModeEnabled(bool);
    static bool dumpRenderTreeModeEnabled();

    static void setLinksIncludedInFocusChain(bool);
    static bool linksIncludedInFocusChain();
    static void setSelectTrailingWhitespaceEnabled(bool);
    static bool selectTrailingWhitespaceEnabled();

    static void clearOpener(WebKitWebFrame*);

    // FIXME: Move these to webkitwebframe.h once their API has been discussed.
    static GSList* getFrameChildren(WebKitWebFrame*);
    static WTF::CString getInnerText(WebKitWebFrame*);
    static WTF::CString dumpRenderTree(WebKitWebFrame*);
    static void addUserStyleSheet(WebKitWebFrame*, const char* sourceCode, bool allFrames);
    static guint getPendingUnloadEventCount(WebKitWebFrame*);
    static bool pauseAnimation(WebKitWebFrame*, const char* name, double time, const char* element);
    static bool pauseTransition(WebKitWebFrame*, const char* name, double time, const char* element);
    static WTF::CString markerTextForListItem(WebKitWebFrame*, JSContextRef, JSValueRef nodeObject);
    static unsigned int numberOfActiveAnimations(WebKitWebFrame*);
    static void clearMainFrameName(WebKitWebFrame*);
    static AtkObject* getFocusedAccessibleElement(WebKitWebFrame*);
    static AtkObject* getRootAccessibleElement(WebKitWebFrame*);
    static void layoutFrame(WebKitWebFrame*);
    static void setAutofilled(JSContextRef, JSValueRef, bool);
    static void setValueForUser(JSContextRef, JSValueRef, JSStringRef);
    static bool shouldClose(WebKitWebFrame*);
    static bool elementDoesAutoCompleteForElementWithId(WebKitWebFrame*, JSStringRef);
    static JSValueRef computedStyleIncludingVisitedInfo(JSContextRef, JSValueRef);

    // WebKitWebView
    static void executeCoreCommandByName(WebKitWebView*, const gchar* name, const gchar* value);
    static bool isCommandEnabled(WebKitWebView*, const gchar* name);
    static bool findString(WebKitWebView*, const gchar*, WebKitFindOptions);
    static double defaultMinimumTimerInterval(); // Not really tied to WebView
    static void setMinimumTimerInterval(WebKitWebView*, double);
    static void rectangleForSelection(WebKitWebFrame*, cairo_rectangle_int_t*);
    static void scalePageBy(WebKitWebView*, float, float, float);
    static void setDefersLoading(WebKitWebView*, bool);
    static void setSmartInsertDeleteEnabled(WebKitWebView*, bool);
    static void forceWebViewPaint(WebKitWebView*);

    // Accessibility
    static WTF::CString accessibilityHelpText(AtkObject*);

    // TextInputController
    static void setComposition(WebKitWebView*, const char*, int start, int length);
    static bool hasComposition(WebKitWebView*);
    static bool compositionRange(WebKitWebView*, int* start, int* length);
    static void confirmComposition(WebKitWebView*, const char*);
    static bool firstRectForCharacterRange(WebKitWebView*, int location, int length, cairo_rectangle_int_t*);
    static bool selectedRange(WebKitWebView*, int* start, int* length);
    static void doCommand(WebKitWebView*, const char*);
    // GC
    static void gcCollectJavascriptObjects();
    static void gcCollectJavascriptObjectsOnAlternateThread(bool waitUntilDone);
    static unsigned long gcCountJavascriptObjects();

    static void whiteListAccessFromOrigin(const gchar* sourceOrigin, const gchar* destinationProtocol, const gchar* destinationHost, bool allowDestinationSubdomains);
    static void removeWhiteListAccessFromOrigin(const char* sourceOrigin, const char* destinationProtocol, const char* destinationHost, bool allowDestinationSubdomains);
    static void resetOriginAccessWhiteLists();
    static unsigned int workerThreadCount();

    static void resetGeolocationClientMock(WebKitWebView*);
    static void setMockGeolocationPermission(WebKitWebView*, bool allowed);
    static void setMockGeolocationPosition(WebKitWebView*, double latitude, double longitude, double accuracy);
    static void setMockGeolocationPositionUnavailableError(WebKitWebView*, const gchar* errorMessage);
    static int numberOfPendingGeolocationPermissionRequests(WebKitWebView*);

    static void setPageCacheSupportsPlugins(WebKitWebView*, bool enabled);
    static void setCSSGridLayoutEnabled(WebKitWebView*, bool enabled);
    static void setCSSRegionsEnabled(WebKitWebView*, bool enabled);
    static void setCSSCustomFilterEnabled(WebKitWebView*, bool enabled);
    static void setShadowDOMEnabled(bool);
    static void setStyleScopedEnabled(bool);

    static void deliverAllMutationsIfNecessary();
    static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const char* urlScheme);
    static void setSerializeHTTPLoads(bool enabled);

    static void setTracksRepaints(WebKitWebFrame*, bool tracks);
    static bool isTrackingRepaints(WebKitWebFrame*);
    static GSList* trackedRepaintRects(WebKitWebFrame*);
    static void resetTrackedRepaints(WebKitWebFrame*);

    static void clearMemoryCache();
    static void clearApplicationCache();

private:
    static bool s_drtRun;
    static bool s_linksIncludedInTabChain;
    static bool s_selectTrailingWhitespaceEnabled;
};

#endif