summaryrefslogtreecommitdiffstats
path: root/android_webview/native
diff options
context:
space:
mode:
authorboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-25 18:08:33 +0000
committerboliu@chromium.org <boliu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-25 18:08:33 +0000
commitb3ff42609152881b763d322aabfd71829edfd9cd (patch)
treeda9a45f3f4252327d8663a3e517a40de0f6b7ef9 /android_webview/native
parent5387f9301ac6d4ab839f1841452ddc000f80eae6 (diff)
downloadchromium_src-b3ff42609152881b763d322aabfd71829edfd9cd.zip
chromium_src-b3ff42609152881b763d322aabfd71829edfd9cd.tar.gz
chromium_src-b3ff42609152881b763d322aabfd71829edfd9cd.tar.bz2
Android WebView visited link highlighting implementation part 2
Hook up getVisitedHistory client callback. As discussed, this is called on the first LoadURL and adds to the existing table. Unfortunately the public api does not allow iterating over the URLs, so it could potentially use a lot of memory. A new test is exposing gpu related crashes after calling destroy. t_b_r for tests added TBR=mkosiba@chromium.org,benm@chromium.org BUG=172184 Android only change. Ran through android bots. NOTRY=true Review URL: https://chromiumcodereview.appspot.com/11886055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178851 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/native')
-rw-r--r--android_webview/native/aw_contents.cc21
-rw-r--r--android_webview/native/aw_contents.h1
2 files changed, 22 insertions, 0 deletions
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index 3750650..f170e492 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -6,6 +6,7 @@
#include <sys/system_properties.h>
+#include "android_webview/browser/aw_browser_context.h"
#include "android_webview/browser/aw_browser_main_parts.h"
#include "android_webview/browser/net_disk_cache_remover.h"
#include "android_webview/browser/renderer_host/aw_render_view_host_ext.h"
@@ -25,6 +26,7 @@
#include "base/debug/trace_event.h"
#include "base/message_loop.h"
#include "base/pickle.h"
+#include "base/string16.h"
#include "base/supports_user_data.h"
#include "cc/layer.h"
#include "components/navigation_interception/intercept_navigation_delegate.h"
@@ -611,6 +613,25 @@ void AwContents::SetInterceptNavigationDelegate(JNIEnv* env,
make_scoped_ptr(new InterceptNavigationDelegate(env, delegate)));
}
+void AwContents::AddVisitedLinks(JNIEnv* env,
+ jobject obj,
+ jobjectArray jvisited_links) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
+ std::vector<string16> visited_link_strings;
+ base::android::AppendJavaStringArrayToStringVector(
+ env, jvisited_links, &visited_link_strings);
+
+ std::vector<GURL> visited_link_gurls;
+ for (std::vector<string16>::const_iterator itr = visited_link_strings.begin();
+ itr != visited_link_strings.end();
+ ++itr) {
+ visited_link_gurls.push_back(GURL(*itr));
+ }
+
+ AwBrowserContext::FromWebContents(web_contents_.get())
+ ->AddVisitedURLs(visited_link_gurls);
+}
+
static jint Init(JNIEnv* env,
jobject obj,
jobject web_contents_delegate) {
diff --git a/android_webview/native/aw_contents.h b/android_webview/native/aw_contents.h
index fffed32..347705a 100644
--- a/android_webview/native/aw_contents.h
+++ b/android_webview/native/aw_contents.h
@@ -88,6 +88,7 @@ class AwContents : public FindHelper::Listener,
void SetIoThreadClient(JNIEnv* env, jobject obj, jobject client);
void SetInterceptNavigationDelegate(JNIEnv* env, jobject obj,
jobject delegate);
+ void AddVisitedLinks(JNIEnv* env, jobject obj, jobjectArray jvisited_links);
base::android::ScopedJavaLocalRef<jbyteArray> GetCertificate(
JNIEnv* env, jobject obj);
void RequestNewHitTestDataAt(JNIEnv* env, jobject obj, jint x, jint y);