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 "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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
47 #include "content/public/browser/ssl_host_state_delegate.h" | 47 #include "content/public/browser/ssl_host_state_delegate.h" |
48 #include "content/public/browser/web_contents.h" | 48 #include "content/public/browser/web_contents.h" |
49 #include "content/public/common/content_client.h" | 49 #include "content/public/common/content_client.h" |
50 #include "content/public/common/content_switches.h" | 50 #include "content/public/common/content_switches.h" |
51 #include "content/public/common/menu_item.h" | 51 #include "content/public/common/menu_item.h" |
52 #include "content/public/common/user_agent.h" | 52 #include "content/public/common/user_agent.h" |
53 #include "jni/ContentViewCore_jni.h" | 53 #include "jni/ContentViewCore_jni.h" |
54 #include "third_party/WebKit/public/web/WebInputEvent.h" | 54 #include "third_party/WebKit/public/web/WebInputEvent.h" |
55 #include "ui/android/view_android.h" | 55 #include "ui/android/view_android.h" |
56 #include "ui/android/window_android.h" | 56 #include "ui/android/window_android.h" |
57 #include "ui/base/dragdrop/drop_target_event.h" | |
58 #include "ui/base/dragdrop/os_exchange_data_provider_android.h" | |
57 #include "ui/events/android/motion_event_android.h" | 59 #include "ui/events/android/motion_event_android.h" |
58 #include "ui/gfx/android/java_bitmap.h" | 60 #include "ui/gfx/android/java_bitmap.h" |
59 #include "ui/gfx/geometry/point_conversions.h" | 61 #include "ui/gfx/geometry/point_conversions.h" |
60 #include "ui/gfx/geometry/size_conversions.h" | 62 #include "ui/gfx/geometry/size_conversions.h" |
61 #include "ui/gfx/geometry/size_f.h" | 63 #include "ui/gfx/geometry/size_f.h" |
62 | 64 |
63 using base::android::AttachCurrentThread; | 65 using base::android::AttachCurrentThread; |
64 using base::android::ConvertJavaStringToUTF16; | 66 using base::android::ConvertJavaStringToUTF16; |
65 using base::android::ConvertJavaStringToUTF8; | 67 using base::android::ConvertJavaStringToUTF8; |
66 using base::android::ConvertUTF16ToJavaString; | 68 using base::android::ConvertUTF16ToJavaString; |
(...skipping 1335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1402 const JavaParamRef<jobject>& jobj, | 1404 const JavaParamRef<jobject>& jobj, |
1403 jboolean opaque) { | 1405 jboolean opaque) { |
1404 if (GetRenderWidgetHostViewAndroid()) { | 1406 if (GetRenderWidgetHostViewAndroid()) { |
1405 if (opaque) | 1407 if (opaque) |
1406 GetRenderWidgetHostViewAndroid()->SetBackgroundColorToDefault(); | 1408 GetRenderWidgetHostViewAndroid()->SetBackgroundColorToDefault(); |
1407 else | 1409 else |
1408 GetRenderWidgetHostViewAndroid()->SetBackgroundColor(SK_ColorTRANSPARENT); | 1410 GetRenderWidgetHostViewAndroid()->SetBackgroundColor(SK_ColorTRANSPARENT); |
1409 } | 1411 } |
1410 } | 1412 } |
1411 | 1413 |
1414 void ContentViewCoreImpl::OnDragEntered( | |
1415 JNIEnv* env, | |
1416 const base::android::JavaParamRef<jobject>& jobj, | |
1417 int x, | |
1418 int y, | |
1419 int screen_x, | |
1420 int screen_y) { | |
1421 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>( | |
1422 static_cast<WebContentsImpl*>(web_contents())->GetView()); | |
1423 | |
1424 ui::OSExchangeData data(new ui::OSExchangeDataProviderAndroid()); | |
dcheng
2016/02/25 01:18:49
Will there be a followup patch to address the fact
hush (inactive)
2016/02/25 02:40:48
Types are sort of plumbed through. We only support
dcheng
2016/02/25 21:13:38
I don't think I follow: I don't see how the types
hush (inactive)
2016/02/27 01:47:22
Sorry yeah you're right. I just updated the logic
| |
1425 ui::DropTargetEvent event( | |
1426 data, gfx::Point(x, y), gfx::Point(screen_x, screen_y), | |
1427 ui::DragDropTypes::DRAG_COPY); // Android drag and drop does only copy. | |
1428 | |
1429 wcva->OnDragEntered(event); | |
1430 } | |
1431 | |
1432 void ContentViewCoreImpl::OnDragUpdated( | |
1433 JNIEnv* env, | |
1434 const base::android::JavaParamRef<jobject>& jobj, | |
1435 int x, | |
1436 int y, | |
1437 int screen_x, | |
1438 int screen_y) { | |
1439 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>( | |
1440 static_cast<WebContentsImpl*>(web_contents())->GetView()); | |
1441 | |
1442 ui::OSExchangeData data(new ui::OSExchangeDataProviderAndroid()); | |
1443 ui::DropTargetEvent event( | |
1444 data, gfx::Point(x, y), gfx::Point(screen_x, screen_y), | |
1445 ui::DragDropTypes::DRAG_COPY); // Android drag and drop does only copy. | |
1446 | |
1447 wcva->OnDragUpdated(event); | |
1448 } | |
1449 | |
1450 void ContentViewCoreImpl::OnPerformDrop( | |
1451 JNIEnv* env, | |
1452 const base::android::JavaParamRef<jobject>& jobj, | |
1453 int x, | |
1454 int y, | |
1455 int screen_x, | |
1456 int screen_y, | |
1457 const base::android::JavaParamRef<jstring>& content) { | |
1458 base::string16 text_to_drop = ConvertJavaStringToUTF16(env, content); | |
1459 | |
1460 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>( | |
1461 static_cast<WebContentsImpl*>(web_contents())->GetView()); | |
1462 | |
1463 ui::OSExchangeData data(new ui::OSExchangeDataProviderAndroid()); | |
1464 data.SetString(text_to_drop); | |
1465 ui::DropTargetEvent event(data, gfx::Point(x, y), | |
1466 gfx::Point(screen_x, screen_y), | |
1467 ui::DragDropTypes::DRAG_COPY); | |
1468 | |
1469 wcva->OnPerformDrop(event); | |
1470 } | |
1471 | |
1472 void ContentViewCoreImpl::OnDragExited( | |
1473 JNIEnv* env, | |
1474 const base::android::JavaParamRef<jobject>& jobj) { | |
1475 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>( | |
1476 static_cast<WebContentsImpl*>(web_contents())->GetView()); | |
1477 wcva->OnDragExited(); | |
1478 } | |
1479 | |
1412 void ContentViewCoreImpl::RequestTextSurroundingSelection( | 1480 void ContentViewCoreImpl::RequestTextSurroundingSelection( |
1413 int max_length, | 1481 int max_length, |
1414 const base::Callback< | 1482 const base::Callback< |
1415 void(const base::string16& content, int start_offset, int end_offset)>& | 1483 void(const base::string16& content, int start_offset, int end_offset)>& |
1416 callback) { | 1484 callback) { |
1417 DCHECK(!callback.is_null()); | 1485 DCHECK(!callback.is_null()); |
1418 RenderFrameHost* focused_frame = web_contents_->GetFocusedFrame(); | 1486 RenderFrameHost* focused_frame = web_contents_->GetFocusedFrame(); |
1419 if (!focused_frame) | 1487 if (!focused_frame) |
1420 return; | 1488 return; |
1421 if (GetRenderWidgetHostViewAndroid()) { | 1489 if (GetRenderWidgetHostViewAndroid()) { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1521 return ScopedJavaLocalRef<jobject>(); | 1589 return ScopedJavaLocalRef<jobject>(); |
1522 | 1590 |
1523 return view->GetJavaObject(); | 1591 return view->GetJavaObject(); |
1524 } | 1592 } |
1525 | 1593 |
1526 bool RegisterContentViewCore(JNIEnv* env) { | 1594 bool RegisterContentViewCore(JNIEnv* env) { |
1527 return RegisterNativesImpl(env); | 1595 return RegisterNativesImpl(env); |
1528 } | 1596 } |
1529 | 1597 |
1530 } // namespace content | 1598 } // namespace content |
OLD | NEW |