| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ | 5 #ifndef ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |
| 6 #define ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ | 6 #define ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |
| 7 | 7 |
| 8 #include <jni.h> | 8 #include <jni.h> |
| 9 #include <list> | 9 #include <list> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 79 |
| 80 // |handler| is an instance of | 80 // |handler| is an instance of |
| 81 // org.chromium.android_webview.AwHttpAuthHandler. | 81 // org.chromium.android_webview.AwHttpAuthHandler. |
| 82 bool OnReceivedHttpAuthRequest(const base::android::JavaRef<jobject>& handler, | 82 bool OnReceivedHttpAuthRequest(const base::android::JavaRef<jobject>& handler, |
| 83 const std::string& host, | 83 const std::string& host, |
| 84 const std::string& realm); | 84 const std::string& realm); |
| 85 | 85 |
| 86 void SetOffscreenPreRaster(bool enabled); | 86 void SetOffscreenPreRaster(bool enabled); |
| 87 | 87 |
| 88 // Methods called from Java. | 88 // Methods called from Java. |
| 89 void SetJavaPeers(JNIEnv* env, | 89 void SetJavaPeers( |
| 90 jobject obj, | 90 JNIEnv* env, |
| 91 jobject aw_contents, | 91 const base::android::JavaParamRef<jobject>& obj, |
| 92 jobject web_contents_delegate, | 92 const base::android::JavaParamRef<jobject>& aw_contents, |
| 93 jobject contents_client_bridge, | 93 const base::android::JavaParamRef<jobject>& web_contents_delegate, |
| 94 jobject io_thread_client, | 94 const base::android::JavaParamRef<jobject>& contents_client_bridge, |
| 95 jobject intercept_navigation_delegate); | 95 const base::android::JavaParamRef<jobject>& io_thread_client, |
| 96 base::android::ScopedJavaLocalRef<jobject> GetWebContents(JNIEnv* env, | 96 const base::android::JavaParamRef<jobject>& |
| 97 jobject obj); | 97 intercept_navigation_delegate); |
| 98 base::android::ScopedJavaLocalRef<jobject> GetWebContents( |
| 99 JNIEnv* env, |
| 100 const base::android::JavaParamRef<jobject>& obj); |
| 98 | 101 |
| 99 void Destroy(JNIEnv* env, jobject obj); | 102 void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| 100 void DocumentHasImages(JNIEnv* env, jobject obj, jobject message); | 103 void DocumentHasImages(JNIEnv* env, |
| 101 void GenerateMHTML(JNIEnv* env, jobject obj, jstring jpath, jobject callback); | 104 const base::android::JavaParamRef<jobject>& obj, |
| 102 void CreatePdfExporter(JNIEnv* env, jobject obj, jobject pdfExporter); | 105 const base::android::JavaParamRef<jobject>& message); |
| 103 void AddVisitedLinks(JNIEnv* env, jobject obj, jobjectArray jvisited_links); | 106 void GenerateMHTML(JNIEnv* env, |
| 107 const base::android::JavaParamRef<jobject>& obj, |
| 108 const base::android::JavaParamRef<jstring>& jpath, |
| 109 const base::android::JavaParamRef<jobject>& callback); |
| 110 void CreatePdfExporter( |
| 111 JNIEnv* env, |
| 112 const base::android::JavaParamRef<jobject>& obj, |
| 113 const base::android::JavaParamRef<jobject>& pdfExporter); |
| 114 void AddVisitedLinks( |
| 115 JNIEnv* env, |
| 116 const base::android::JavaParamRef<jobject>& obj, |
| 117 const base::android::JavaParamRef<jobjectArray>& jvisited_links); |
| 104 base::android::ScopedJavaLocalRef<jbyteArray> GetCertificate( | 118 base::android::ScopedJavaLocalRef<jbyteArray> GetCertificate( |
| 105 JNIEnv* env, jobject obj); | 119 JNIEnv* env, |
| 120 const base::android::JavaParamRef<jobject>& obj); |
| 106 void RequestNewHitTestDataAt(JNIEnv* env, | 121 void RequestNewHitTestDataAt(JNIEnv* env, |
| 107 jobject obj, | 122 const base::android::JavaParamRef<jobject>& obj, |
| 108 jfloat x, | 123 jfloat x, |
| 109 jfloat y, | 124 jfloat y, |
| 110 jfloat touch_major); | 125 jfloat touch_major); |
| 111 void UpdateLastHitTestData(JNIEnv* env, jobject obj); | 126 void UpdateLastHitTestData(JNIEnv* env, |
| 112 void OnSizeChanged(JNIEnv* env, jobject obj, int w, int h, int ow, int oh); | 127 const base::android::JavaParamRef<jobject>& obj); |
| 113 void SetViewVisibility(JNIEnv* env, jobject obj, bool visible); | 128 void OnSizeChanged(JNIEnv* env, |
| 114 void SetWindowVisibility(JNIEnv* env, jobject obj, bool visible); | 129 const base::android::JavaParamRef<jobject>& obj, |
| 115 void SetIsPaused(JNIEnv* env, jobject obj, bool paused); | 130 int w, |
| 116 void OnAttachedToWindow(JNIEnv* env, jobject obj, int w, int h); | 131 int h, |
| 117 void OnDetachedFromWindow(JNIEnv* env, jobject obj); | 132 int ow, |
| 118 bool IsVisible(JNIEnv* env, jobject obj); | 133 int oh); |
| 134 void SetViewVisibility(JNIEnv* env, |
| 135 const base::android::JavaParamRef<jobject>& obj, |
| 136 bool visible); |
| 137 void SetWindowVisibility(JNIEnv* env, |
| 138 const base::android::JavaParamRef<jobject>& obj, |
| 139 bool visible); |
| 140 void SetIsPaused(JNIEnv* env, |
| 141 const base::android::JavaParamRef<jobject>& obj, |
| 142 bool paused); |
| 143 void OnAttachedToWindow(JNIEnv* env, |
| 144 const base::android::JavaParamRef<jobject>& obj, |
| 145 int w, |
| 146 int h); |
| 147 void OnDetachedFromWindow(JNIEnv* env, |
| 148 const base::android::JavaParamRef<jobject>& obj); |
| 149 bool IsVisible(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| 119 base::android::ScopedJavaLocalRef<jbyteArray> GetOpaqueState( | 150 base::android::ScopedJavaLocalRef<jbyteArray> GetOpaqueState( |
| 120 JNIEnv* env, jobject obj); | 151 JNIEnv* env, |
| 121 jboolean RestoreFromOpaqueState(JNIEnv* env, jobject obj, jbyteArray state); | 152 const base::android::JavaParamRef<jobject>& obj); |
| 122 void FocusFirstNode(JNIEnv* env, jobject obj); | 153 jboolean RestoreFromOpaqueState( |
| 123 void SetBackgroundColor(JNIEnv* env, jobject obj, jint color); | 154 JNIEnv* env, |
| 124 void OnComputeScroll(JNIEnv* env, jobject obj, jlong animation_time_millis); | 155 const base::android::JavaParamRef<jobject>& obj, |
| 156 const base::android::JavaParamRef<jbyteArray>& state); |
| 157 void FocusFirstNode(JNIEnv* env, |
| 158 const base::android::JavaParamRef<jobject>& obj); |
| 159 void SetBackgroundColor(JNIEnv* env, |
| 160 const base::android::JavaParamRef<jobject>& obj, |
| 161 jint color); |
| 162 void OnComputeScroll(JNIEnv* env, |
| 163 const base::android::JavaParamRef<jobject>& obj, |
| 164 jlong animation_time_millis); |
| 125 bool OnDraw(JNIEnv* env, | 165 bool OnDraw(JNIEnv* env, |
| 126 jobject obj, | 166 const base::android::JavaParamRef<jobject>& obj, |
| 127 jobject canvas, | 167 const base::android::JavaParamRef<jobject>& canvas, |
| 128 jboolean is_hardware_accelerated, | 168 jboolean is_hardware_accelerated, |
| 129 jint scroll_x, | 169 jint scroll_x, |
| 130 jint scroll_y, | 170 jint scroll_y, |
| 131 jint visible_left, | 171 jint visible_left, |
| 132 jint visible_top, | 172 jint visible_top, |
| 133 jint visible_right, | 173 jint visible_right, |
| 134 jint visible_bottom); | 174 jint visible_bottom); |
| 135 jlong GetAwDrawGLViewContext(JNIEnv* env, jobject obj); | 175 jlong GetAwDrawGLViewContext(JNIEnv* env, |
| 136 jlong CapturePicture(JNIEnv* env, jobject obj, int width, int height); | 176 const base::android::JavaParamRef<jobject>& obj); |
| 137 void EnableOnNewPicture(JNIEnv* env, jobject obj, jboolean enabled); | 177 jlong CapturePicture(JNIEnv* env, |
| 138 void InsertVisualStateCallback(JNIEnv* env, | 178 const base::android::JavaParamRef<jobject>& obj, |
| 139 jobject obj, | 179 int width, |
| 140 jlong request_id, | 180 int height); |
| 141 jobject callback); | 181 void EnableOnNewPicture(JNIEnv* env, |
| 142 void ClearView(JNIEnv* env, jobject obj); | 182 const base::android::JavaParamRef<jobject>& obj, |
| 143 void SetExtraHeadersForUrl(JNIEnv* env, jobject obj, | 183 jboolean enabled); |
| 144 jstring url, jstring extra_headers); | 184 void InsertVisualStateCallback( |
| 185 JNIEnv* env, |
| 186 const base::android::JavaParamRef<jobject>& obj, |
| 187 jlong request_id, |
| 188 const base::android::JavaParamRef<jobject>& callback); |
| 189 void ClearView(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| 190 void SetExtraHeadersForUrl( |
| 191 JNIEnv* env, |
| 192 const base::android::JavaParamRef<jobject>& obj, |
| 193 const base::android::JavaParamRef<jstring>& url, |
| 194 const base::android::JavaParamRef<jstring>& extra_headers); |
| 145 | 195 |
| 146 void InvokeGeolocationCallback(JNIEnv* env, | 196 void InvokeGeolocationCallback( |
| 147 jobject obj, | 197 JNIEnv* env, |
| 148 jboolean value, | 198 const base::android::JavaParamRef<jobject>& obj, |
| 149 jstring origin); | 199 jboolean value, |
| 200 const base::android::JavaParamRef<jstring>& origin); |
| 150 | 201 |
| 151 // PermissionRequestHandlerClient implementation. | 202 // PermissionRequestHandlerClient implementation. |
| 152 void OnPermissionRequest(base::android::ScopedJavaLocalRef<jobject> j_request, | 203 void OnPermissionRequest(base::android::ScopedJavaLocalRef<jobject> j_request, |
| 153 AwPermissionRequest* request) override; | 204 AwPermissionRequest* request) override; |
| 154 void OnPermissionRequestCanceled(AwPermissionRequest* request) override; | 205 void OnPermissionRequestCanceled(AwPermissionRequest* request) override; |
| 155 | 206 |
| 156 PermissionRequestHandler* GetPermissionRequestHandler() { | 207 PermissionRequestHandler* GetPermissionRequestHandler() { |
| 157 return permission_request_handler_.get(); | 208 return permission_request_handler_.get(); |
| 158 } | 209 } |
| 159 | 210 |
| 160 void PreauthorizePermission(JNIEnv* env, | 211 void PreauthorizePermission( |
| 161 jobject obj, | 212 JNIEnv* env, |
| 162 jstring origin, | 213 const base::android::JavaParamRef<jobject>& obj, |
| 163 jlong resources); | 214 const base::android::JavaParamRef<jstring>& origin, |
| 215 jlong resources); |
| 164 | 216 |
| 165 // AwBrowserPermissionRequestDelegate implementation. | 217 // AwBrowserPermissionRequestDelegate implementation. |
| 166 void RequestProtectedMediaIdentifierPermission( | 218 void RequestProtectedMediaIdentifierPermission( |
| 167 const GURL& origin, | 219 const GURL& origin, |
| 168 const base::Callback<void(bool)>& callback) override; | 220 const base::Callback<void(bool)>& callback) override; |
| 169 void CancelProtectedMediaIdentifierPermissionRequests( | 221 void CancelProtectedMediaIdentifierPermissionRequests( |
| 170 const GURL& origin) override; | 222 const GURL& origin) override; |
| 171 void RequestGeolocationPermission( | 223 void RequestGeolocationPermission( |
| 172 const GURL& origin, | 224 const GURL& origin, |
| 173 const base::Callback<void(bool)>& callback) override; | 225 const base::Callback<void(bool)>& callback) override; |
| 174 void CancelGeolocationPermissionRequests(const GURL& origin) override; | 226 void CancelGeolocationPermissionRequests(const GURL& origin) override; |
| 175 void RequestMIDISysexPermission( | 227 void RequestMIDISysexPermission( |
| 176 const GURL& origin, | 228 const GURL& origin, |
| 177 const base::Callback<void(bool)>& callback) override; | 229 const base::Callback<void(bool)>& callback) override; |
| 178 void CancelMIDISysexPermissionRequests(const GURL& origin) override; | 230 void CancelMIDISysexPermissionRequests(const GURL& origin) override; |
| 179 | 231 |
| 180 // Find-in-page API and related methods. | 232 // Find-in-page API and related methods. |
| 181 void FindAllAsync(JNIEnv* env, jobject obj, jstring search_string); | 233 void FindAllAsync(JNIEnv* env, |
| 182 void FindNext(JNIEnv* env, jobject obj, jboolean forward); | 234 const base::android::JavaParamRef<jobject>& obj, |
| 183 void ClearMatches(JNIEnv* env, jobject obj); | 235 const base::android::JavaParamRef<jstring>& search_string); |
| 236 void FindNext(JNIEnv* env, |
| 237 const base::android::JavaParamRef<jobject>& obj, |
| 238 jboolean forward); |
| 239 void ClearMatches(JNIEnv* env, |
| 240 const base::android::JavaParamRef<jobject>& obj); |
| 184 FindHelper* GetFindHelper(); | 241 FindHelper* GetFindHelper(); |
| 185 | 242 |
| 186 // Per WebView Cookie Policy | 243 // Per WebView Cookie Policy |
| 187 bool AllowThirdPartyCookies(); | 244 bool AllowThirdPartyCookies(); |
| 188 | 245 |
| 189 // FindHelper::Listener implementation. | 246 // FindHelper::Listener implementation. |
| 190 void OnFindResultReceived(int active_ordinal, | 247 void OnFindResultReceived(int active_ordinal, |
| 191 int match_count, | 248 int match_count, |
| 192 bool finished) override; | 249 bool finished) override; |
| 193 // IconHelper::Listener implementation. | 250 // IconHelper::Listener implementation. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 211 const gfx::SizeF& contents_size_dip, | 268 const gfx::SizeF& contents_size_dip, |
| 212 float page_scale_factor, | 269 float page_scale_factor, |
| 213 float min_page_scale_factor, | 270 float min_page_scale_factor, |
| 214 float max_page_scale_factor) override; | 271 float max_page_scale_factor) override; |
| 215 void DidOverscroll(const gfx::Vector2d& overscroll_delta, | 272 void DidOverscroll(const gfx::Vector2d& overscroll_delta, |
| 216 const gfx::Vector2dF& overscroll_velocity) override; | 273 const gfx::Vector2dF& overscroll_velocity) override; |
| 217 | 274 |
| 218 void ParentDrawConstraintsUpdated( | 275 void ParentDrawConstraintsUpdated( |
| 219 const ParentCompositorDrawConstraints& draw_constraints) override {} | 276 const ParentCompositorDrawConstraints& draw_constraints) override {} |
| 220 | 277 |
| 221 void ClearCache(JNIEnv* env, jobject obj, jboolean include_disk_files); | 278 void ClearCache(JNIEnv* env, |
| 279 const base::android::JavaParamRef<jobject>& obj, |
| 280 jboolean include_disk_files); |
| 222 void SetPendingWebContentsForPopup(scoped_ptr<content::WebContents> pending); | 281 void SetPendingWebContentsForPopup(scoped_ptr<content::WebContents> pending); |
| 223 jlong ReleasePopupAwContents(JNIEnv* env, jobject obj); | 282 jlong ReleasePopupAwContents(JNIEnv* env, |
| 283 const base::android::JavaParamRef<jobject>& obj); |
| 224 | 284 |
| 225 void ScrollTo(JNIEnv* env, jobject obj, jint x, jint y); | 285 void ScrollTo(JNIEnv* env, |
| 286 const base::android::JavaParamRef<jobject>& obj, |
| 287 jint x, |
| 288 jint y); |
| 226 void SmoothScroll(JNIEnv* env, | 289 void SmoothScroll(JNIEnv* env, |
| 227 jobject obj, | 290 const base::android::JavaParamRef<jobject>& obj, |
| 228 jint target_x, | 291 jint target_x, |
| 229 jint target_y, | 292 jint target_y, |
| 230 jlong duration_ms); | 293 jlong duration_ms); |
| 231 void SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale); | 294 void SetDipScale(JNIEnv* env, |
| 295 const base::android::JavaParamRef<jobject>& obj, |
| 296 jfloat dip_scale); |
| 232 void SetSaveFormData(bool enabled); | 297 void SetSaveFormData(bool enabled); |
| 233 | 298 |
| 234 // Sets the java client | 299 // Sets the java client |
| 235 void SetAwAutofillClient(jobject client); | 300 void SetAwAutofillClient(jobject client); |
| 236 | 301 |
| 237 void SetJsOnlineProperty(JNIEnv* env, jobject obj, jboolean network_up); | 302 void SetJsOnlineProperty(JNIEnv* env, |
| 238 void TrimMemory(JNIEnv* env, jobject obj, jint level, jboolean visible); | 303 const base::android::JavaParamRef<jobject>& obj, |
| 304 jboolean network_up); |
| 305 void TrimMemory(JNIEnv* env, |
| 306 const base::android::JavaParamRef<jobject>& obj, |
| 307 jint level, |
| 308 jboolean visible); |
| 239 | 309 |
| 240 scoped_refptr<AwMessagePortMessageFilter> GetMessagePortMessageFilter(); | 310 scoped_refptr<AwMessagePortMessageFilter> GetMessagePortMessageFilter(); |
| 241 void PostMessageToFrame(JNIEnv* env, jobject obj, jstring frame_id, | 311 void PostMessageToFrame( |
| 242 jstring message, jstring target_origin, jintArray sent_ports); | 312 JNIEnv* env, |
| 243 void CreateMessageChannel(JNIEnv* env, jobject obj, jobjectArray ports); | 313 const base::android::JavaParamRef<jobject>& obj, |
| 314 const base::android::JavaParamRef<jstring>& frame_id, |
| 315 const base::android::JavaParamRef<jstring>& message, |
| 316 const base::android::JavaParamRef<jstring>& target_origin, |
| 317 const base::android::JavaParamRef<jintArray>& sent_ports); |
| 318 void CreateMessageChannel( |
| 319 JNIEnv* env, |
| 320 const base::android::JavaParamRef<jobject>& obj, |
| 321 const base::android::JavaParamRef<jobjectArray>& ports); |
| 244 | 322 |
| 245 void GrantFileSchemeAccesstoChildProcess(JNIEnv* env, jobject obj); | 323 void GrantFileSchemeAccesstoChildProcess( |
| 324 JNIEnv* env, |
| 325 const base::android::JavaParamRef<jobject>& obj); |
| 246 | 326 |
| 247 void ResumeLoadingCreatedPopupWebContents(JNIEnv* env, jobject obj); | 327 void ResumeLoadingCreatedPopupWebContents( |
| 328 JNIEnv* env, |
| 329 const base::android::JavaParamRef<jobject>& obj); |
| 248 | 330 |
| 249 private: | 331 private: |
| 250 void InitAutofillIfNecessary(bool enabled); | 332 void InitAutofillIfNecessary(bool enabled); |
| 251 | 333 |
| 252 // Geolocation API support | 334 // Geolocation API support |
| 253 void ShowGeolocationPrompt(const GURL& origin, base::Callback<void(bool)>); | 335 void ShowGeolocationPrompt(const GURL& origin, base::Callback<void(bool)>); |
| 254 void HideGeolocationPrompt(const GURL& origin); | 336 void HideGeolocationPrompt(const GURL& origin); |
| 255 | 337 |
| 256 void SetDipScaleInternal(float dip_scale); | 338 void SetDipScaleInternal(float dip_scale); |
| 257 | 339 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 278 GLViewRendererManager::Key renderer_manager_key_; | 360 GLViewRendererManager::Key renderer_manager_key_; |
| 279 | 361 |
| 280 DISALLOW_COPY_AND_ASSIGN(AwContents); | 362 DISALLOW_COPY_AND_ASSIGN(AwContents); |
| 281 }; | 363 }; |
| 282 | 364 |
| 283 bool RegisterAwContents(JNIEnv* env); | 365 bool RegisterAwContents(JNIEnv* env); |
| 284 | 366 |
| 285 } // namespace android_webview | 367 } // namespace android_webview |
| 286 | 368 |
| 287 #endif // ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ | 369 #endif // ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ |
| OLD | NEW |