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
|
/*
* Copyright (C) Research In Motion Limited 2010. 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 <webkit/webkitdomdefines.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 JSValueRef nodesFromRect(JSContextRef context, JSValueRef value, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping);
static void dumpConfigurationForViewport(WebKitWebView* webView, gint deviceDPI, gint deviceWidth, gint deviceHeight, gint availableWidth, gint availableHeight);
static void clearOpener(WebKitWebFrame*);
static WebKitDOMRange* jsValueToDOMRange(JSContextRef, JSValueRef);
// 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 WTF::CString counterValueForElementById(WebKitWebFrame*, const char* id);
static int pageNumberForElementById(WebKitWebFrame*, const char* id, float pageWidth, float pageHeight);
static int numberOfPagesForFrame(WebKitWebFrame*, float pageWidth, float pageHeight);
static WTF::CString pageProperty(WebKitWebFrame*, const char* propertyName, int pageNumber);
static bool isPageBoxVisible(WebKitWebFrame*, int pageNumber);
static WTF::CString pageSizeAndMarginsInPixels(WebKitWebFrame*, int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft);
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 suspendAnimations(WebKitWebFrame*);
static void resumeAnimations(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);
// 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 setSmartInsertDeleteEnabled(WebKitWebView*, bool);
// Accessibility
static void incrementAccessibilityValue(AtkObject*);
static void decrementAccessibilityValue(AtkObject*);
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 resetOriginAccessWhiteLists();
static unsigned int workerThreadCount();
static bool webkitWebFrameSelectionHasSpellingMarker(WebKitWebFrame*, gint from, gint length);
static void resetGeolocationClientMock(WebKitWebView*);
static void setMockGeolocationPermission(WebKitWebView*, bool allowed);
static void setMockGeolocationPosition(WebKitWebView*, double latitude, double longitude, double accuracy);
static void setMockGeolocationError(WebKitWebView*, int errorCode, const gchar* errorMessage);
static int numberOfPendingGeolocationPermissionRequests(WebKitWebView*);
static void setHixie76WebSocketProtocolEnabled(WebKitWebView*, bool enabled);
private:
static bool s_drtRun;
static bool s_linksIncludedInTabChain;
static bool s_selectTrailingWhitespaceEnabled;
};
#endif
|