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

Side by Side Diff: content/browser/android/content_view_core_impl.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
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 1385 matching lines...) Expand 10 before | Expand all | Expand 10 after
1396 void ContentViewCoreImpl::SendOrientationChangeEventInternal() { 1396 void ContentViewCoreImpl::SendOrientationChangeEventInternal() {
1397 RenderWidgetHostViewAndroid* rwhv = GetRenderWidgetHostViewAndroid(); 1397 RenderWidgetHostViewAndroid* rwhv = GetRenderWidgetHostViewAndroid();
1398 if (rwhv) 1398 if (rwhv)
1399 rwhv->UpdateScreenInfo(GetViewAndroid()); 1399 rwhv->UpdateScreenInfo(GetViewAndroid());
1400 1400
1401 static_cast<WebContentsImpl*>(web_contents()) 1401 static_cast<WebContentsImpl*>(web_contents())
1402 ->GetScreenOrientationProvider() 1402 ->GetScreenOrientationProvider()
1403 ->OnOrientationChange(); 1403 ->OnOrientationChange();
1404 } 1404 }
1405 1405
1406 void ContentViewCoreImpl::ExtractSmartClipData(JNIEnv* env,
1407 const JavaParamRef<jobject>& obj,
1408 jint x,
1409 jint y,
1410 jint width,
1411 jint height) {
1412 gfx::Rect rect(
1413 static_cast<int>(x / dpi_scale()),
1414 static_cast<int>(y / dpi_scale()),
1415 static_cast<int>((width > 0 && width < dpi_scale()) ?
1416 1 : (int)(width / dpi_scale())),
1417 static_cast<int>((height > 0 && height < dpi_scale()) ?
1418 1 : (int)(height / dpi_scale())));
1419 GetWebContents()->Send(new ViewMsg_ExtractSmartClipData(
1420 GetWebContents()->GetRenderViewHost()->GetRoutingID(), rect));
1421 }
1422
1423 jint ContentViewCoreImpl::GetCurrentRenderProcessId( 1406 jint ContentViewCoreImpl::GetCurrentRenderProcessId(
1424 JNIEnv* env, 1407 JNIEnv* env,
1425 const JavaParamRef<jobject>& obj) { 1408 const JavaParamRef<jobject>& obj) {
1426 return GetRenderProcessIdFromRenderViewHost( 1409 return GetRenderProcessIdFromRenderViewHost(
1427 web_contents_->GetRenderViewHost()); 1410 web_contents_->GetRenderViewHost());
1428 } 1411 }
1429 1412
1430 void ContentViewCoreImpl::SetBackgroundOpaque(JNIEnv* env, 1413 void ContentViewCoreImpl::SetBackgroundOpaque(JNIEnv* env,
1431 const JavaParamRef<jobject>& jobj, 1414 const JavaParamRef<jobject>& jobj,
1432 jboolean opaque) { 1415 jboolean opaque) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
1518 1501
1519 void ContentViewCoreImpl::HidePopupsAndPreserveSelection() { 1502 void ContentViewCoreImpl::HidePopupsAndPreserveSelection() {
1520 JNIEnv* env = AttachCurrentThread(); 1503 JNIEnv* env = AttachCurrentThread();
1521 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env); 1504 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1522 if (obj.is_null()) 1505 if (obj.is_null())
1523 return; 1506 return;
1524 1507
1525 Java_ContentViewCore_hidePopupsAndPreserveSelection(env, obj); 1508 Java_ContentViewCore_hidePopupsAndPreserveSelection(env, obj);
1526 } 1509 }
1527 1510
1528 void ContentViewCoreImpl::OnSmartClipDataExtracted(
1529 const base::string16& text,
1530 const base::string16& html,
1531 const gfx::Rect& clip_rect) {
1532 JNIEnv* env = AttachCurrentThread();
1533 ScopedJavaLocalRef<jobject> obj = java_ref_.get(env);
1534 if (obj.is_null())
1535 return;
1536 ScopedJavaLocalRef<jstring> jtext = ConvertUTF16ToJavaString(env, text);
1537 ScopedJavaLocalRef<jstring> jhtml = ConvertUTF16ToJavaString(env, html);
1538 ScopedJavaLocalRef<jobject> clip_rect_object(CreateJavaRect(env, clip_rect));
1539 Java_ContentViewCore_onSmartClipDataExtracted(env, obj, jtext, jhtml,
1540 clip_rect_object);
1541 }
1542
1543 void ContentViewCoreImpl::WebContentsDestroyed() { 1511 void ContentViewCoreImpl::WebContentsDestroyed() {
1544 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>( 1512 WebContentsViewAndroid* wcva = static_cast<WebContentsViewAndroid*>(
1545 static_cast<WebContentsImpl*>(web_contents())->GetView()); 1513 static_cast<WebContentsImpl*>(web_contents())->GetView());
1546 DCHECK(wcva); 1514 DCHECK(wcva);
1547 wcva->SetContentViewCore(NULL); 1515 wcva->SetContentViewCore(NULL);
1548 } 1516 }
1549 1517
1550 // This is called for each ContentView. 1518 // This is called for each ContentView.
1551 jlong Init(JNIEnv* env, 1519 jlong Init(JNIEnv* env,
1552 const JavaParamRef<jobject>& obj, 1520 const JavaParamRef<jobject>& obj,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1586 return ScopedJavaLocalRef<jobject>(); 1554 return ScopedJavaLocalRef<jobject>();
1587 1555
1588 return view->GetJavaObject(); 1556 return view->GetJavaObject();
1589 } 1557 }
1590 1558
1591 bool RegisterContentViewCore(JNIEnv* env) { 1559 bool RegisterContentViewCore(JNIEnv* env) {
1592 return RegisterNativesImpl(env); 1560 return RegisterNativesImpl(env);
1593 } 1561 }
1594 1562
1595 } // namespace content 1563 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/android/content_view_core_impl.h ('k') | content/browser/frame_host/render_frame_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698