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

Unified Diff: chrome/browser/ui/android/context_menu_helper.cc

Issue 2804913003: Remove redundant code from Android context menu native. (Closed)
Patch Set: Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/android/context_menu_helper.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/android/context_menu_helper.cc
diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/ui/android/context_menu_helper.cc
index 3f237be8edfb607ac1199a9c197583a57a9cfcde..a9355ed99462c60d12bd108a29bcefab2a057133 100644
--- a/chrome/browser/ui/android/context_menu_helper.cc
+++ b/chrome/browser/ui/android/context_menu_helper.cc
@@ -8,7 +8,7 @@
#include <vector>
-#include "base/android/jni_android.h"
+#include "base/android/callback_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/bind_helpers.h"
@@ -34,9 +34,6 @@ using base::android::JavaParamRef;
DEFINE_WEB_CONTENTS_USER_DATA_KEY(ContextMenuHelper);
-const int kShareImageMaxWidth = 2048;
-const int kShareImageMaxHeight = 2048;
-
const char kDataReductionProxyPassthroughHeader[] =
"Chrome-Proxy: pass-through\r\n";
@@ -120,6 +117,12 @@ ContextMenuHelper::CreateJavaContextMenuParams(
return jmenu_info;
}
+base::android::ScopedJavaLocalRef<jobject>
+ContextMenuHelper::GetJavaWebContents(JNIEnv* env,
+ const JavaParamRef<jobject>& obj) {
+ return web_contents_->GetJavaWebContents();
+}
+
void ContextMenuHelper::OnStartDownload(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
@@ -147,8 +150,10 @@ void ContextMenuHelper::SearchForImage(JNIEnv* env,
render_frame_host, context_menu_params_.src_url);
}
-void ContextMenuHelper::ShareImage(JNIEnv* env,
- const JavaParamRef<jobject>& obj) {
+void ContextMenuHelper::RetrieveImage(JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jobject>& jcallback,
+ jint max_dimen_px) {
content::RenderFrameHost* render_frame_host =
content::RenderFrameHost::FromID(render_process_id_, render_frame_id_);
if (!render_frame_host)
@@ -160,78 +165,18 @@ void ContextMenuHelper::ShareImage(JNIEnv* env,
// there's either a connection error or a response.
auto* thumbnail_capturer_proxy = thumbnail_capturer.get();
thumbnail_capturer_proxy->RequestThumbnailForContextNode(
- 0, gfx::Size(kShareImageMaxWidth, kShareImageMaxHeight),
- base::Bind(&ContextMenuHelper::OnShareImage, weak_factory_.GetWeakPtr(),
- base::Passed(&thumbnail_capturer)));
+ 0, gfx::Size(max_dimen_px, max_dimen_px),
+ base::Bind(&ContextMenuHelper::OnRetrieveImage,
+ weak_factory_.GetWeakPtr(), base::Passed(&thumbnail_capturer),
+ base::android::ScopedJavaGlobalRef<jobject>(env, jcallback)));
}
-void ContextMenuHelper::OnShareImage(
+void ContextMenuHelper::OnRetrieveImage(
David Trainor- moved to gerrit 2017/04/06 21:53:57 Can this just be an anonymous namespace helper met
Ted C 2017/04/07 17:09:37 Done.
chrome::mojom::ThumbnailCapturerPtr thumbnail_capturer,
+ const base::android::JavaRef<jobject>& jcallback,
const std::vector<uint8_t>& thumbnail_data,
const gfx::Size& original_size) {
- content::ContentViewCore* content_view_core =
- content::ContentViewCore::FromWebContents(web_contents_);
- if (!content_view_core)
- return;
-
- base::android::ScopedJavaLocalRef<jobject> jwindow_android(
- content_view_core->GetWindowAndroid()->GetJavaObject());
-
- if (jwindow_android.is_null())
- return;
-
- JNIEnv* env = base::android::AttachCurrentThread();
- base::android::ScopedJavaLocalRef<jbyteArray> j_bytes =
- base::android::ToJavaByteArray(env, thumbnail_data);
-
- Java_ContextMenuHelper_onShareImageReceived(env, java_obj_, jwindow_android,
- j_bytes);
-}
-
-// TODO(tedchoc): Unify RetrieveHeaderThumbnail and ShareImage.
-void ContextMenuHelper::RetrieveHeaderThumbnail(
- JNIEnv* env,
- const JavaParamRef<jobject>& obj,
- jint j_max_size_px) {
- content::RenderFrameHost* render_frame_host =
- content::RenderFrameHost::FromID(render_process_id_, render_frame_id_);
-
- if (!render_frame_host)
- return;
-
- chrome::mojom::ThumbnailCapturerPtr thumbnail_capturer;
- render_frame_host->GetRemoteInterfaces()->GetInterface(&thumbnail_capturer);
- // Bind the InterfacePtr into the callback so that it's kept alive until
- // there's either a connection error or a response.
- auto* thumbnail_capturer_proxy = thumbnail_capturer.get();
- thumbnail_capturer_proxy->RequestThumbnailForContextNode(
- 0, gfx::Size(j_max_size_px, j_max_size_px),
- base::Bind(&ContextMenuHelper::OnHeaderThumbnailReceived,
- weak_factory_.GetWeakPtr(),
- base::Passed(&thumbnail_capturer)));
-}
-
-void ContextMenuHelper::OnHeaderThumbnailReceived(
- chrome::mojom::ThumbnailCapturerPtr thumbnail_capturer,
- const std::vector<uint8_t>& thumbnail_data,
- const gfx::Size& original_size) {
- content::ContentViewCore* content_view_core =
- content::ContentViewCore::FromWebContents(web_contents_);
- if (!content_view_core)
- return;
-
- base::android::ScopedJavaLocalRef<jobject> jwindow_android(
- content_view_core->GetWindowAndroid()->GetJavaObject());
-
- if (jwindow_android.is_null())
- return;
-
- JNIEnv* env = base::android::AttachCurrentThread();
- base::android::ScopedJavaLocalRef<jbyteArray> j_bytes =
- base::android::ToJavaByteArray(env, thumbnail_data);
-
- Java_ContextMenuHelper_onHeaderThumbnailReceived(env, java_obj_,
- jwindow_android, j_bytes);
+ base::android::RunCallbackAndroid(jcallback, thumbnail_data);
}
bool RegisterContextMenuHelper(JNIEnv* env) {
« no previous file with comments | « chrome/browser/ui/android/context_menu_helper.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698