| Index: chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.cc b/chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| index e0db7ccd9fad109ebae3a8f91615029c4ed2dc0d..fe1ffe1a863d2f2ae00aaa5fad357c1db5f0c5e0 100644
|
| --- a/chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| +++ b/chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| @@ -2,17 +2,93 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/android/contextualsearch/contextual_search_context.h"
|
| -
|
| -ContextualSearchContext::ContextualSearchContext(
|
| - const std::string& selected_text,
|
| - const std::string& home_country,
|
| - const GURL& page_url,
|
| - const std::string& encoding)
|
| - : selected_text(selected_text),
|
| - home_country(home_country),
|
| - page_url(page_url),
|
| - encoding(encoding) {}
|
| +#include <chrome/browser/android/contextualsearch/contextual_search_context.h>
|
| +
|
| +#include "base/android/jni_string.h"
|
| +#include "content/public/browser/browser_thread.h"
|
| +
|
| +#include "jni/ContextualSearchContext_jni.h"
|
| +
|
| +ContextualSearchContext::ContextualSearchContext(JNIEnv* env, jobject obj) {
|
| + java_object_.Reset(env, obj);
|
| +}
|
| +
|
| +// Constructor for tests.
|
| +ContextualSearchContext::ContextualSearchContext() {
|
| + java_object_ = nullptr;
|
| +}
|
|
|
| ContextualSearchContext::~ContextualSearchContext() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + if (java_object_.obj() != nullptr)
|
| + Java_ContextualSearchContext_clearNativePointer(env, java_object_);
|
| +}
|
| +
|
| +// static
|
| +ContextualSearchContext*
|
| +ContextualSearchContext::FromJavaContextualSearchContext(
|
| + const base::android::JavaRef<jobject>& j_contextual_search_context) {
|
| + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| + if (j_contextual_search_context.is_null())
|
| + return NULL;
|
| +
|
| + ContextualSearchContext* contextual_search_context =
|
| + reinterpret_cast<ContextualSearchContext*>(
|
| + Java_ContextualSearchContext_getNativePointer(
|
| + base::android::AttachCurrentThread(),
|
| + j_contextual_search_context));
|
| + return contextual_search_context;
|
| +}
|
| +
|
| +void ContextualSearchContext::SetUseBriefPageContent(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + jboolean j_use_brief_page_content) {
|
| + is_brief_surrounding_text = j_use_brief_page_content;
|
| +}
|
| +
|
| +void ContextualSearchContext::SetProperties(
|
| + JNIEnv* env,
|
| + jobject obj,
|
| + const base::android::JavaParamRef<jstring>& j_selection,
|
| + const base::android::JavaParamRef<jstring>& j_home_country,
|
| + jboolean j_may_send_base_page_url) {
|
| + SetPropertiesInternal(
|
| + base::android::ConvertJavaStringToUTF8(env, j_selection),
|
| + base::android::ConvertJavaStringToUTF8(env, j_home_country),
|
| + j_may_send_base_page_url);
|
| +}
|
| +
|
| +void ContextualSearchContext::SetPropertiesInternal(
|
| + std::string selection,
|
| + std::string home_country,
|
| + bool may_send_base_page_url) {
|
| + selected_text = selection;
|
| + this->home_country = home_country;
|
| + this->may_send_base_page_url = may_send_base_page_url;
|
| +}
|
| +
|
| +bool ContextualSearchContext::IsBrief() {
|
| + return is_brief_surrounding_text;
|
| +}
|
| +
|
| +bool ContextualSearchContext::MaySendBasePageUrl() {
|
| + return may_send_base_page_url;
|
| +}
|
| +
|
| +// Java wrapper boilerplate
|
| +
|
| +void ContextualSearchContext::Destroy(
|
| + JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj) {
|
| + delete this;
|
| +}
|
| +
|
| +bool RegisterContextualSearchContext(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +
|
| +jlong Init(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj) {
|
| + ContextualSearchContext* context = new ContextualSearchContext(env, obj);
|
| + return reinterpret_cast<intptr_t>(context);
|
| }
|
|
|