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 768254aee4f9e1a34a9e48933386c4d46ff2e423..5b1535dad7718c4e386f0bf9a31940796b1123a4 100644 |
--- a/chrome/browser/android/history/browsing_history_bridge.cc |
+++ b/chrome/browser/android/history/browsing_history_bridge.cc |
@@ -7,6 +7,7 @@ |
#include <jni.h> |
#include "base/android/jni_android.h" |
+#include "base/android/jni_array.h" |
#include "base/android/jni_string.h" |
#include "base/macros.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -66,13 +67,22 @@ void BrowsingHistoryBridge::OnQueryComplete( |
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()); |
+ } |
+ |
Java_BrowsingHistoryBridge_createHistoryItemAndAddToList( |
env, |
j_query_result_obj_.obj(), |
base::android::ConvertUTF8ToJavaString(env, it->url.spec()), |
base::android::ConvertUTF16ToJavaString(env, domain), |
base::android::ConvertUTF16ToJavaString(env, it->title), |
- it->time.ToJavaTime()); |
+ base::android::ToJavaLongArray(env, timestamps)); |
+ |
+ timestamps.clear(); |
} |
Java_BrowsingHistoryBridge_onQueryHistoryComplete( |
@@ -83,16 +93,48 @@ void BrowsingHistoryBridge::OnQueryComplete( |
j_query_result_obj_.Release(); |
} |
+void BrowsingHistoryBridge::MarkItemForRemoval( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& obj, |
+ jstring j_url, |
+ const JavaParamRef<jlongArray>& j_timestamps) { |
+ std::unique_ptr<BrowsingHistoryService::HistoryEntry> entry( |
+ new BrowsingHistoryService::HistoryEntry()); |
gone
2016/12/08 21:21:56
git cl format?
Theresa
2016/12/08 21:51:15
Done.
|
+ entry->url = GURL(base::android::ConvertJavaStringToUTF16(env, j_url)); |
+ |
+ std::vector<int64_t> timestamps; |
+ base::android::JavaLongArrayToInt64Vector( |
+ env, j_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()); |
+ } |
+ |
+ items_to_remove_.push_back(std::move(entry)); |
+ timestamps.clear(); |
+} |
+ |
+void BrowsingHistoryBridge::RemoveItems(JNIEnv* env, |
+ const JavaParamRef<jobject>& obj) { |
+ browsing_history_service_->RemoveVisits(&items_to_remove_); |
+ items_to_remove_.clear(); |
+} |
+ |
void BrowsingHistoryBridge::OnRemoveVisitsComplete() { |
- // TODO(twellington): implement |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_BrowsingHistoryBridge_onRemoveComplete( |
+ env, j_history_service_obj_.obj()); |
} |
void BrowsingHistoryBridge::OnRemoveVisitsFailed() { |
- // TODO(twellington): implement |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_BrowsingHistoryBridge_onRemoveFailed(env, j_history_service_obj_.obj()); |
} |
void BrowsingHistoryBridge::HistoryDeleted() { |
- // TODO(twellington): implement |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_BrowsingHistoryBridge_onHistoryDeleted( |
+ env, j_history_service_obj_.obj()); |
} |
void BrowsingHistoryBridge::HasOtherFormsOfBrowsingHistory( |