summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 17:52:28 +0000
committerjdduke@chromium.org <jdduke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-07-18 17:52:28 +0000
commitcc71955068e5129a7dd03d2b7eb36ab80e326a54 (patch)
tree89e07211b68292dde333cb825c46be1b3cc05405
parenta2b4a08781fd32ecfff1a0be681e79c1a75a8909 (diff)
downloadchromium_src-cc71955068e5129a7dd03d2b7eb36ab80e326a54.zip
chromium_src-cc71955068e5129a7dd03d2b7eb36ab80e326a54.tar.gz
chromium_src-cc71955068e5129a7dd03d2b7eb36ab80e326a54.tar.bz2
Merge 283159 "[Android] Extend smart clip to return html along w..."
> [Android] Extend smart clip to return html along with text > > BUG=388961 > > Review URL: https://codereview.chromium.org/378233002 TBR=changwan@chromium.org Review URL: https://codereview.chromium.org/398633003 git-svn-id: svn://svn.chromium.org/chrome/branches/1985_122/src@284148 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewTest.java33
-rw-r--r--content/browser/android/content_view_core_impl.cc10
-rw-r--r--content/browser/android/content_view_core_impl.h5
-rw-r--r--content/browser/renderer_host/render_widget_host_view_android.cc5
-rw-r--r--content/browser/renderer_host/render_widget_host_view_android.h3
-rw-r--r--content/common/view_messages.h5
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentView.java5
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java6
-rw-r--r--content/renderer/render_view_impl_android.cc5
9 files changed, 55 insertions, 22 deletions
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewTest.java
index de75d28..abfb652 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ContentViewTest.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser;
+import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
@@ -33,14 +34,32 @@ public class ContentViewTest extends ChromeShellTestBase implements Handler.Call
return mUrl;
}
- public void notifyCalled(String title, String url) {
+ public String getText() {
+ return mText;
+ }
+
+ public String getHtml() {
+ return mHtml;
+ }
+
+ public Rect getRect() {
+ return mRect;
+ }
+
+ public void notifyCalled(String title, String url, String text, String html, Rect rect) {
mTitle = title;
mUrl = url;
+ mText = text;
+ mHtml = html;
+ mRect = rect;
super.notifyCalled();
}
private String mTitle;
private String mUrl;
+ private String mText;
+ private String mHtml;
+ private Rect mRect;
}
private ChromeShellActivity mActivity;
@@ -74,8 +93,11 @@ public class ContentViewTest extends ChromeShellTestBase implements Handler.Call
assertNotNull(bundle);
String url = bundle.getString("url");
String title = bundle.getString("title");
+ String text = bundle.getString("text");
+ String html = bundle.getString("html");
+ Rect rect = bundle.getParcelable("rect");
// We don't care about other values for now.
- mCallbackHelper.notifyCalled(title, url);
+ mCallbackHelper.notifyCalled(title, url, text, html, rect);
return true;
}
@@ -92,7 +114,10 @@ public class ContentViewTest extends ChromeShellTestBase implements Handler.Call
}
});
mCallbackHelper.waitForCallback(0, 1); // call count: 0 --> 1
- assertNotNull("about:blank", mCallbackHelper.getTitle());
- assertNotNull("about:blank", mCallbackHelper.getUrl());
+ assertEquals("about:blank", mCallbackHelper.getTitle());
+ assertEquals("about:blank", mCallbackHelper.getUrl());
+ assertNotNull(mCallbackHelper.getText());
+ assertNotNull(mCallbackHelper.getHtml());
+ assertNotNull(mCallbackHelper.getRect());
}
}
diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc
index 2c8dc1d..12fa472 100644
--- a/content/browser/android/content_view_core_impl.cc
+++ b/content/browser/android/content_view_core_impl.cc
@@ -1667,16 +1667,18 @@ jint ContentViewCoreImpl::GetCurrentRenderProcessId(JNIEnv* env, jobject obj) {
}
void ContentViewCoreImpl::OnSmartClipDataExtracted(
- const gfx::Rect& clip_rect,
- const base::string16& result) {
+ const base::string16& text,
+ const base::string16& html,
+ const gfx::Rect& clip_rect) {
JNIEnv* env = AttachCurrentThread();
ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
if (obj.is_null())
return;
+ ScopedJavaLocalRef<jstring> jtext = ConvertUTF16ToJavaString(env, text);
+ ScopedJavaLocalRef<jstring> jhtml = ConvertUTF16ToJavaString(env, html);
ScopedJavaLocalRef<jobject> clip_rect_object(CreateJavaRect(env, clip_rect));
- ScopedJavaLocalRef<jstring> jresult = ConvertUTF16ToJavaString(env, result);
Java_ContentViewCore_onSmartClipDataExtracted(
- env, obj.obj(), jresult.obj(), clip_rect_object.obj());
+ env, obj.obj(), jtext.obj(), jhtml.obj(), clip_rect_object.obj());
}
void ContentViewCoreImpl::WebContentsDestroyed() {
diff --git a/content/browser/android/content_view_core_impl.h b/content/browser/android/content_view_core_impl.h
index f0df25a..0b224f36 100644
--- a/content/browser/android/content_view_core_impl.h
+++ b/content/browser/android/content_view_core_impl.h
@@ -230,8 +230,9 @@ class ContentViewCoreImpl : public ContentViewCore,
// Public methods that call to Java via JNI
// --------------------------------------------------------------------------
- void OnSmartClipDataExtracted(const gfx::Rect& clip_rect,
- const base::string16& result);
+ void OnSmartClipDataExtracted(const base::string16& text,
+ const base::string16& html,
+ const gfx::Rect& clip_rect);
// Creates a popup menu with |items|.
// |multiple| defines if it should support multi-select.
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
index b2ce738..dfbbe2a 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -556,10 +556,11 @@ void RenderWidgetHostViewAndroid::OnStartContentIntent(
}
void RenderWidgetHostViewAndroid::OnSmartClipDataExtracted(
- const base::string16& result,
+ const base::string16& text,
+ const base::string16& html,
const gfx::Rect rect) {
if (content_view_core_)
- content_view_core_->OnSmartClipDataExtracted(rect, result);
+ content_view_core_->OnSmartClipDataExtracted(text, html, rect);
}
bool RenderWidgetHostViewAndroid::OnTouchEvent(
diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h
index 9f1bce10..025caa6 100644
--- a/content/browser/renderer_host/render_widget_host_view_android.h
+++ b/content/browser/renderer_host/render_widget_host_view_android.h
@@ -211,7 +211,8 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid
void OnDidOverscroll(const DidOverscrollParams& params);
void OnStartContentIntent(const GURL& content_url);
void OnSetNeedsBeginFrame(bool enabled);
- void OnSmartClipDataExtracted(const base::string16& result,
+ void OnSmartClipDataExtracted(const base::string16& text,
+ const base::string16& html,
const gfx::Rect rect);
bool OnTouchEvent(const ui::MotionEvent& event);
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index c2bdcd3..8264065 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -1724,8 +1724,9 @@ IPC_MESSAGE_ROUTED1(ViewHostMsg_SetNeedsBeginFrame,
bool /* enabled */)
// Reply to the ViewMsg_ExtractSmartClipData message.
-IPC_MESSAGE_ROUTED2(ViewHostMsg_SmartClipDataExtracted,
- base::string16 /* result */,
+IPC_MESSAGE_ROUTED3(ViewHostMsg_SmartClipDataExtracted,
+ base::string16 /* text */,
+ base::string16 /* html */,
gfx::Rect /* rect */)
#elif defined(OS_MACOSX)
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentView.java b/content/public/android/java/src/org/chromium/content/browser/ContentView.java
index a41a6fa..e733a9a 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentView.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentView.java
@@ -313,12 +313,13 @@ public class ContentView extends FrameLayout
return;
}
mContentViewCore.setSmartClipDataListener(new ContentViewCore.SmartClipDataListener() {
- public void onSmartClipDataExtracted(String text, Rect clipRect) {
+ public void onSmartClipDataExtracted(String text, String html, Rect clipRect) {
Bundle bundle = new Bundle();
bundle.putString("url", mContentViewCore.getWebContents().getVisibleUrl());
bundle.putString("title", mContentViewCore.getWebContents().getTitle());
- bundle.putParcelable("area", clipRect);
+ bundle.putParcelable("rect", clipRect);
bundle.putString("text", text);
+ bundle.putString("html", html);
try {
Message msg = Message.obtain(resultHandler, 0);
msg.setData(bundle);
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
index 716f0cc..e632f52 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewCore.java
@@ -216,7 +216,7 @@ public class ContentViewCore
* extractSmartClipData are available.
*/
public interface SmartClipDataListener {
- public void onSmartClipDataExtracted(String result, Rect cliprect);
+ public void onSmartClipDataExtracted(String text, String html, Rect clipRect);
}
private final Context mContext;
@@ -3066,9 +3066,9 @@ public class ContentViewCore
}
@CalledByNative
- private void onSmartClipDataExtracted(String result, Rect cliprect) {
+ private void onSmartClipDataExtracted(String text, String html, Rect clipRect) {
if (mSmartClipDataListener != null ) {
- mSmartClipDataListener.onSmartClipDataExtracted(result, cliprect);
+ mSmartClipDataListener.onSmartClipDataExtracted(text, html, clipRect);
}
}
diff --git a/content/renderer/render_view_impl_android.cc b/content/renderer/render_view_impl_android.cc
index d16f9e7..d3e81ad 100644
--- a/content/renderer/render_view_impl_android.cc
+++ b/content/renderer/render_view_impl_android.cc
@@ -67,10 +67,11 @@ void RenderViewImpl::didScrollWithKeyboard(const blink::WebSize& delta) {
void RenderViewImpl::OnExtractSmartClipData(const gfx::Rect& rect) {
blink::WebString clip_text;
+ blink::WebString clip_html;
blink::WebRect clip_rect;
- webview()->getSmartClipData(rect, clip_text, clip_rect);
+ webview()->extractSmartClipData(rect, clip_text, clip_html, clip_rect);
Send(new ViewHostMsg_SmartClipDataExtracted(
- routing_id_, clip_text, clip_rect));
+ routing_id_, clip_text, clip_html, clip_rect));
}
void RenderViewImpl::GetSelectionRootBounds(gfx::Rect* bounds) const {