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

Unified Diff: chrome/browser/android/contextualsearch/contextual_search_context.h

Issue 2706333002: [TTS] Add a Java Context linked to existing native (Closed)
Patch Set: Nothing, I think. Created 3 years, 9 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
Index: chrome/browser/android/contextualsearch/contextual_search_context.h
diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.h b/chrome/browser/android/contextualsearch/contextual_search_context.h
index 436a114e3344f9972bbeee6584ea0898284f7fc9..350d9629317ce2943d19ab346b1e77db04331d04 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_context.h
+++ b/chrome/browser/android/contextualsearch/contextual_search_context.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/android/jni_android.h"
#include "base/macros.h"
#include "url/gurl.h"
@@ -14,22 +15,88 @@
// text.
struct ContextualSearchContext {
public:
+ ContextualSearchContext(JNIEnv* env, jobject obj);
+ // Constructor for tests.
ContextualSearchContext(const std::string& selected_text,
const std::string& home_country,
const GURL& page_url,
const std::string& encoding);
~ContextualSearchContext();
- const std::string selected_text;
- const std::string home_country;
- const GURL page_url;
- const std::string encoding;
+ // Calls the destructor. Should be called when this native object is no
+ // longer needed.
+ void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
+ // Returns the native |ContextualSearchContext| given the Java object.
+ static ContextualSearchContext* FromJavaContextualSearchContext(
+ const base::android::JavaRef<jobject>& j_contextual_search_context);
+
+ // Returns whether this context can be resolved.
+ // The context can be resolved only after calling SetResolveProperites.
+ bool CanResolve() const;
+
+ // Returns whether the base page URL may be sent (according to the Java
+ // policy).
+ bool CanSendBasePageUrl() const;
+
+ // Sets the properties needed to resolve a context.
+ void 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);
+
+ // Gets the URL of the base page.
+ const GURL GetBasePageUrl() const;
+ // Sets the URL of the base page.
+ void SetBasePageUrl(const GURL& base_page_url);
+
+ // Gets the encoding of the base page. This is not very important, since
+ // the surrounding text stored here in a base::string16 is implicitly encoded
+ // in UTF-16 (see http://www.chromium.org/developers/chromium-string-usage).
+ const std::string GetBasePageEncoding() const;
+ void SetBasePageEncoding(const std::string& base_page_encoding);
+
+ // Gets the country code of the home country of the user, or an empty string.
+ const std::string GetHomeCountry() const;
+
+ // Sets the selection and surroundings.
+ void SetSelectionSurroundings(int start_offset,
+ int end_offset,
+ const base::string16& surrounding_text);
+
+ // Gets the original selection.
+ const std::string GetOriginalSelectedText() const;
+
+ // Gets the text surrounding the selection (including the selection).
+ const base::string16 GetSurroundingText() const;
+
+ // Gets the start offset of the selection within the surrounding text (in
+ // characters).
+ int GetStartOffset() const;
+ // Gets the end offset of the selection within the surrounding text (in
+ // characters).
+ int GetEndOffset() const;
+
+ private:
+ bool can_resolve;
+ bool can_send_base_page_url;
+
+ std::string selected_text;
+ std::string home_country;
+ GURL base_page_url;
+ std::string base_page_encoding;
base::string16 surrounding_text;
int start_offset;
int end_offset;
+ // The linked Java object.
+ base::android::ScopedJavaGlobalRef<jobject> java_object_;
+
DISALLOW_COPY_AND_ASSIGN(ContextualSearchContext);
};
+bool RegisterContextualSearchContext(JNIEnv* env);
+
#endif // CHROME_BROWSER_ANDROID_CONTEXTUALSEARCH_CONTEXTUAL_SEARCH_CONTEXT_H_
« no previous file with comments | « chrome/browser/android/chrome_jni_registrar.cc ('k') | chrome/browser/android/contextualsearch/contextual_search_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698