OLD | NEW |
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/native/aw_contents.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "android_webview/browser/aw_browser_context.h" | 9 #include "android_webview/browser/aw_browser_context.h" |
10 #include "android_webview/browser/aw_browser_main_parts.h" | 10 #include "android_webview/browser/aw_browser_main_parts.h" |
11 #include "android_webview/browser/aw_resource_context.h" | 11 #include "android_webview/browser/aw_resource_context.h" |
| 12 #include "android_webview/browser/browser_view_renderer.h" |
12 #include "android_webview/browser/gpu_memory_buffer_factory_impl.h" | 13 #include "android_webview/browser/gpu_memory_buffer_factory_impl.h" |
13 #include "android_webview/browser/in_process_view_renderer.h" | |
14 #include "android_webview/browser/net_disk_cache_remover.h" | 14 #include "android_webview/browser/net_disk_cache_remover.h" |
15 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele
gate.h" | 15 #include "android_webview/browser/renderer_host/aw_resource_dispatcher_host_dele
gate.h" |
16 #include "android_webview/common/aw_hit_test_data.h" | 16 #include "android_webview/common/aw_hit_test_data.h" |
17 #include "android_webview/common/devtools_instrumentation.h" | 17 #include "android_webview/common/devtools_instrumentation.h" |
18 #include "android_webview/native/aw_autofill_manager_delegate.h" | 18 #include "android_webview/native/aw_autofill_manager_delegate.h" |
19 #include "android_webview/native/aw_browser_dependency_factory.h" | 19 #include "android_webview/native/aw_browser_dependency_factory.h" |
20 #include "android_webview/native/aw_contents_client_bridge.h" | 20 #include "android_webview/native/aw_contents_client_bridge.h" |
21 #include "android_webview/native/aw_contents_io_thread_client_impl.h" | 21 #include "android_webview/native/aw_contents_io_thread_client_impl.h" |
22 #include "android_webview/native/aw_pdf_exporter.h" | 22 #include "android_webview/native/aw_pdf_exporter.h" |
23 #include "android_webview/native/aw_picture.h" | 23 #include "android_webview/native/aw_picture.h" |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 content::RenderViewHost::FromID(render_process_id, render_view_id); | 178 content::RenderViewHost::FromID(render_process_id, render_view_id); |
179 if (!rvh) return NULL; | 179 if (!rvh) return NULL; |
180 content::WebContents* web_contents = | 180 content::WebContents* web_contents = |
181 content::WebContents::FromRenderViewHost(rvh); | 181 content::WebContents::FromRenderViewHost(rvh); |
182 if (!web_contents) return NULL; | 182 if (!web_contents) return NULL; |
183 return FromWebContents(web_contents); | 183 return FromWebContents(web_contents); |
184 } | 184 } |
185 | 185 |
186 AwContents::AwContents(scoped_ptr<WebContents> web_contents) | 186 AwContents::AwContents(scoped_ptr<WebContents> web_contents) |
187 : web_contents_(web_contents.Pass()), | 187 : web_contents_(web_contents.Pass()), |
188 browser_view_renderer_(new InProcessViewRenderer( | 188 browser_view_renderer_(this, web_contents_.get()) { |
189 this, | |
190 web_contents_.get())) { | |
191 base::subtle::NoBarrier_AtomicIncrement(&g_instance_count, 1); | 189 base::subtle::NoBarrier_AtomicIncrement(&g_instance_count, 1); |
192 icon_helper_.reset(new IconHelper(web_contents_.get())); | 190 icon_helper_.reset(new IconHelper(web_contents_.get())); |
193 icon_helper_->SetListener(this); | 191 icon_helper_->SetListener(this); |
194 web_contents_->SetUserData(kAwContentsUserDataKey, | 192 web_contents_->SetUserData(kAwContentsUserDataKey, |
195 new AwContentsUserData(this)); | 193 new AwContentsUserData(this)); |
196 render_view_host_ext_.reset( | 194 render_view_host_ext_.reset( |
197 new AwRenderViewHostExt(this, web_contents_.get())); | 195 new AwRenderViewHostExt(this, web_contents_.get())); |
198 | 196 |
199 AwAutofillManagerDelegate* autofill_manager_delegate = | 197 AwAutofillManagerDelegate* autofill_manager_delegate = |
200 AwAutofillManagerDelegate::FromWebContents(web_contents_.get()); | 198 AwAutofillManagerDelegate::FromWebContents(web_contents_.get()); |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 return reinterpret_cast<jint>(&DrawGLFunction); | 350 return reinterpret_cast<jint>(&DrawGLFunction); |
353 } | 351 } |
354 | 352 |
355 // static | 353 // static |
356 jint GetNativeInstanceCount(JNIEnv* env, jclass) { | 354 jint GetNativeInstanceCount(JNIEnv* env, jclass) { |
357 return base::subtle::NoBarrier_Load(&g_instance_count); | 355 return base::subtle::NoBarrier_Load(&g_instance_count); |
358 } | 356 } |
359 | 357 |
360 jint AwContents::GetAwDrawGLViewContext(JNIEnv* env, jobject obj) { | 358 jint AwContents::GetAwDrawGLViewContext(JNIEnv* env, jobject obj) { |
361 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
362 return reinterpret_cast<jint>(browser_view_renderer_.get()); | 360 return reinterpret_cast<jint>(&browser_view_renderer_); |
363 } | 361 } |
364 | 362 |
365 namespace { | 363 namespace { |
366 void DocumentHasImagesCallback(const ScopedJavaGlobalRef<jobject>& message, | 364 void DocumentHasImagesCallback(const ScopedJavaGlobalRef<jobject>& message, |
367 bool has_images) { | 365 bool has_images) { |
368 Java_AwContents_onDocumentHasImagesResponse(AttachCurrentThread(), | 366 Java_AwContents_onDocumentHasImagesResponse(AttachCurrentThread(), |
369 has_images, | 367 has_images, |
370 message.obj()); | 368 message.obj()); |
371 } | 369 } |
372 } // namespace | 370 } // namespace |
(...skipping 28 matching lines...) Expand all Loading... |
401 target_path, | 399 target_path, |
402 base::Bind(&GenerateMHTMLCallback, base::Owned(j_callback), target_path)); | 400 base::Bind(&GenerateMHTMLCallback, base::Owned(j_callback), target_path)); |
403 } | 401 } |
404 | 402 |
405 void AwContents::CreatePdfExporter(JNIEnv* env, | 403 void AwContents::CreatePdfExporter(JNIEnv* env, |
406 jobject obj, | 404 jobject obj, |
407 jobject pdfExporter) { | 405 jobject pdfExporter) { |
408 pdf_exporter_.reset( | 406 pdf_exporter_.reset( |
409 new AwPdfExporter(env, | 407 new AwPdfExporter(env, |
410 pdfExporter, | 408 pdfExporter, |
411 browser_view_renderer_.get(), | |
412 web_contents_.get())); | 409 web_contents_.get())); |
413 } | 410 } |
414 | 411 |
415 bool AwContents::OnReceivedHttpAuthRequest(const JavaRef<jobject>& handler, | 412 bool AwContents::OnReceivedHttpAuthRequest(const JavaRef<jobject>& handler, |
416 const std::string& host, | 413 const std::string& host, |
417 const std::string& realm) { | 414 const std::string& realm) { |
418 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 415 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
419 JNIEnv* env = AttachCurrentThread(); | 416 JNIEnv* env = AttachCurrentThread(); |
420 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 417 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
421 if (obj.is_null()) | 418 if (obj.is_null()) |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 data.type, | 723 data.type, |
727 extra_data_for_type.obj(), | 724 extra_data_for_type.obj(), |
728 href.obj(), | 725 href.obj(), |
729 anchor_text.obj(), | 726 anchor_text.obj(), |
730 img_src.obj()); | 727 img_src.obj()); |
731 } | 728 } |
732 | 729 |
733 void AwContents::OnSizeChanged(JNIEnv* env, jobject obj, | 730 void AwContents::OnSizeChanged(JNIEnv* env, jobject obj, |
734 int w, int h, int ow, int oh) { | 731 int w, int h, int ow, int oh) { |
735 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 732 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
736 browser_view_renderer_->OnSizeChanged(w, h); | 733 browser_view_renderer_.OnSizeChanged(w, h); |
737 } | 734 } |
738 | 735 |
739 void AwContents::SetViewVisibility(JNIEnv* env, jobject obj, bool visible) { | 736 void AwContents::SetViewVisibility(JNIEnv* env, jobject obj, bool visible) { |
740 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 737 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
741 browser_view_renderer_->SetViewVisibility(visible); | 738 browser_view_renderer_.SetViewVisibility(visible); |
742 } | 739 } |
743 | 740 |
744 void AwContents::SetWindowVisibility(JNIEnv* env, jobject obj, bool visible) { | 741 void AwContents::SetWindowVisibility(JNIEnv* env, jobject obj, bool visible) { |
745 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 742 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
746 browser_view_renderer_->SetWindowVisibility(visible); | 743 browser_view_renderer_.SetWindowVisibility(visible); |
747 } | 744 } |
748 | 745 |
749 void AwContents::SetIsPaused(JNIEnv* env, jobject obj, bool paused) { | 746 void AwContents::SetIsPaused(JNIEnv* env, jobject obj, bool paused) { |
750 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 747 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
751 browser_view_renderer_->SetIsPaused(paused); | 748 browser_view_renderer_.SetIsPaused(paused); |
752 ContentViewCore* cvc = | 749 ContentViewCore* cvc = |
753 ContentViewCore::FromWebContents(web_contents_.get()); | 750 ContentViewCore::FromWebContents(web_contents_.get()); |
754 if (cvc) { | 751 if (cvc) { |
755 cvc->PauseOrResumeGeolocation(paused); | 752 cvc->PauseOrResumeGeolocation(paused); |
756 if (paused) { | 753 if (paused) { |
757 cvc->PauseVideo(); | 754 cvc->PauseVideo(); |
758 } | 755 } |
759 } | 756 } |
760 } | 757 } |
761 | 758 |
762 void AwContents::OnAttachedToWindow(JNIEnv* env, jobject obj, int w, int h) { | 759 void AwContents::OnAttachedToWindow(JNIEnv* env, jobject obj, int w, int h) { |
763 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 760 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
764 browser_view_renderer_->OnAttachedToWindow(w, h); | 761 browser_view_renderer_.OnAttachedToWindow(w, h); |
765 } | 762 } |
766 | 763 |
767 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { | 764 void AwContents::OnDetachedFromWindow(JNIEnv* env, jobject obj) { |
768 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 765 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
769 browser_view_renderer_->OnDetachedFromWindow(); | 766 browser_view_renderer_.OnDetachedFromWindow(); |
770 } | 767 } |
771 | 768 |
772 base::android::ScopedJavaLocalRef<jbyteArray> | 769 base::android::ScopedJavaLocalRef<jbyteArray> |
773 AwContents::GetOpaqueState(JNIEnv* env, jobject obj) { | 770 AwContents::GetOpaqueState(JNIEnv* env, jobject obj) { |
774 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 771 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
775 // Required optimization in WebViewClassic to not save any state if | 772 // Required optimization in WebViewClassic to not save any state if |
776 // there has been no navigations. | 773 // there has been no navigations. |
777 if (!web_contents_->GetController().GetEntryCount()) | 774 if (!web_contents_->GetController().GetEntryCount()) |
778 return ScopedJavaLocalRef<jbyteArray>(); | 775 return ScopedJavaLocalRef<jbyteArray>(); |
779 | 776 |
(...skipping 25 matching lines...) Expand all Loading... |
805 jobject obj, | 802 jobject obj, |
806 jobject canvas, | 803 jobject canvas, |
807 jboolean is_hardware_accelerated, | 804 jboolean is_hardware_accelerated, |
808 jint scroll_x, | 805 jint scroll_x, |
809 jint scroll_y, | 806 jint scroll_y, |
810 jint clip_left, | 807 jint clip_left, |
811 jint clip_top, | 808 jint clip_top, |
812 jint clip_right, | 809 jint clip_right, |
813 jint clip_bottom) { | 810 jint clip_bottom) { |
814 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 811 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
815 return browser_view_renderer_->OnDraw( | 812 return browser_view_renderer_.OnDraw( |
816 canvas, | 813 canvas, |
817 is_hardware_accelerated, | 814 is_hardware_accelerated, |
818 gfx::Vector2d(scroll_x, scroll_y), | 815 gfx::Vector2d(scroll_x, scroll_y), |
819 gfx::Rect( | 816 gfx::Rect( |
820 clip_left, clip_top, clip_right - clip_left, clip_bottom - clip_top)); | 817 clip_left, clip_top, clip_right - clip_left, clip_bottom - clip_top)); |
821 } | 818 } |
822 | 819 |
823 void AwContents::SetGlobalVisibleRect(JNIEnv* env, | 820 void AwContents::SetGlobalVisibleRect(JNIEnv* env, |
824 jobject obj, | 821 jobject obj, |
825 jint visible_left, | 822 jint visible_left, |
826 jint visible_top, | 823 jint visible_top, |
827 jint visible_right, | 824 jint visible_right, |
828 jint visible_bottom) { | 825 jint visible_bottom) { |
829 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 826 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
830 browser_view_renderer_->SetGlobalVisibleRect( | 827 browser_view_renderer_.SetGlobalVisibleRect( |
831 gfx::Rect(visible_left, | 828 gfx::Rect(visible_left, |
832 visible_top, | 829 visible_top, |
833 visible_right - visible_left, | 830 visible_right - visible_left, |
834 visible_bottom - visible_top)); | 831 visible_bottom - visible_top)); |
835 } | 832 } |
836 | 833 |
837 void AwContents::SetPendingWebContentsForPopup( | 834 void AwContents::SetPendingWebContentsForPopup( |
838 scoped_ptr<content::WebContents> pending) { | 835 scoped_ptr<content::WebContents> pending) { |
839 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 836 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
840 if (pending_contents_.get()) { | 837 if (pending_contents_.get()) { |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta) { | 931 void AwContents::DidOverscroll(gfx::Vector2d overscroll_delta) { |
935 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 932 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
936 JNIEnv* env = AttachCurrentThread(); | 933 JNIEnv* env = AttachCurrentThread(); |
937 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 934 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
938 if (obj.is_null()) | 935 if (obj.is_null()) |
939 return; | 936 return; |
940 Java_AwContents_didOverscroll( | 937 Java_AwContents_didOverscroll( |
941 env, obj.obj(), overscroll_delta.x(), overscroll_delta.y()); | 938 env, obj.obj(), overscroll_delta.x(), overscroll_delta.y()); |
942 } | 939 } |
943 | 940 |
| 941 const BrowserViewRenderer* AwContents::GetBrowserViewRenderer() const { |
| 942 return &browser_view_renderer_; |
| 943 } |
| 944 |
944 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { | 945 void AwContents::SetDipScale(JNIEnv* env, jobject obj, jfloat dip_scale) { |
945 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 946 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
946 browser_view_renderer_->SetDipScale(dip_scale); | 947 browser_view_renderer_.SetDipScale(dip_scale); |
947 } | 948 } |
948 | 949 |
949 void AwContents::SetFixedLayoutSize(JNIEnv* env, | 950 void AwContents::SetFixedLayoutSize(JNIEnv* env, |
950 jobject obj, | 951 jobject obj, |
951 jint width_dip, | 952 jint width_dip, |
952 jint height_dip) { | 953 jint height_dip) { |
953 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 954 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
954 render_view_host_ext_->SetFixedLayoutSize(gfx::Size(width_dip, height_dip)); | 955 render_view_host_ext_->SetFixedLayoutSize(gfx::Size(width_dip, height_dip)); |
955 } | 956 } |
956 | 957 |
957 void AwContents::ScrollTo(JNIEnv* env, jobject obj, jint x, jint y) { | 958 void AwContents::ScrollTo(JNIEnv* env, jobject obj, jint x, jint y) { |
958 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 959 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
959 browser_view_renderer_->ScrollTo(gfx::Vector2d(x, y)); | 960 browser_view_renderer_.ScrollTo(gfx::Vector2d(x, y)); |
960 } | 961 } |
961 | 962 |
962 void AwContents::OnWebLayoutPageScaleFactorChanged(float page_scale_factor) { | 963 void AwContents::OnWebLayoutPageScaleFactorChanged(float page_scale_factor) { |
963 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 964 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
964 JNIEnv* env = AttachCurrentThread(); | 965 JNIEnv* env = AttachCurrentThread(); |
965 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 966 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
966 if (obj.is_null()) | 967 if (obj.is_null()) |
967 return; | 968 return; |
968 Java_AwContents_onWebLayoutPageScaleFactorChanged(env, obj.obj(), | 969 Java_AwContents_onWebLayoutPageScaleFactorChanged(env, obj.obj(), |
969 page_scale_factor); | 970 page_scale_factor); |
970 } | 971 } |
971 | 972 |
972 void AwContents::OnWebLayoutContentsSizeChanged( | 973 void AwContents::OnWebLayoutContentsSizeChanged( |
973 const gfx::Size& contents_size) { | 974 const gfx::Size& contents_size) { |
974 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 975 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
975 JNIEnv* env = AttachCurrentThread(); | 976 JNIEnv* env = AttachCurrentThread(); |
976 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); | 977 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); |
977 if (obj.is_null()) | 978 if (obj.is_null()) |
978 return; | 979 return; |
979 Java_AwContents_onWebLayoutContentsSizeChanged( | 980 Java_AwContents_onWebLayoutContentsSizeChanged( |
980 env, obj.obj(), contents_size.width(), contents_size.height()); | 981 env, obj.obj(), contents_size.width(), contents_size.height()); |
981 } | 982 } |
982 | 983 |
983 jlong AwContents::CapturePicture(JNIEnv* env, | 984 jlong AwContents::CapturePicture(JNIEnv* env, |
984 jobject obj, | 985 jobject obj, |
985 int width, | 986 int width, |
986 int height) { | 987 int height) { |
987 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 988 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
988 return reinterpret_cast<intptr_t>(new AwPicture( | 989 return reinterpret_cast<intptr_t>( |
989 browser_view_renderer_->CapturePicture(width, height))); | 990 new AwPicture(browser_view_renderer_.CapturePicture(width, height))); |
990 } | 991 } |
991 | 992 |
992 void AwContents::EnableOnNewPicture(JNIEnv* env, | 993 void AwContents::EnableOnNewPicture(JNIEnv* env, |
993 jobject obj, | 994 jobject obj, |
994 jboolean enabled) { | 995 jboolean enabled) { |
995 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 996 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
996 browser_view_renderer_->EnableOnNewPicture(enabled); | 997 browser_view_renderer_.EnableOnNewPicture(enabled); |
997 } | 998 } |
998 | 999 |
999 void AwContents::ClearView(JNIEnv* env, jobject obj) { | 1000 void AwContents::ClearView(JNIEnv* env, jobject obj) { |
1000 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1001 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1001 browser_view_renderer_->ClearView(); | 1002 browser_view_renderer_.ClearView(); |
1002 } | 1003 } |
1003 | 1004 |
1004 void AwContents::SetExtraHeadersForUrl(JNIEnv* env, jobject obj, | 1005 void AwContents::SetExtraHeadersForUrl(JNIEnv* env, jobject obj, |
1005 jstring url, jstring jextra_headers) { | 1006 jstring url, jstring jextra_headers) { |
1006 std::string extra_headers; | 1007 std::string extra_headers; |
1007 if (jextra_headers) | 1008 if (jextra_headers) |
1008 extra_headers = ConvertJavaStringToUTF8(env, jextra_headers); | 1009 extra_headers = ConvertJavaStringToUTF8(env, jextra_headers); |
1009 AwResourceContext* resource_context = static_cast<AwResourceContext*>( | 1010 AwResourceContext* resource_context = static_cast<AwResourceContext*>( |
1010 AwBrowserContext::FromWebContents(web_contents_.get())-> | 1011 AwBrowserContext::FromWebContents(web_contents_.get())-> |
1011 GetResourceContext()); | 1012 GetResourceContext()); |
1012 resource_context->SetExtraHeaders(GURL(ConvertJavaStringToUTF8(env, url)), | 1013 resource_context->SetExtraHeaders(GURL(ConvertJavaStringToUTF8(env, url)), |
1013 extra_headers); | 1014 extra_headers); |
1014 } | 1015 } |
1015 | 1016 |
1016 void AwContents::SetJsOnlineProperty(JNIEnv* env, | 1017 void AwContents::SetJsOnlineProperty(JNIEnv* env, |
1017 jobject obj, | 1018 jobject obj, |
1018 jboolean network_up) { | 1019 jboolean network_up) { |
1019 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1020 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1020 render_view_host_ext_->SetJsOnlineProperty(network_up); | 1021 render_view_host_ext_->SetJsOnlineProperty(network_up); |
1021 } | 1022 } |
1022 | 1023 |
1023 void AwContents::TrimMemory(JNIEnv* env, jobject obj, jint level) { | 1024 void AwContents::TrimMemory(JNIEnv* env, jobject obj, jint level) { |
1024 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1025 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1025 browser_view_renderer_->TrimMemory(level); | 1026 browser_view_renderer_.TrimMemory(level); |
1026 } | 1027 } |
1027 | 1028 |
1028 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { | 1029 void SetShouldDownloadFavicons(JNIEnv* env, jclass jclazz) { |
1029 g_should_download_favicons = true; | 1030 g_should_download_favicons = true; |
1030 } | 1031 } |
1031 | 1032 |
1032 } // namespace android_webview | 1033 } // namespace android_webview |
OLD | NEW |