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

Side by Side Diff: content/browser/android/content_view_core_impl.cc

Issue 2135493002: Support dragging texts out of webview/Chrome. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Support dragging texts out of webview/Chrome. Created 4 years, 5 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
OLDNEW
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 "content/browser/android/content_view_core_impl.h" 5 #include "content/browser/android/content_view_core_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 #include "ui/android/view_android.h" 58 #include "ui/android/view_android.h"
59 #include "ui/android/window_android.h" 59 #include "ui/android/window_android.h"
60 #include "ui/base/clipboard/clipboard.h" 60 #include "ui/base/clipboard/clipboard.h"
61 #include "ui/events/android/motion_event_android.h" 61 #include "ui/events/android/motion_event_android.h"
62 #include "ui/events/blink/blink_event_util.h" 62 #include "ui/events/blink/blink_event_util.h"
63 #include "ui/events/event_utils.h" 63 #include "ui/events/event_utils.h"
64 #include "ui/gfx/android/java_bitmap.h" 64 #include "ui/gfx/android/java_bitmap.h"
65 #include "ui/gfx/geometry/point_conversions.h" 65 #include "ui/gfx/geometry/point_conversions.h"
66 #include "ui/gfx/geometry/size_conversions.h" 66 #include "ui/gfx/geometry/size_conversions.h"
67 #include "ui/gfx/geometry/size_f.h" 67 #include "ui/gfx/geometry/size_f.h"
68 #include "ui/gfx/image/image_skia.h"
68 69
69 using base::android::AttachCurrentThread; 70 using base::android::AttachCurrentThread;
70 using base::android::ConvertJavaStringToUTF16; 71 using base::android::ConvertJavaStringToUTF16;
71 using base::android::ConvertJavaStringToUTF8; 72 using base::android::ConvertJavaStringToUTF8;
72 using base::android::ConvertUTF16ToJavaString; 73 using base::android::ConvertUTF16ToJavaString;
73 using base::android::ConvertUTF8ToJavaString; 74 using base::android::ConvertUTF8ToJavaString;
74 using base::android::ScopedJavaLocalRef; 75 using base::android::ScopedJavaLocalRef;
75 using blink::WebGestureEvent; 76 using blink::WebGestureEvent;
76 using blink::WebInputEvent; 77 using blink::WebInputEvent;
77 78
(...skipping 1444 matching lines...) Expand 10 before | Expand all | Expand 10 after
1522 drop_data.html = base::NullableString16(text_to_drop, false); 1523 drop_data.html = base::NullableString16(text_to_drop, false);
1523 } 1524 }
1524 } 1525 }
1525 1526
1526 wcva->OnPerformDrop(&drop_data, location, screen_location); 1527 wcva->OnPerformDrop(&drop_data, location, screen_location);
1527 break; 1528 break;
1528 } 1529 }
1529 case JNI_DragEvent::ACTION_DRAG_EXITED: 1530 case JNI_DragEvent::ACTION_DRAG_EXITED:
1530 wcva->OnDragExited(); 1531 wcva->OnDragExited();
1531 break; 1532 break;
1532 default: // STARTED and ENDED. Nothing meaningful to do. 1533 case JNI_DragEvent::ACTION_DRAG_ENDED:
1534 wcva->OnDragEnded();
1535 break;
1536 case JNI_DragEvent::ACTION_DRAG_STARTED:
1537 // Nothing meaningful to do.
1533 break; 1538 break;
1534 } 1539 }
1535 } 1540 }
1536 1541
1537 void ContentViewCoreImpl::RequestTextSurroundingSelection( 1542 void ContentViewCoreImpl::RequestTextSurroundingSelection(
1538 int max_length, 1543 int max_length,
1539 const base::Callback< 1544 const base::Callback<
1540 void(const base::string16& content, int start_offset, int end_offset)>& 1545 void(const base::string16& content, int start_offset, int end_offset)>&
1541 callback) { 1546 callback) {
1542 DCHECK(!callback.is_null()); 1547 DCHECK(!callback.is_null());
(...skipping 11 matching lines...) Expand all
1554 void ContentViewCoreImpl::OnShowUnhandledTapUIIfNeeded(int x_dip, int y_dip) { 1559 void ContentViewCoreImpl::OnShowUnhandledTapUIIfNeeded(int x_dip, int y_dip) {
1555 JNIEnv* env = AttachCurrentThread(); 1560 JNIEnv* env = AttachCurrentThread();
1556 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 1561 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1557 if (obj.is_null()) 1562 if (obj.is_null())
1558 return; 1563 return;
1559 Java_ContentViewCore_onShowUnhandledTapUIIfNeeded( 1564 Java_ContentViewCore_onShowUnhandledTapUIIfNeeded(
1560 env, obj.obj(), static_cast<jint>(x_dip * dpi_scale()), 1565 env, obj.obj(), static_cast<jint>(x_dip * dpi_scale()),
1561 static_cast<jint>(y_dip * dpi_scale())); 1566 static_cast<jint>(y_dip * dpi_scale()));
1562 } 1567 }
1563 1568
1569 void ContentViewCoreImpl::StartDragging(const base::string16& dragged_text,
1570 const gfx::ImageSkia& image) {
1571 JNIEnv* env = AttachCurrentThread();
1572 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1573 if (obj.is_null())
1574 return;
1575
1576 ScopedJavaLocalRef<jstring> jtext =
1577 ConvertUTF16ToJavaString(env, dragged_text);
1578 Java_ContentViewCore_startDragging(
1579 env, obj.obj(), jtext.obj(),
1580 gfx::ConvertToJavaBitmap(image.bitmap()).obj());
1581 }
1582
1564 void ContentViewCoreImpl::OnSmartClipDataExtracted( 1583 void ContentViewCoreImpl::OnSmartClipDataExtracted(
1565 const base::string16& text, 1584 const base::string16& text,
1566 const base::string16& html, 1585 const base::string16& html,
1567 const gfx::Rect& clip_rect) { 1586 const gfx::Rect& clip_rect) {
1568 JNIEnv* env = AttachCurrentThread(); 1587 JNIEnv* env = AttachCurrentThread();
1569 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 1588 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1570 if (obj.is_null()) 1589 if (obj.is_null())
1571 return; 1590 return;
1572 ScopedJavaLocalRef<jstring> jtext = ConvertUTF16ToJavaString(env, text); 1591 ScopedJavaLocalRef<jstring> jtext = ConvertUTF16ToJavaString(env, text);
1573 ScopedJavaLocalRef<jstring> jhtml = ConvertUTF16ToJavaString(env, html); 1592 ScopedJavaLocalRef<jstring> jhtml = ConvertUTF16ToJavaString(env, html);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1642 return ScopedJavaLocalRef<jobject>(); 1661 return ScopedJavaLocalRef<jobject>();
1643 1662
1644 return view->GetJavaObject(); 1663 return view->GetJavaObject();
1645 } 1664 }
1646 1665
1647 bool RegisterContentViewCore(JNIEnv* env) { 1666 bool RegisterContentViewCore(JNIEnv* env) {
1648 return RegisterNativesImpl(env) && JNI_DragEvent::RegisterNativesImpl(env); 1667 return RegisterNativesImpl(env) && JNI_DragEvent::RegisterNativesImpl(env);
1649 } 1668 }
1650 1669
1651 } // namespace content 1670 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698