Chromium Code Reviews| 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(), |
| ×tamps); |
| - 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, |