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

Unified Diff: content/browser/frame_host/navigation_controller_android.cc

Issue 2327083002: Ntp: restore scroll position. (Closed)
Patch Set: fix build (const) Created 4 years, 3 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: content/browser/frame_host/navigation_controller_android.cc
diff --git a/content/browser/frame_host/navigation_controller_android.cc b/content/browser/frame_host/navigation_controller_android.cc
index 9f4abca48b9367814bb163de6df62a51c1a9f43b..26aedc92b7d4cb89d9b1dc1c1a93273b2fcd5312 100644
--- a/content/browser/frame_host/navigation_controller_android.cc
+++ b/content/browser/frame_host/navigation_controller_android.cc
@@ -7,8 +7,10 @@
#include <stdint.h>
#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/callback.h"
+#include "base/strings/string16.h"
#include "content/browser/frame_host/navigation_controller_impl.h"
#include "content/browser/frame_host/navigation_entry_impl.h"
#include "content/public/browser/browser_context.h"
@@ -50,9 +52,20 @@ static base::android::ScopedJavaLocalRef<jobject> CreateJavaNavigationEntry(
if (status.valid && status.image.ToSkBitmap()->getSize() > 0)
j_bitmap = gfx::ConvertToJavaBitmap(status.image.ToSkBitmap());
+ std::vector<std::string> extra_data_keys;
+ std::vector<base::string16> extra_data_values;
+ for (const auto& pair : entry->GetExtraData()) {
+ extra_data_keys.push_back(pair.first);
+ extra_data_values.push_back(pair.second);
+ }
+ ScopedJavaLocalRef<jobjectArray> j_extra_data_keys(
+ base::android::ToJavaArrayOfStrings(env, extra_data_keys));
+ ScopedJavaLocalRef<jobjectArray> j_extra_data_values(
+ base::android::ToJavaArrayOfStrings(env, extra_data_values));
+
return content::Java_NavigationControllerImpl_createNavigationEntry(
env, index, j_url, j_virtual_url, j_original_url, j_title, j_bitmap,
- entry->GetTransitionType());
+ entry->GetTransitionType(), j_extra_data_keys, j_extra_data_values);
}
static void AddNavigationEntryToHistory(JNIEnv* env,
@@ -427,4 +440,18 @@ void NavigationControllerAndroid::CopyStateFromAndPrune(
replace_entry);
}
+void NavigationControllerAndroid::SetEntryExtraData(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ jint index,
+ const JavaParamRef<jstring>& jkey,
+ const JavaParamRef<jstring>& jvalue) {
+ if (index < 0 || index >= navigation_controller_->GetEntryCount())
+ return;
+
+ std::string key = base::android::ConvertJavaStringToUTF8(env, jkey);
+ base::string16 value = base::android::ConvertJavaStringToUTF16(env, jvalue);
+ navigation_controller_->GetEntryAtIndex(index)->SetExtraData(key, value);
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698