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

Side by Side Diff: android_webview/browser/aw_contents.cc

Issue 2863233002: [WebView] Move files from native to browser (Closed)
Patch Set: Created 3 years, 7 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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #include "android_webview/native/aw_contents.h" 5 #include "android_webview/browser/aw_contents.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <utility> 8 #include <utility>
9 9
10 #include "android_webview/browser/aw_autofill_client.h"
10 #include "android_webview/browser/aw_browser_context.h" 11 #include "android_webview/browser/aw_browser_context.h"
11 #include "android_webview/browser/aw_browser_main_parts.h" 12 #include "android_webview/browser/aw_browser_main_parts.h"
13 #include "android_webview/browser/aw_contents_client_bridge.h"
14 #include "android_webview/browser/aw_contents_io_thread_client_impl.h"
15 #include "android_webview/browser/aw_contents_lifecycle_notifier.h"
16 #include "android_webview/browser/aw_gl_functor.h"
17 #include "android_webview/browser/aw_pdf_exporter.h"
18 #include "android_webview/browser/aw_picture.h"
19 #include "android_webview/browser/aw_renderer_priority_manager.h"
12 #include "android_webview/browser/aw_resource_context.h" 20 #include "android_webview/browser/aw_resource_context.h"
21 #include "android_webview/browser/aw_web_contents_delegate.h"
13 #include "android_webview/browser/browser_view_renderer.h" 22 #include "android_webview/browser/browser_view_renderer.h"
14 #include "android_webview/browser/child_frame.h" 23 #include "android_webview/browser/child_frame.h"
15 #include "android_webview/browser/deferred_gpu_command_service.h" 24 #include "android_webview/browser/deferred_gpu_command_service.h"
25 #include "android_webview/browser/java_browser_view_renderer_helper.h"
16 #include "android_webview/browser/net_disk_cache_remover.h" 26 #include "android_webview/browser/net_disk_cache_remover.h"
27 #include "android_webview/browser/permission/aw_permission_request.h"
28 #include "android_webview/browser/permission/permission_request_handler.h"
29 #include "android_webview/browser/permission/simple_permission_request.h"
17 #include "android_webview/browser/render_thread_manager.h" 30 #include "android_webview/browser/render_thread_manager.h"
18 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele gate.h" 31 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele gate.h"
19 #include "android_webview/browser/scoped_app_gl_state_restore.h" 32 #include "android_webview/browser/scoped_app_gl_state_restore.h"
33 #include "android_webview/browser/state_serializer.h"
20 #include "android_webview/common/aw_hit_test_data.h" 34 #include "android_webview/common/aw_hit_test_data.h"
21 #include "android_webview/common/aw_switches.h" 35 #include "android_webview/common/aw_switches.h"
22 #include "android_webview/common/devtools_instrumentation.h" 36 #include "android_webview/common/devtools_instrumentation.h"
23 #include "android_webview/native/aw_autofill_client.h"
24 #include "android_webview/native/aw_contents_client_bridge.h"
25 #include "android_webview/native/aw_contents_io_thread_client_impl.h"
26 #include "android_webview/native/aw_contents_lifecycle_notifier.h"
27 #include "android_webview/native/aw_gl_functor.h"
28 #include "android_webview/native/aw_pdf_exporter.h"
29 #include "android_webview/native/aw_picture.h"
30 #include "android_webview/native/aw_renderer_priority_manager.h"
31 #include "android_webview/native/aw_web_contents_delegate.h"
32 #include "android_webview/native/java_browser_view_renderer_helper.h"
33 #include "android_webview/native/permission/aw_permission_request.h"
34 #include "android_webview/native/permission/permission_request_handler.h"
35 #include "android_webview/native/permission/simple_permission_request.h"
36 #include "android_webview/native/state_serializer.h"
37 #include "android_webview/public/browser/draw_gl.h" 37 #include "android_webview/public/browser/draw_gl.h"
38 #include "base/android/jni_android.h" 38 #include "base/android/jni_android.h"
39 #include "base/android/jni_array.h" 39 #include "base/android/jni_array.h"
40 #include "base/android/jni_string.h" 40 #include "base/android/jni_string.h"
41 #include "base/android/locale_utils.h" 41 #include "base/android/locale_utils.h"
42 #include "base/android/scoped_java_ref.h" 42 #include "base/android/scoped_java_ref.h"
43 #include "base/atomicops.h" 43 #include "base/atomicops.h"
44 #include "base/bind.h" 44 #include "base/bind.h"
45 #include "base/callback.h" 45 #include "base/callback.h"
46 #include "base/command_line.h" 46 #include "base/command_line.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 // static 139 // static
140 AwContents* AwContents::FromWebContents(WebContents* web_contents) { 140 AwContents* AwContents::FromWebContents(WebContents* web_contents) {
141 DCHECK_CURRENTLY_ON(BrowserThread::UI); 141 DCHECK_CURRENTLY_ON(BrowserThread::UI);
142 return AwContentsUserData::GetContents(web_contents); 142 return AwContentsUserData::GetContents(web_contents);
143 } 143 }
144 144
145 // static 145 // static
146 AwContents* AwContents::FromID(int render_process_id, int render_view_id) { 146 AwContents* AwContents::FromID(int render_process_id, int render_view_id) {
147 content::RenderViewHost* rvh = 147 content::RenderViewHost* rvh =
148 content::RenderViewHost::FromID(render_process_id, render_view_id); 148 content::RenderViewHost::FromID(render_process_id, render_view_id);
149 if (!rvh) return NULL; 149 if (!rvh)
150 return NULL;
150 content::WebContents* web_contents = 151 content::WebContents* web_contents =
151 content::WebContents::FromRenderViewHost(rvh); 152 content::WebContents::FromRenderViewHost(rvh);
152 if (!web_contents) return NULL; 153 if (!web_contents)
154 return NULL;
153 return FromWebContents(web_contents); 155 return FromWebContents(web_contents);
154 } 156 }
155 157
156 // static 158 // static
157 void UpdateDefaultLocale(JNIEnv* env, 159 void UpdateDefaultLocale(JNIEnv* env,
158 const JavaParamRef<jclass>&, 160 const JavaParamRef<jclass>&,
159 const JavaParamRef<jstring>& locale, 161 const JavaParamRef<jstring>& locale,
160 const JavaParamRef<jstring>& locale_list) { 162 const JavaParamRef<jstring>& locale_list) {
161 g_locale = ConvertJavaStringToUTF8(env, locale); 163 g_locale = ConvertJavaStringToUTF8(env, locale);
162 g_locale_list = ConvertJavaStringToUTF8(env, locale_list); 164 g_locale_list = ConvertJavaStringToUTF8(env, locale_list);
163 } 165 }
164 166
165 // static 167 // static
166 std::string AwContents::GetLocale() { 168 std::string AwContents::GetLocale() {
167 return g_locale; 169 return g_locale;
168 } 170 }
169 171
170 // static 172 // static
171 std::string AwContents::GetLocaleList() { 173 std::string AwContents::GetLocaleList() {
172 return g_locale_list; 174 return g_locale_list;
173 } 175 }
174 176
175 // static 177 // static
176 AwBrowserPermissionRequestDelegate* AwBrowserPermissionRequestDelegate::FromID( 178 AwBrowserPermissionRequestDelegate* AwBrowserPermissionRequestDelegate::FromID(
177 int render_process_id, int render_frame_id) { 179 int render_process_id,
178 AwContents* aw_contents = AwContents::FromWebContents( 180 int render_frame_id) {
179 content::WebContents::FromRenderFrameHost( 181 AwContents* aw_contents =
182 AwContents::FromWebContents(content::WebContents::FromRenderFrameHost(
180 content::RenderFrameHost::FromID(render_process_id, 183 content::RenderFrameHost::FromID(render_process_id,
181 render_frame_id))); 184 render_frame_id)));
182 return aw_contents; 185 return aw_contents;
183 } 186 }
184 187
185 // static 188 // static
186 AwSafeBrowsingUIManager::UIManagerClient* 189 AwSafeBrowsingUIManager::UIManagerClient*
187 AwSafeBrowsingUIManager::UIManagerClient::FromWebContents( 190 AwSafeBrowsingUIManager::UIManagerClient::FromWebContents(
188 WebContents* web_contents) { 191 WebContents* web_contents) {
189 return AwContents::FromWebContents(web_contents); 192 return AwContents::FromWebContents(web_contents);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 render_frame_id); 279 render_frame_id);
277 } 280 }
278 } 281 }
279 282
280 void AwContents::SetSaveFormData(bool enabled) { 283 void AwContents::SetSaveFormData(bool enabled) {
281 DCHECK_CURRENTLY_ON(BrowserThread::UI); 284 DCHECK_CURRENTLY_ON(BrowserThread::UI);
282 InitAutofillIfNecessary(enabled); 285 InitAutofillIfNecessary(enabled);
283 // We need to check for the existence, since autofill_manager_delegate 286 // We need to check for the existence, since autofill_manager_delegate
284 // may not be created when the setting is false. 287 // may not be created when the setting is false.
285 if (AwAutofillClient::FromWebContents(web_contents_.get())) { 288 if (AwAutofillClient::FromWebContents(web_contents_.get())) {
286 AwAutofillClient::FromWebContents(web_contents_.get())-> 289 AwAutofillClient::FromWebContents(web_contents_.get())
287 SetSaveFormData(enabled); 290 ->SetSaveFormData(enabled);
288 } 291 }
289 } 292 }
290 293
291 void AwContents::InitAutofillIfNecessary(bool enabled) { 294 void AwContents::InitAutofillIfNecessary(bool enabled) {
292 // Do not initialize if the feature is not enabled. 295 // Do not initialize if the feature is not enabled.
293 if (!enabled) 296 if (!enabled)
294 return; 297 return;
295 // Check if the autofill driver factory already exists. 298 // Check if the autofill driver factory already exists.
296 content::WebContents* web_contents = web_contents_.get(); 299 content::WebContents* web_contents = web_contents_.get();
297 if (ContentAutofillDriverFactory::FromWebContents(web_contents)) 300 if (ContentAutofillDriverFactory::FromWebContents(web_contents))
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 base::FilePath target_path(ConvertJavaStringToUTF8(env, jpath)); 447 base::FilePath target_path(ConvertJavaStringToUTF8(env, jpath));
445 web_contents_->GenerateMHTML( 448 web_contents_->GenerateMHTML(
446 content::MHTMLGenerationParams(target_path), 449 content::MHTMLGenerationParams(target_path),
447 base::Bind(&GenerateMHTMLCallback, 450 base::Bind(&GenerateMHTMLCallback,
448 ScopedJavaGlobalRef<jobject>(env, callback), target_path)); 451 ScopedJavaGlobalRef<jobject>(env, callback), target_path));
449 } 452 }
450 453
451 void AwContents::CreatePdfExporter(JNIEnv* env, 454 void AwContents::CreatePdfExporter(JNIEnv* env,
452 const JavaParamRef<jobject>& obj, 455 const JavaParamRef<jobject>& obj,
453 const JavaParamRef<jobject>& pdfExporter) { 456 const JavaParamRef<jobject>& pdfExporter) {
454 pdf_exporter_.reset( 457 pdf_exporter_.reset(new AwPdfExporter(env, pdfExporter, web_contents_.get()));
455 new AwPdfExporter(env,
456 pdfExporter,
457 web_contents_.get()));
458 } 458 }
459 459
460 bool AwContents::OnReceivedHttpAuthRequest(const JavaRef<jobject>& handler, 460 bool AwContents::OnReceivedHttpAuthRequest(const JavaRef<jobject>& handler,
461 const std::string& host, 461 const std::string& host,
462 const std::string& realm) { 462 const std::string& realm) {
463 DCHECK_CURRENTLY_ON(BrowserThread::UI); 463 DCHECK_CURRENTLY_ON(BrowserThread::UI);
464 JNIEnv* env = AttachCurrentThread(); 464 JNIEnv* env = AttachCurrentThread();
465 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 465 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
466 if (obj.is_null()) 466 if (obj.is_null())
467 return false; 467 return false;
(...skipping 10 matching lines...) Expand all
478 DCHECK_CURRENTLY_ON(BrowserThread::UI); 478 DCHECK_CURRENTLY_ON(BrowserThread::UI);
479 browser_view_renderer_.SetOffscreenPreRaster(enabled); 479 browser_view_renderer_.SetOffscreenPreRaster(enabled);
480 } 480 }
481 481
482 void AwContents::AddVisitedLinks( 482 void AwContents::AddVisitedLinks(
483 JNIEnv* env, 483 JNIEnv* env,
484 const JavaParamRef<jobject>& obj, 484 const JavaParamRef<jobject>& obj,
485 const JavaParamRef<jobjectArray>& jvisited_links) { 485 const JavaParamRef<jobjectArray>& jvisited_links) {
486 DCHECK_CURRENTLY_ON(BrowserThread::UI); 486 DCHECK_CURRENTLY_ON(BrowserThread::UI);
487 std::vector<base::string16> visited_link_strings; 487 std::vector<base::string16> visited_link_strings;
488 base::android::AppendJavaStringArrayToStringVector( 488 base::android::AppendJavaStringArrayToStringVector(env, jvisited_links,
489 env, jvisited_links, &visited_link_strings); 489 &visited_link_strings);
490 490
491 std::vector<GURL> visited_link_gurls; 491 std::vector<GURL> visited_link_gurls;
492 std::vector<base::string16>::const_iterator itr; 492 std::vector<base::string16>::const_iterator itr;
493 for (itr = visited_link_strings.begin(); itr != visited_link_strings.end(); 493 for (itr = visited_link_strings.begin(); itr != visited_link_strings.end();
494 ++itr) { 494 ++itr) {
495 visited_link_gurls.push_back(GURL(*itr)); 495 visited_link_gurls.push_back(GURL(*itr));
496 } 496 }
497 497
498 AwBrowserContext::FromWebContents(web_contents_.get()) 498 AwBrowserContext::FromWebContents(web_contents_.get())
499 ->AddVisitedURLs(visited_link_gurls); 499 ->AddVisitedURLs(visited_link_gurls);
(...skipping 16 matching lines...) Expand all
516 "onGeolocationPermissionsShowPrompt"); 516 "onGeolocationPermissionsShowPrompt");
517 Java_AwContents_onGeolocationPermissionsShowPrompt(env, j_ref, j_origin); 517 Java_AwContents_onGeolocationPermissionsShowPrompt(env, j_ref, j_origin);
518 } 518 }
519 } 519 }
520 520
521 void ShowGeolocationPromptHelper(const JavaObjectWeakGlobalRef& java_ref, 521 void ShowGeolocationPromptHelper(const JavaObjectWeakGlobalRef& java_ref,
522 const GURL& origin) { 522 const GURL& origin) {
523 JNIEnv* env = AttachCurrentThread(); 523 JNIEnv* env = AttachCurrentThread();
524 if (java_ref.get(env).obj()) { 524 if (java_ref.get(env).obj()) {
525 content::BrowserThread::PostTask( 525 content::BrowserThread::PostTask(
526 content::BrowserThread::UI, 526 content::BrowserThread::UI, FROM_HERE,
527 FROM_HERE, 527 base::Bind(&ShowGeolocationPromptHelperTask, java_ref, origin));
528 base::Bind(&ShowGeolocationPromptHelperTask,
529 java_ref,
530 origin));
531 } 528 }
532 } 529 }
533 530
534 } // anonymous namespace 531 } // anonymous namespace
535 532
536 void AwContents::ShowGeolocationPrompt(const GURL& requesting_frame, 533 void AwContents::ShowGeolocationPrompt(const GURL& requesting_frame,
537 base::Callback<void(bool)> callback) { 534 base::Callback<void(bool)> callback) {
538 DCHECK_CURRENTLY_ON(BrowserThread::UI); 535 DCHECK_CURRENTLY_ON(BrowserThread::UI);
539 536
540 GURL origin = requesting_frame.GetOrigin(); 537 GURL origin = requesting_frame.GetOrigin();
541 bool show_prompt = pending_geolocation_prompts_.empty(); 538 bool show_prompt = pending_geolocation_prompts_.empty();
542 pending_geolocation_prompts_.push_back(OriginCallback(origin, callback)); 539 pending_geolocation_prompts_.push_back(OriginCallback(origin, callback));
543 if (show_prompt) { 540 if (show_prompt) {
544 ShowGeolocationPromptHelper(java_ref_, origin); 541 ShowGeolocationPromptHelper(java_ref_, origin);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 if (removed_current_outstanding_callback) { 582 if (removed_current_outstanding_callback) {
586 JNIEnv* env = AttachCurrentThread(); 583 JNIEnv* env = AttachCurrentThread();
587 ScopedJavaLocalRef<jobject> j_ref = java_ref_.get(env); 584 ScopedJavaLocalRef<jobject> j_ref = java_ref_.get(env);
588 if (j_ref.obj()) { 585 if (j_ref.obj()) {
589 devtools_instrumentation::ScopedEmbedderCallbackTask embedder_callback( 586 devtools_instrumentation::ScopedEmbedderCallbackTask embedder_callback(
590 "onGeolocationPermissionsHidePrompt"); 587 "onGeolocationPermissionsHidePrompt");
591 Java_AwContents_onGeolocationPermissionsHidePrompt(env, j_ref); 588 Java_AwContents_onGeolocationPermissionsHidePrompt(env, j_ref);
592 } 589 }
593 if (!pending_geolocation_prompts_.empty()) { 590 if (!pending_geolocation_prompts_.empty()) {
594 ShowGeolocationPromptHelper(java_ref_, 591 ShowGeolocationPromptHelper(java_ref_,
595 pending_geolocation_prompts_.front().first); 592 pending_geolocation_prompts_.front().first);
596 } 593 }
597 } 594 }
598 } 595 }
599 596
600 void AwContents::OnPermissionRequest( 597 void AwContents::OnPermissionRequest(
601 base::android::ScopedJavaLocalRef<jobject> j_request, 598 base::android::ScopedJavaLocalRef<jobject> j_request,
602 AwPermissionRequest* request) { 599 AwPermissionRequest* request) {
603 DCHECK(!j_request.is_null()); 600 DCHECK(!j_request.is_null());
604 DCHECK(request); 601 DCHECK(request);
605 602
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 void AwContents::CancelGeolocationPermissionRequests(const GURL& origin) { 663 void AwContents::CancelGeolocationPermissionRequests(const GURL& origin) {
667 JNIEnv* env = AttachCurrentThread(); 664 JNIEnv* env = AttachCurrentThread();
668 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 665 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
669 if (obj.is_null()) 666 if (obj.is_null())
670 return; 667 return;
671 668
672 if (Java_AwContents_useLegacyGeolocationPermissionAPI(env, obj)) { 669 if (Java_AwContents_useLegacyGeolocationPermissionAPI(env, obj)) {
673 HideGeolocationPrompt(origin); 670 HideGeolocationPrompt(origin);
674 return; 671 return;
675 } 672 }
676 permission_request_handler_->CancelRequest( 673 permission_request_handler_->CancelRequest(origin,
677 origin, AwPermissionRequest::Geolocation); 674 AwPermissionRequest::Geolocation);
678 } 675 }
679 676
680 void AwContents::RequestMIDISysexPermission( 677 void AwContents::RequestMIDISysexPermission(
681 const GURL& origin, 678 const GURL& origin,
682 const base::Callback<void(bool)>& callback) { 679 const base::Callback<void(bool)>& callback) {
683 permission_request_handler_->SendRequest( 680 permission_request_handler_->SendRequest(
684 std::unique_ptr<AwPermissionRequestDelegate>(new SimplePermissionRequest( 681 std::unique_ptr<AwPermissionRequestDelegate>(new SimplePermissionRequest(
685 origin, AwPermissionRequest::MIDISysex, callback))); 682 origin, AwPermissionRequest::MIDISysex, callback)));
686 } 683 }
687 684
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 jfloat touch_major) { 823 jfloat touch_major) {
827 DCHECK_CURRENTLY_ON(BrowserThread::UI); 824 DCHECK_CURRENTLY_ON(BrowserThread::UI);
828 gfx::PointF touch_center(x, y); 825 gfx::PointF touch_center(x, y);
829 gfx::SizeF touch_area(touch_major, touch_major); 826 gfx::SizeF touch_area(touch_major, touch_major);
830 render_view_host_ext_->RequestNewHitTestDataAt(touch_center, touch_area); 827 render_view_host_ext_->RequestNewHitTestDataAt(touch_center, touch_area);
831 } 828 }
832 829
833 void AwContents::UpdateLastHitTestData(JNIEnv* env, 830 void AwContents::UpdateLastHitTestData(JNIEnv* env,
834 const JavaParamRef<jobject>& obj) { 831 const JavaParamRef<jobject>& obj) {
835 DCHECK_CURRENTLY_ON(BrowserThread::UI); 832 DCHECK_CURRENTLY_ON(BrowserThread::UI);
836 if (!render_view_host_ext_->HasNewHitTestData()) return; 833 if (!render_view_host_ext_->HasNewHitTestData())
834 return;
837 835
838 const AwHitTestData& data = render_view_host_ext_->GetLastHitTestData(); 836 const AwHitTestData& data = render_view_host_ext_->GetLastHitTestData();
839 render_view_host_ext_->MarkHitTestDataRead(); 837 render_view_host_ext_->MarkHitTestDataRead();
840 838
841 // Make sure to null the Java object if data is empty/invalid. 839 // Make sure to null the Java object if data is empty/invalid.
842 ScopedJavaLocalRef<jstring> extra_data_for_type; 840 ScopedJavaLocalRef<jstring> extra_data_for_type;
843 if (data.extra_data_for_type.length()) 841 if (data.extra_data_for_type.length())
844 extra_data_for_type = ConvertUTF8ToJavaString( 842 extra_data_for_type =
845 env, data.extra_data_for_type); 843 ConvertUTF8ToJavaString(env, data.extra_data_for_type);
846 844
847 ScopedJavaLocalRef<jstring> href; 845 ScopedJavaLocalRef<jstring> href;
848 if (data.href.length()) 846 if (data.href.length())
849 href = ConvertUTF16ToJavaString(env, data.href); 847 href = ConvertUTF16ToJavaString(env, data.href);
850 848
851 ScopedJavaLocalRef<jstring> anchor_text; 849 ScopedJavaLocalRef<jstring> anchor_text;
852 if (data.anchor_text.length()) 850 if (data.anchor_text.length())
853 anchor_text = ConvertUTF16ToJavaString(env, data.anchor_text); 851 anchor_text = ConvertUTF16ToJavaString(env, data.anchor_text);
854 852
855 ScopedJavaLocalRef<jstring> img_src; 853 ScopedJavaLocalRef<jstring> img_src;
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
1171 } 1169 }
1172 1170
1173 namespace { 1171 namespace {
1174 void InvokeVisualStateCallback(const JavaObjectWeakGlobalRef& java_ref, 1172 void InvokeVisualStateCallback(const JavaObjectWeakGlobalRef& java_ref,
1175 jlong request_id, 1173 jlong request_id,
1176 const JavaRef<jobject>& callback, 1174 const JavaRef<jobject>& callback,
1177 bool result) { 1175 bool result) {
1178 JNIEnv* env = AttachCurrentThread(); 1176 JNIEnv* env = AttachCurrentThread();
1179 ScopedJavaLocalRef<jobject> obj = java_ref.get(env); 1177 ScopedJavaLocalRef<jobject> obj = java_ref.get(env);
1180 if (obj.is_null()) 1178 if (obj.is_null())
1181 return; 1179 return;
1182 Java_AwContents_invokeVisualStateCallback(env, obj, callback, request_id); 1180 Java_AwContents_invokeVisualStateCallback(env, obj, callback, request_id);
1183 } 1181 }
1184 } // namespace 1182 } // namespace
1185 1183
1186 void AwContents::InsertVisualStateCallback( 1184 void AwContents::InsertVisualStateCallback(
1187 JNIEnv* env, 1185 JNIEnv* env,
1188 const JavaParamRef<jobject>& obj, 1186 const JavaParamRef<jobject>& obj,
1189 jlong request_id, 1187 jlong request_id,
1190 const JavaParamRef<jobject>& callback) { 1188 const JavaParamRef<jobject>& callback) {
1191 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1189 DCHECK_CURRENTLY_ON(BrowserThread::UI);
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1289 1287
1290 void AwContents::SetExtraHeadersForUrl( 1288 void AwContents::SetExtraHeadersForUrl(
1291 JNIEnv* env, 1289 JNIEnv* env,
1292 const JavaParamRef<jobject>& obj, 1290 const JavaParamRef<jobject>& obj,
1293 const JavaParamRef<jstring>& url, 1291 const JavaParamRef<jstring>& url,
1294 const JavaParamRef<jstring>& jextra_headers) { 1292 const JavaParamRef<jstring>& jextra_headers) {
1295 std::string extra_headers; 1293 std::string extra_headers;
1296 if (jextra_headers) 1294 if (jextra_headers)
1297 extra_headers = ConvertJavaStringToUTF8(env, jextra_headers); 1295 extra_headers = ConvertJavaStringToUTF8(env, jextra_headers);
1298 AwResourceContext* resource_context = static_cast<AwResourceContext*>( 1296 AwResourceContext* resource_context = static_cast<AwResourceContext*>(
1299 AwBrowserContext::FromWebContents(web_contents_.get())-> 1297 AwBrowserContext::FromWebContents(web_contents_.get())
1300 GetResourceContext()); 1298 ->GetResourceContext());
1301 resource_context->SetExtraHeaders(GURL(ConvertJavaStringToUTF8(env, url)), 1299 resource_context->SetExtraHeaders(GURL(ConvertJavaStringToUTF8(env, url)),
1302 extra_headers); 1300 extra_headers);
1303 } 1301 }
1304 1302
1305 void AwContents::SetJsOnlineProperty(JNIEnv* env, 1303 void AwContents::SetJsOnlineProperty(JNIEnv* env,
1306 const JavaParamRef<jobject>& obj, 1304 const JavaParamRef<jobject>& obj,
1307 jboolean network_up) { 1305 jboolean network_up) {
1308 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1306 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1309 render_view_host_ext_->SetJsOnlineProperty(network_up); 1307 render_view_host_ext_->SetJsOnlineProperty(network_up);
1310 } 1308 }
(...skipping 26 matching lines...) Expand all
1337 1335
1338 // TODO(sgurun) add support for posting a frame whose name is known (only 1336 // TODO(sgurun) add support for posting a frame whose name is known (only
1339 // main frame is supported at this time, see crbug.com/389721) 1337 // main frame is supported at this time, see crbug.com/389721)
1340 void AwContents::PostMessageToFrame(JNIEnv* env, 1338 void AwContents::PostMessageToFrame(JNIEnv* env,
1341 const JavaParamRef<jobject>& obj, 1339 const JavaParamRef<jobject>& obj,
1342 const JavaParamRef<jstring>& frame_name, 1340 const JavaParamRef<jstring>& frame_name,
1343 const JavaParamRef<jstring>& message, 1341 const JavaParamRef<jstring>& message,
1344 const JavaParamRef<jstring>& target_origin, 1342 const JavaParamRef<jstring>& target_origin,
1345 const JavaParamRef<jobjectArray>& ports) { 1343 const JavaParamRef<jobjectArray>& ports) {
1346 // Use an empty source origin for android webview. 1344 // Use an empty source origin for android webview.
1347 content::MessagePortProvider::PostMessageToFrame(web_contents_.get(), 1345 content::MessagePortProvider::PostMessageToFrame(
1348 env, 1346 web_contents_.get(), env, nullptr, target_origin, message, ports);
1349 nullptr,
1350 target_origin,
1351 message,
1352 ports);
1353 } 1347 }
1354 1348
1355 void AwContents::GrantFileSchemeAccesstoChildProcess( 1349 void AwContents::GrantFileSchemeAccesstoChildProcess(
1356 JNIEnv* env, 1350 JNIEnv* env,
1357 const JavaParamRef<jobject>& obj) { 1351 const JavaParamRef<jobject>& obj) {
1358 content::ChildProcessSecurityPolicy::GetInstance()->GrantScheme( 1352 content::ChildProcessSecurityPolicy::GetInstance()->GrantScheme(
1359 web_contents_->GetRenderProcessHost()->GetID(), url::kFileScheme); 1353 web_contents_->GetRenderProcessHost()->GetID(), url::kFileScheme);
1360 } 1354 }
1361 1355
1362 void AwContents::ResumeLoadingCreatedPopupWebContents( 1356 void AwContents::ResumeLoadingCreatedPopupWebContents(
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1433 void AwContents::OnRenderProcessGone(int child_process_id) { 1427 void AwContents::OnRenderProcessGone(int child_process_id) {
1434 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1428 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1435 JNIEnv* env = AttachCurrentThread(); 1429 JNIEnv* env = AttachCurrentThread();
1436 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 1430 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1437 if (obj.is_null()) 1431 if (obj.is_null())
1438 return; 1432 return;
1439 1433
1440 Java_AwContents_onRenderProcessGone(env, obj, child_process_id); 1434 Java_AwContents_onRenderProcessGone(env, obj, child_process_id);
1441 } 1435 }
1442 1436
1443 bool AwContents::OnRenderProcessGoneDetail(int child_process_id, 1437 bool AwContents::OnRenderProcessGoneDetail(int child_process_id, bool crashed) {
1444 bool crashed) {
1445 DCHECK_CURRENTLY_ON(BrowserThread::UI); 1438 DCHECK_CURRENTLY_ON(BrowserThread::UI);
1446 JNIEnv* env = AttachCurrentThread(); 1439 JNIEnv* env = AttachCurrentThread();
1447 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 1440 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1448 if (obj.is_null()) 1441 if (obj.is_null())
1449 return false; 1442 return false;
1450 1443
1451 return Java_AwContents_onRenderProcessGoneDetail(env, obj, 1444 return Java_AwContents_onRenderProcessGoneDetail(env, obj, child_process_id,
1452 child_process_id, crashed); 1445 crashed);
1453 } 1446 }
1454 1447
1455 void AwContents::RenderProcessReady(content::RenderProcessHost* host) { 1448 void AwContents::RenderProcessReady(content::RenderProcessHost* host) {
1456 UpdateRendererPriority(); 1449 UpdateRendererPriority();
1457 } 1450 }
1458 1451
1459 } // namespace android_webview 1452 } // namespace android_webview
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698