| 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 |