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

Side by Side Diff: content/browser/web_contents/web_contents_android.cc

Issue 2667283007: Refactor Samsung SmartClip implementation. (Closed)
Patch Set: Really apply code review comments Created 3 years, 10 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
« no previous file with comments | « content/browser/web_contents/web_contents_android.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/web_contents/web_contents_android.h" 5 #include "content/browser/web_contents/web_contents_android.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 65
66 void JavaScriptResultCallback(const ScopedJavaGlobalRef<jobject>& callback, 66 void JavaScriptResultCallback(const ScopedJavaGlobalRef<jobject>& callback,
67 const base::Value* result) { 67 const base::Value* result) {
68 JNIEnv* env = base::android::AttachCurrentThread(); 68 JNIEnv* env = base::android::AttachCurrentThread();
69 std::string json; 69 std::string json;
70 base::JSONWriter::Write(*result, &json); 70 base::JSONWriter::Write(*result, &json);
71 ScopedJavaLocalRef<jstring> j_json = ConvertUTF8ToJavaString(env, json); 71 ScopedJavaLocalRef<jstring> j_json = ConvertUTF8ToJavaString(env, json);
72 Java_WebContentsImpl_onEvaluateJavaScriptResult(env, j_json, callback); 72 Java_WebContentsImpl_onEvaluateJavaScriptResult(env, j_json, callback);
73 } 73 }
74 74
75 void SmartClipCallback(const ScopedJavaGlobalRef<jobject>& callback,
76 const base::string16& text,
77 const base::string16& html) {
78 JNIEnv* env = base::android::AttachCurrentThread();
79 ScopedJavaLocalRef<jstring> jtext = ConvertUTF16ToJavaString(env, text);
80 ScopedJavaLocalRef<jstring> jhtml = ConvertUTF16ToJavaString(env, html);
81 Java_WebContentsImpl_onSmartClipDataExtracted(env, jtext, jhtml, callback);
82 }
83
75 struct AccessibilitySnapshotParams { 84 struct AccessibilitySnapshotParams {
76 AccessibilitySnapshotParams() 85 AccessibilitySnapshotParams()
77 : has_tree_data(false), should_select_leaf_nodes(false) {} 86 : has_tree_data(false), should_select_leaf_nodes(false) {}
78 87
79 bool has_tree_data; 88 bool has_tree_data;
80 // The current text selection within this tree, if any, expressed as the 89 // The current text selection within this tree, if any, expressed as the
81 // node ID and character offset of the anchor (selection start) and focus 90 // node ID and character offset of the anchor (selection start) and focus
82 // (selection end). 91 // (selection end).
83 int32_t sel_anchor_object_id; 92 int32_t sel_anchor_object_id;
84 int32_t sel_anchor_offset; 93 int32_t sel_anchor_offset;
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 const JavaParamRef<jobject>& jobj) { 599 const JavaParamRef<jobject>& jobj) {
591 return static_cast<WebContentsImpl*>(web_contents_)-> 600 return static_cast<WebContentsImpl*>(web_contents_)->
592 HasAccessedInitialDocument(); 601 HasAccessedInitialDocument();
593 } 602 }
594 603
595 jint WebContentsAndroid::GetThemeColor(JNIEnv* env, 604 jint WebContentsAndroid::GetThemeColor(JNIEnv* env,
596 const JavaParamRef<jobject>& obj) { 605 const JavaParamRef<jobject>& obj) {
597 return web_contents_->GetThemeColor(); 606 return web_contents_->GetThemeColor();
598 } 607 }
599 608
609 void WebContentsAndroid::RequestSmartClipExtract(
610 JNIEnv* env,
611 const JavaParamRef<jobject>& obj,
612 const JavaParamRef<jobject>& callback,
613 jint x,
614 jint y,
615 jint width,
616 jint height) {
617 // Secure the Java callback in a scoped object and give ownership of it to the
618 // base::Callback.
619 ScopedJavaGlobalRef<jobject> j_callback;
620 j_callback.Reset(env, callback);
621
622 RenderFrameHostImpl::SmartClipCallback smart_clip_callback =
623 base::Bind(&SmartClipCallback, j_callback);
624
625 web_contents_->GetMainFrame()->RequestSmartClipExtract(
626 smart_clip_callback, gfx::Rect(x, y, width, height));
627 }
628
600 void WebContentsAndroid::RequestAccessibilitySnapshot( 629 void WebContentsAndroid::RequestAccessibilitySnapshot(
601 JNIEnv* env, 630 JNIEnv* env,
602 const JavaParamRef<jobject>& obj, 631 const JavaParamRef<jobject>& obj,
603 const JavaParamRef<jobject>& callback) { 632 const JavaParamRef<jobject>& callback) {
604 // Secure the Java callback in a scoped object and give ownership of it to the 633 // Secure the Java callback in a scoped object and give ownership of it to the
605 // base::Callback. 634 // base::Callback.
606 ScopedJavaGlobalRef<jobject> j_callback; 635 ScopedJavaGlobalRef<jobject> j_callback;
607 j_callback.Reset(env, callback); 636 j_callback.Reset(env, callback);
608 637
609 WebContentsImpl::AXTreeSnapshotCallback snapshot_callback = 638 WebContentsImpl::AXTreeSnapshotCallback snapshot_callback =
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
734 env, obj, callback, id, http_status_code, jurl, jbitmaps, jsizes); 763 env, obj, callback, id, http_status_code, jurl, jbitmaps, jsizes);
735 } 764 }
736 765
737 void WebContentsAndroid::SetMediaSession( 766 void WebContentsAndroid::SetMediaSession(
738 const ScopedJavaLocalRef<jobject>& j_media_session) { 767 const ScopedJavaLocalRef<jobject>& j_media_session) {
739 JNIEnv* env = base::android::AttachCurrentThread(); 768 JNIEnv* env = base::android::AttachCurrentThread();
740 Java_WebContentsImpl_setMediaSession(env, obj_, j_media_session); 769 Java_WebContentsImpl_setMediaSession(env, obj_, j_media_session);
741 } 770 }
742 771
743 } // namespace content 772 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_android.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698