Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(27)

Side by Side Diff: android_webview/native/aw_contents.h

Issue 831523004: Enable posting a message from JS to Android webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix component builds Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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>
11 #include <utility> 11 #include <utility>
12 12
13 #include "android_webview/browser/aw_browser_permission_request_delegate.h" 13 #include "android_webview/browser/aw_browser_permission_request_delegate.h"
14 #include "android_webview/browser/aw_message_port_message_filter.h"
14 #include "android_webview/browser/browser_view_renderer.h" 15 #include "android_webview/browser/browser_view_renderer.h"
15 #include "android_webview/browser/browser_view_renderer_client.h" 16 #include "android_webview/browser/browser_view_renderer_client.h"
16 #include "android_webview/browser/find_helper.h" 17 #include "android_webview/browser/find_helper.h"
17 #include "android_webview/browser/gl_view_renderer_manager.h" 18 #include "android_webview/browser/gl_view_renderer_manager.h"
18 #include "android_webview/browser/icon_helper.h" 19 #include "android_webview/browser/icon_helper.h"
19 #include "android_webview/browser/renderer_host/aw_render_view_host_ext.h" 20 #include "android_webview/browser/renderer_host/aw_render_view_host_ext.h"
20 #include "android_webview/native/permission/permission_request_handler_client.h" 21 #include "android_webview/native/permission/permission_request_handler_client.h"
21 #include "base/android/jni_weak_ref.h" 22 #include "base/android/jni_weak_ref.h"
22 #include "base/android/scoped_java_ref.h" 23 #include "base/android/scoped_java_ref.h"
23 #include "base/callback_forward.h" 24 #include "base/callback_forward.h"
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 void ScrollTo(JNIEnv* env, jobject obj, jint x, jint y); 214 void ScrollTo(JNIEnv* env, jobject obj, jint x, jint y);
214 void SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale); 215 void SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale);
215 void SetSaveFormData(bool enabled); 216 void SetSaveFormData(bool enabled);
216 217
217 // Sets the java client 218 // Sets the java client
218 void SetAwAutofillClient(jobject client); 219 void SetAwAutofillClient(jobject client);
219 220
220 void SetJsOnlineProperty(JNIEnv* env, jobject obj, jboolean network_up); 221 void SetJsOnlineProperty(JNIEnv* env, jobject obj, jboolean network_up);
221 void TrimMemory(JNIEnv* env, jobject obj, jint level, jboolean visible); 222 void TrimMemory(JNIEnv* env, jobject obj, jint level, jboolean visible);
222 223
224 scoped_refptr<AwMessagePortMessageFilter> GetMessagePortMessageFilter();
223 void PostMessageToFrame(JNIEnv* env, jobject obj, jstring frame_id, 225 void PostMessageToFrame(JNIEnv* env, jobject obj, jstring frame_id,
224 jstring message, jstring source_origin, jstring target_origin, 226 jstring message, jstring source_origin, jstring target_origin,
225 jintArray msgPorts); 227 jintArray msgPorts);
226 void CreateMessageChannel(JNIEnv* env, jobject obj, jobject callback); 228 void CreateMessageChannel(JNIEnv* env, jobject obj, jobject callback);
227 229
228 private: 230 private:
229 void InitDataReductionProxyIfNecessary(); 231 void InitDataReductionProxyIfNecessary();
230 void InitAutofillIfNecessary(bool enabled); 232 void InitAutofillIfNecessary(bool enabled);
231 233
232 // Geolocation API support 234 // Geolocation API support
233 void ShowGeolocationPrompt(const GURL& origin, base::Callback<void(bool)>); 235 void ShowGeolocationPrompt(const GURL& origin, base::Callback<void(bool)>);
234 void HideGeolocationPrompt(const GURL& origin); 236 void HideGeolocationPrompt(const GURL& origin);
235 237
236 JavaObjectWeakGlobalRef java_ref_; 238 JavaObjectWeakGlobalRef java_ref_;
237 scoped_ptr<AwWebContentsDelegate> web_contents_delegate_; 239 scoped_ptr<AwWebContentsDelegate> web_contents_delegate_;
238 scoped_ptr<AwContentsClientBridge> contents_client_bridge_; 240 scoped_ptr<AwContentsClientBridge> contents_client_bridge_;
239 scoped_ptr<content::WebContents> web_contents_; 241 scoped_ptr<content::WebContents> web_contents_;
240 scoped_ptr<AwRenderViewHostExt> render_view_host_ext_; 242 scoped_ptr<AwRenderViewHostExt> render_view_host_ext_;
241 scoped_ptr<FindHelper> find_helper_; 243 scoped_ptr<FindHelper> find_helper_;
242 scoped_ptr<IconHelper> icon_helper_; 244 scoped_ptr<IconHelper> icon_helper_;
243 scoped_ptr<AwContents> pending_contents_; 245 scoped_ptr<AwContents> pending_contents_;
244 BrowserViewRenderer browser_view_renderer_; 246 BrowserViewRenderer browser_view_renderer_;
245 scoped_ptr<AwPdfExporter> pdf_exporter_; 247 scoped_ptr<AwPdfExporter> pdf_exporter_;
246 scoped_ptr<PermissionRequestHandler> permission_request_handler_; 248 scoped_ptr<PermissionRequestHandler> permission_request_handler_;
249 scoped_refptr<AwMessagePortMessageFilter> message_port_message_filter_;
247 250
248 // GURL is supplied by the content layer as requesting frame. 251 // GURL is supplied by the content layer as requesting frame.
249 // Callback is supplied by the content layer, and is invoked with the result 252 // Callback is supplied by the content layer, and is invoked with the result
250 // from the permission prompt. 253 // from the permission prompt.
251 typedef std::pair<const GURL, base::Callback<void(bool)> > OriginCallback; 254 typedef std::pair<const GURL, base::Callback<void(bool)> > OriginCallback;
252 // The first element in the list is always the currently pending request. 255 // The first element in the list is always the currently pending request.
253 std::list<OriginCallback> pending_geolocation_prompts_; 256 std::list<OriginCallback> pending_geolocation_prompts_;
254 257
255 GLViewRendererManager::Key renderer_manager_key_; 258 GLViewRendererManager::Key renderer_manager_key_;
256 259
257 DISALLOW_COPY_AND_ASSIGN(AwContents); 260 DISALLOW_COPY_AND_ASSIGN(AwContents);
258 }; 261 };
259 262
260 bool RegisterAwContents(JNIEnv* env); 263 bool RegisterAwContents(JNIEnv* env);
261 264
262 } // namespace android_webview 265 } // namespace android_webview
263 266
264 #endif // ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_ 267 #endif // ANDROID_WEBVIEW_NATIVE_AW_CONTENTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698