3fcfe4922d60f1f1b17ecc6c883e33ba1ce71930
[WebKit-https.git] / Tools / DumpRenderTree / ios / UIScriptControllerIOS.mm
1 /*
2  * Copyright (C) 2015 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 #import "config.h"
27 #import "UIScriptController.h"
28
29 #if PLATFORM(IOS)
30
31 #import "DumpRenderTreeBrowserView.h"
32 #import "UIScriptContext.h"
33 #import <WebCore/FloatRect.h>
34 #import <wtf/MainThread.h>
35
36 extern DumpRenderTreeBrowserView *gWebBrowserView;
37 extern DumpRenderTreeWebScrollView *gWebScrollView;
38
39 namespace WTR {
40
41 void UIScriptController::doAsyncTask(JSValueRef callback)
42 {
43     unsigned callbackID = m_context->prepareForAsyncTask(callback, CallbackTypeNonPersistent);
44
45     dispatch_async(dispatch_get_main_queue(), ^{
46         if (!m_context)
47             return;
48         m_context->asyncTaskComplete(callbackID);
49     });
50 }
51
52 void UIScriptController::zoomToScale(double scale, JSValueRef callback)
53 {
54     RefPtr<UIScriptController> protectedThis(this);
55     unsigned callbackID = protectedThis->context()->prepareForAsyncTask(callback, CallbackTypeNonPersistent);
56
57     dispatch_async(dispatch_get_main_queue(), ^{
58         [gWebScrollView zoomToScale:scale animated:YES completionHandler:^{
59             if (!protectedThis->context())
60                 return;
61             protectedThis->context()->asyncTaskComplete(callbackID);
62         }];
63     });
64 }
65
66 void UIScriptController::simulateAccessibilitySettingsChangeNotification(JSValueRef)
67 {
68 }
69
70 double UIScriptController::zoomScale() const
71 {
72     return gWebScrollView.zoomScale;
73 }
74
75 void UIScriptController::touchDownAtPoint(long x, long y, long touchCount, JSValueRef callback)
76 {
77 }
78
79 void UIScriptController::liftUpAtPoint(long x, long y, long touchCount, JSValueRef callback)
80 {
81 }
82
83 void UIScriptController::singleTapAtPoint(long x, long y, JSValueRef callback)
84 {
85 }
86
87 void UIScriptController::doubleTapAtPoint(long x, long y, JSValueRef callback)
88 {
89 }
90
91 void UIScriptController::dragFromPointToPoint(long startX, long startY, long endX, long endY, double durationSeconds, JSValueRef callback)
92 {
93 }
94     
95 void UIScriptController::longPressAtPoint(long x, long y, JSValueRef)
96 {
97 }
98
99 void UIScriptController::stylusDownAtPoint(long x, long y, float azimuthAngle, float altitudeAngle, float pressure, JSValueRef callback)
100 {
101 }
102
103 void UIScriptController::stylusMoveToPoint(long x, long y, float azimuthAngle, float altitudeAngle, float pressure, JSValueRef callback)
104 {
105 }
106
107 void UIScriptController::stylusUpAtPoint(long x, long y, JSValueRef callback)
108 {
109 }
110
111 void UIScriptController::stylusTapAtPoint(long x, long y, float azimuthAngle, float altitudeAngle, float pressure, JSValueRef callback)
112 {
113 }
114
115 void UIScriptController::sendEventStream(JSStringRef eventsJSON, JSValueRef callback)
116 {
117 }
118
119 void UIScriptController::typeCharacterUsingHardwareKeyboard(JSStringRef character, JSValueRef callback)
120 {
121 }
122
123 void UIScriptController::selectTextCandidateAtIndex(long, JSValueRef)
124 {
125 }
126
127 void UIScriptController::keyDownUsingHardwareKeyboard(JSStringRef character, JSValueRef callback)
128 {
129 }
130
131 void UIScriptController::keyUpUsingHardwareKeyboard(JSStringRef character, JSValueRef callback)
132 {
133 }
134
135 void UIScriptController::dismissFormAccessoryView()
136 {
137 }
138
139 void UIScriptController::selectFormAccessoryPickerRow(long rowIndex)
140 {
141 }
142     
143 JSObjectRef UIScriptController::contentsOfUserInterfaceItem(JSStringRef interfaceItem) const
144 {
145     return nullptr;
146 }
147
148 void UIScriptController::scrollToOffset(long, long)
149 {
150 }
151
152 void UIScriptController::keyboardAccessoryBarNext()
153 {
154 }
155
156 void UIScriptController::keyboardAccessoryBarPrevious()
157 {
158 }
159
160 double UIScriptController::minimumZoomScale() const
161 {
162     return gWebScrollView.minimumZoomScale;
163 }
164
165 double UIScriptController::maximumZoomScale() const
166 {
167     return gWebScrollView.maximumZoomScale;
168 }
169
170 JSObjectRef UIScriptController::contentVisibleRect() const
171 {
172     CGRect contentVisibleRect = [gWebBrowserView documentVisibleRect];
173     WebCore::FloatRect rect(contentVisibleRect.origin.x, contentVisibleRect.origin.y, contentVisibleRect.size.width, contentVisibleRect.size.height);
174     return m_context->objectFromRect(rect);
175 }
176
177 void UIScriptController::platformSetDidStartFormControlInteractionCallback()
178 {
179 }
180
181 void UIScriptController::platformSetDidEndFormControlInteractionCallback()
182 {
183 }
184     
185 void UIScriptController::platformSetDidShowForcePressPreviewCallback()
186 {
187 }
188
189 void UIScriptController::platformSetDidDismissForcePressPreviewCallback()
190 {
191 }
192
193 void UIScriptController::platformSetWillBeginZoomingCallback()
194 {
195 }
196
197 void UIScriptController::platformSetDidEndZoomingCallback()
198 {
199 }
200
201 void UIScriptController::platformSetDidShowKeyboardCallback()
202 {
203 }
204
205 void UIScriptController::platformSetDidHideKeyboardCallback()
206 {
207 }
208
209 void UIScriptController::platformSetDidEndScrollingCallback()
210 {
211 }
212
213 void UIScriptController::platformClearAllCallbacks()
214 {
215 }
216
217 JSObjectRef UIScriptController::selectionRangeViewRects() const
218 {
219     return nullptr;
220 }
221
222 void UIScriptController::removeAllDynamicDictionaries()
223 {
224 }
225
226 JSRetainPtr<JSStringRef> UIScriptController::scrollingTreeAsText() const
227 {
228     return nullptr;
229 }
230
231 }
232
233 #endif // PLATFORM(IOS)