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

Unified Diff: chrome/browser/android/history/browsing_history_bridge.cc

Issue 2935783002: Send microsecond resolution timestamps to Java history page so they can be sent back. (Closed)
Patch Set: Created 3 years, 6 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/history/browsing_history_bridge.cc
diff --git a/chrome/browser/android/history/browsing_history_bridge.cc b/chrome/browser/android/history/browsing_history_bridge.cc
index 9fcd8a0dc7133e9b4fa33ea52b7551ba3bf123a0..abbc36037fb11e6ab58b65513f51e46b175c6b03 100644
--- a/chrome/browser/android/history/browsing_history_bridge.cc
+++ b/chrome/browser/android/history/browsing_history_bridge.cc
@@ -6,6 +6,8 @@
#include <jni.h>
+#include <utility>
+
#include "base/android/jni_android.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
@@ -61,32 +63,31 @@ void BrowsingHistoryBridge::OnQueryComplete(
JNIEnv* env = base::android::AttachCurrentThread();
- for (auto it = results->begin(); it != results->end(); ++it) {
-
+ for (const BrowsingHistoryService::HistoryEntry& entry : *results) {
// TODO(twellington): move the domain logic to BrowsingHistoryServce so it
// can be shared with BrowsingHistoryHandler.
- base::string16 domain = url_formatter::IDNToUnicode(it->url.host());
+ base::string16 domain = url_formatter::IDNToUnicode(entry.url.host());
// When the domain is empty, use the scheme instead. This allows for a
// sensible treatment of e.g. file: URLs when group by domain is on.
if (domain.empty())
- domain = base::UTF8ToUTF16(it->url.scheme() + ":");
-
- std::vector<int64_t> timestamps;
- for (auto timestampIt = it->all_timestamps.begin();
- timestampIt != it->all_timestamps.end(); ++timestampIt) {
- timestamps.push_back(
- base::Time::FromInternalValue(*timestampIt).ToJavaTime());
+ domain = base::UTF8ToUTF16(entry.url.scheme() + ":");
+
+ std::vector<int64_t> java_timestamps;
+ std::vector<int64_t> native_timestamps;
+ for (int64_t timestamp : entry.all_timestamps) {
+ java_timestamps.push_back(
+ base::Time::FromInternalValue(timestamp).ToJavaTime());
+ native_timestamps.push_back(timestamp);
}
Java_BrowsingHistoryBridge_createHistoryItemAndAddToList(
env, j_query_result_obj_.obj(),
- base::android::ConvertUTF8ToJavaString(env, it->url.spec()),
+ base::android::ConvertUTF8ToJavaString(env, entry.url.spec()),
base::android::ConvertUTF16ToJavaString(env, domain),
- base::android::ConvertUTF16ToJavaString(env, it->title),
- base::android::ToJavaLongArray(env, timestamps),
- it->blocked_visit);
-
- timestamps.clear();
+ base::android::ConvertUTF16ToJavaString(env, entry.title),
+ base::android::ToJavaLongArray(env, java_timestamps),
+ base::android::ToJavaLongArray(env, native_timestamps),
+ entry.blocked_visit);
}
Java_BrowsingHistoryBridge_onQueryHistoryComplete(
@@ -100,21 +101,17 @@ void BrowsingHistoryBridge::MarkItemForRemoval(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
jstring j_url,
- const JavaParamRef<jlongArray>& j_timestamps) {
+ const JavaParamRef<jlongArray>& j_native_timestamps) {
std::unique_ptr<BrowsingHistoryService::HistoryEntry> entry(
new BrowsingHistoryService::HistoryEntry());
entry->url = GURL(base::android::ConvertJavaStringToUTF16(env, j_url));
std::vector<int64_t> timestamps;
- base::android::JavaLongArrayToInt64Vector(env, j_timestamps.obj(),
+ base::android::JavaLongArrayToInt64Vector(env, j_native_timestamps.obj(),
&timestamps);
- for (auto it = timestamps.begin(); it != timestamps.end(); ++it) {
- base::Time visit_time = base::Time::FromJavaTime(*it);
- entry->all_timestamps.insert(visit_time.ToInternalValue());
- }
+ entry->all_timestamps.insert(timestamps.begin(), timestamps.end());
items_to_remove_.push_back(std::move(entry));
- timestamps.clear();
Theresa 2017/06/12 18:23:21 I had added this to make sure int64 timestamps in
skym 2017/06/12 19:45:13 Yeah, I don't think it was needed. The vector |tim
}
void BrowsingHistoryBridge::RemoveItems(JNIEnv* env,

Powered by Google App Engine
This is Rietveld 408576698