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

Unified Diff: android_webview/native/aw_contents.cc

Issue 10890024: Implement DocuementHasImages (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: android_webview/native/aw_contents.cc
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index ce29d18fc0fc12112ced8b2336b290564114bc6b..92b28b1612c5705ee4029a439d50490fe6da3866 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -4,22 +4,40 @@
#include "android_webview/native/aw_contents.h"
+#include "android_webview/browser/renderer_host/aw_render_view_host_ext.h"
#include "android_webview/native/aw_browser_dependency_factory.h"
#include "android_webview/native/aw_contents_container.h"
#include "android_webview/native/aw_web_contents_delegate.h"
#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
+#include "base/bind.h"
+#include "base/callback.h"
#include "content/public/browser/android/content_view_core.h"
#include "content/public/browser/web_contents.h"
#include "jni/AwContents_jni.h"
using base::android::AttachCurrentThread;
using base::android::ConvertUTF16ToJavaString;
+using base::android::ScopedJavaGlobalRef;
+using base::android::ScopedJavaLocalRef;
using content::ContentViewCore;
using content::WebContents;
namespace android_webview {
+namespace {
+
+// |message| is passed as base::Owned, so it will automatically be deleted
+// when the callback goes out of scope.
+void DocumentHasImagesCallback(ScopedJavaGlobalRef<jobject>* message,
+ bool has_images) {
+ Java_AwContents_onDocumentHasImagesResponse(AttachCurrentThread(),
+ has_images,
+ message->obj());
+}
+
+} // namespace
+
AwContents::AwContents(JNIEnv* env,
jobject obj,
jobject web_contents_delegate,
@@ -36,6 +54,7 @@ AwContents::AwContents(JNIEnv* env,
web_contents->SetDelegate(web_contents_delegate_.get());
web_contents_delegate_->SetJavaScriptDialogCreator(
dependency_factory->GetJavaScriptDialogCreator());
+ render_view_host_ext_.reset(new AwRenderViewHostExt(web_contents));
}
AwContents::~AwContents() {
@@ -49,6 +68,13 @@ void AwContents::Destroy(JNIEnv* env, jobject obj) {
delete this;
}
+void AwContents::DocumentHasImages(JNIEnv* env, jobject obj, jobject message) {
+ render_view_host_ext_->DocumentHasImages(
+ base::Bind(&DocumentHasImagesCallback,
+ base::Owned(new ScopedJavaGlobalRef<jobject>(
+ ScopedJavaLocalRef<jobject>(env, message)))));
+}
+
static jint Init(JNIEnv* env,
jobject obj,
jobject web_contents_delegate,

Powered by Google App Engine
This is Rietveld 408576698