| 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..82900a65f358be97c7626a0f4f66268e413c548b 100644
|
| --- a/chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| +++ b/chrome/browser/android/contextualsearch/contextual_search_context.cc
|
| @@ -2,7 +2,20 @@
|
| // 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"
|
| +#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)
|
| + : can_resolve(false),
|
| + can_send_base_page_url(false),
|
| + start_offset(0),
|
| + end_offset(0) {
|
| + java_object_.Reset(env, obj);
|
| +}
|
|
|
| ContextualSearchContext::ContextualSearchContext(
|
| const std::string& selected_text,
|
| @@ -11,8 +24,111 @@ ContextualSearchContext::ContextualSearchContext(
|
| const std::string& encoding)
|
| : selected_text(selected_text),
|
| home_country(home_country),
|
| - page_url(page_url),
|
| - encoding(encoding) {}
|
| + base_page_url(page_url),
|
| + base_page_encoding(encoding) {
|
| + java_object_ = nullptr;
|
| +}
|
|
|
| ContextualSearchContext::~ContextualSearchContext() {
|
| }
|
| +
|
| +// 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::SetResolveProperties(
|
| + 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) {
|
| + can_resolve = true;
|
| + selected_text = base::android::ConvertJavaStringToUTF8(env, j_selection);
|
| + home_country = base::android::ConvertJavaStringToUTF8(env, j_home_country);
|
| + can_send_base_page_url = j_may_send_base_page_url;
|
| +}
|
| +
|
| +// Accessors
|
| +
|
| +bool ContextualSearchContext::CanResolve() const {
|
| + return can_resolve;
|
| +}
|
| +
|
| +bool ContextualSearchContext::CanSendBasePageUrl() const {
|
| + return can_send_base_page_url;
|
| +}
|
| +
|
| +const GURL ContextualSearchContext::GetBasePageUrl() const {
|
| + return base_page_url;
|
| +}
|
| +
|
| +void ContextualSearchContext::SetBasePageUrl(const GURL& base_page_url) {
|
| + this->base_page_url = base_page_url;
|
| +}
|
| +
|
| +const std::string ContextualSearchContext::GetBasePageEncoding() const {
|
| + return base_page_encoding;
|
| +}
|
| +
|
| +void ContextualSearchContext::SetBasePageEncoding(
|
| + const std::string& base_page_encoding) {
|
| + this->base_page_encoding = base_page_encoding;
|
| +}
|
| +
|
| +const std::string ContextualSearchContext::GetHomeCountry() const {
|
| + return home_country;
|
| +}
|
| +
|
| +void ContextualSearchContext::SetSelectionSurroundings(
|
| + int start_offset,
|
| + int end_offset,
|
| + const base::string16& surrounding_text) {
|
| + this->start_offset = start_offset;
|
| + this->end_offset = end_offset;
|
| + this->surrounding_text = surrounding_text;
|
| +}
|
| +
|
| +const std::string ContextualSearchContext::GetOriginalSelectedText() const {
|
| + return selected_text;
|
| +}
|
| +
|
| +const base::string16 ContextualSearchContext::GetSurroundingText() const {
|
| + return surrounding_text;
|
| +}
|
| +
|
| +int ContextualSearchContext::GetStartOffset() const {
|
| + return start_offset;
|
| +}
|
| +
|
| +int ContextualSearchContext::GetEndOffset() const {
|
| + return end_offset;
|
| +}
|
| +
|
| +// 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);
|
| +}
|
|
|