0458d966ac57b1d17d76e2bb2c2668579993b826
[WebKit-https.git] / Source / WebKit / WebProcess / InjectedBundle / API / c / WKBundlePagePrivate.h
1 /*
2  * Copyright (C) 2010, 2011, 2013 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef WKBundlePagePrivate_h
27 #define WKBundlePagePrivate_h
28
29 #include <WebKit/WKBase.h>
30 #include <WebKit/WKEvent.h>
31 #include <WebKit/WKGeometry.h>
32 #include <WebKit/WKUserContentInjectedFrames.h>
33 #include <WebKit/WKUserScriptInjectionTime.h>
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 WK_EXPORT void WKBundlePageStopLoading(WKBundlePageRef page);
40 WK_EXPORT void WKBundlePageSetDefersLoading(WKBundlePageRef page, bool defersLoading);
41 WK_EXPORT bool WKBundlePageIsEditingCommandEnabled(WKBundlePageRef page, WKStringRef commandName);
42 WK_EXPORT void WKBundlePageClearMainFrameName(WKBundlePageRef page);
43 WK_EXPORT void WKBundlePageClose(WKBundlePageRef page);
44 WK_EXPORT WKStringRef WKBundlePageCopyRenderTreeExternalRepresentation(WKBundlePageRef page);
45 WK_EXPORT WKStringRef WKBundlePageCopyRenderTreeExternalRepresentationForPrinting(WKBundlePageRef page);
46 WK_EXPORT void WKBundlePageExecuteEditingCommand(WKBundlePageRef page, WKStringRef commandName, WKStringRef argument);
47
48 WK_EXPORT double WKBundlePageGetTextZoomFactor(WKBundlePageRef page);
49 WK_EXPORT void WKBundlePageSetTextZoomFactor(WKBundlePageRef page, double zoomFactor);
50 WK_EXPORT double WKBundlePageGetPageZoomFactor(WKBundlePageRef page);
51 WK_EXPORT void WKBundlePageSetPageZoomFactor(WKBundlePageRef page, double zoomFactor);
52
53 WK_EXPORT void WKBundlePageSetScaleAtOrigin(WKBundlePageRef page, double scale, WKPoint origin);
54
55 WK_EXPORT void WKBundlePageForceRepaint(WKBundlePageRef page);
56
57 WK_EXPORT void WKBundlePageSimulateMouseDown(WKBundlePageRef page, int button, WKPoint position, int clickCount, WKEventModifiers modifiers, double time);
58 WK_EXPORT void WKBundlePageSimulateMouseUp(WKBundlePageRef page, int button, WKPoint position, int clickCount, WKEventModifiers modifiers, double time);
59 WK_EXPORT void WKBundlePageSimulateMouseMotion(WKBundlePageRef page, WKPoint position, double time);
60
61 WK_EXPORT uint64_t WKBundlePageGetRenderTreeSize(WKBundlePageRef page);
62
63 WK_EXPORT WKRenderObjectRef WKBundlePageCopyRenderTree(WKBundlePageRef page);
64 WK_EXPORT WKRenderLayerRef WKBundlePageCopyRenderLayerTree(WKBundlePageRef page);
65
66 // FIXME: This function is only still here to keep open source Mac builds building. It doesn't do anything anymore!
67 // We should remove it as soon as we can.
68 WK_EXPORT void WKBundlePageSetPaintedObjectsCounterThreshold(WKBundlePageRef page, uint64_t threshold);
69
70 WK_EXPORT void WKBundlePageSetTracksRepaints(WKBundlePageRef page, bool trackRepaints);
71 WK_EXPORT bool WKBundlePageIsTrackingRepaints(WKBundlePageRef page);
72 WK_EXPORT void WKBundlePageResetTrackedRepaints(WKBundlePageRef page);
73 WK_EXPORT WKArrayRef WKBundlePageCopyTrackedRepaintRects(WKBundlePageRef page);
74
75 WK_EXPORT void WKBundlePageSetComposition(WKBundlePageRef page, WKStringRef text, int from, int length);
76 WK_EXPORT bool WKBundlePageHasComposition(WKBundlePageRef page);
77 WK_EXPORT void WKBundlePageConfirmComposition(WKBundlePageRef page);
78 WK_EXPORT void WKBundlePageConfirmCompositionWithText(WKBundlePageRef page, WKStringRef text);
79
80 WK_EXPORT bool WKBundlePageCanShowMIMEType(WKBundlePageRef, WKStringRef mimeType);
81
82 WK_EXPORT void* WKAccessibilityRootObject(WKBundlePageRef);
83 WK_EXPORT void* WKAccessibilityFocusedObject(WKBundlePageRef);
84
85 WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool);
86 WK_EXPORT bool WKAccessibilityEnhancedAccessibilityEnabled();
87
88 WK_EXPORT void WKBundlePageClickMenuItem(WKBundlePageRef, WKContextMenuItemRef);
89 WK_EXPORT WKArrayRef WKBundlePageCopyContextMenuItems(WKBundlePageRef);
90 WK_EXPORT WKArrayRef WKBundlePageCopyContextMenuAtPointInWindow(WKBundlePageRef, WKPoint);
91
92 WK_EXPORT void WKBundlePageInsertNewlineInQuotedContent(WKBundlePageRef page);
93
94 // This only works if the SuppressesIncrementalRendering preference is set as well.
95 typedef unsigned WKRenderingSuppressionToken;
96 WK_EXPORT WKRenderingSuppressionToken WKBundlePageExtendIncrementalRenderingSuppression(WKBundlePageRef);
97 WK_EXPORT void WKBundlePageStopExtendingIncrementalRenderingSuppression(WKBundlePageRef, WKRenderingSuppressionToken);
98
99 // UserContent API (compatible with Modern API, for WKTR)
100 WK_EXPORT void WKBundlePageAddUserScript(WKBundlePageRef page, WKStringRef source, _WKUserScriptInjectionTime injectionTime, WKUserContentInjectedFrames injectedFrames);
101 WK_EXPORT void WKBundlePageAddUserStyleSheet(WKBundlePageRef page, WKStringRef source, WKUserContentInjectedFrames injectedFrames);
102 WK_EXPORT void WKBundlePageRemoveAllUserContent(WKBundlePageRef page);
103
104 // Application Cache API, for WKTR.
105 WK_EXPORT void WKBundlePageClearApplicationCache(WKBundlePageRef page);
106 WK_EXPORT void WKBundlePageClearApplicationCacheForOrigin(WKBundlePageRef page, WKStringRef origin);
107 WK_EXPORT void WKBundlePageSetAppCacheMaximumSize(WKBundlePageRef page, uint64_t size);
108 WK_EXPORT uint64_t WKBundlePageGetAppCacheUsageForOrigin(WKBundlePageRef page, WKStringRef origin);
109 WK_EXPORT void WKBundlePageSetApplicationCacheOriginQuota(WKBundlePageRef page, WKStringRef origin, uint64_t bytes);
110 WK_EXPORT void WKBundlePageResetApplicationCacheOriginQuota(WKBundlePageRef page, WKStringRef origin);
111 WK_EXPORT WKArrayRef WKBundlePageCopyOriginsWithApplicationCache(WKBundlePageRef page);
112
113 enum {
114     kWKEventThrottlingBehaviorResponsive = 0,
115     kWKEventThrottlingBehaviorUnresponsive
116 };
117
118 typedef uint32_t WKEventThrottlingBehavior;
119
120 // Passing null in the second parameter clears the override.
121 WK_EXPORT void WKBundlePageSetEventThrottlingBehaviorOverride(WKBundlePageRef, WKEventThrottlingBehavior*);
122
123 #if TARGET_OS_IPHONE
124 WK_EXPORT void WKBundlePageSetUseTestingViewportConfiguration(WKBundlePageRef, bool);
125 #endif
126
127 #ifdef __cplusplus
128 }
129 #endif
130
131 #endif /* WKBundlePagePrivate_h */