Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h" | 5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 37 void SavePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, | 37 void SavePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, |
| 38 const GURL& url, | 38 const GURL& url, |
| 39 OfflinePageModel::SavePageResult result) { | 39 OfflinePageModel::SavePageResult result) { |
| 40 JNIEnv* env = base::android::AttachCurrentThread(); | 40 JNIEnv* env = base::android::AttachCurrentThread(); |
| 41 | 41 |
| 42 Java_SavePageCallback_onSavePageDone( | 42 Java_SavePageCallback_onSavePageDone( |
| 43 env, j_callback_obj.obj(), static_cast<int>(result), | 43 env, j_callback_obj.obj(), static_cast<int>(result), |
| 44 ConvertUTF8ToJavaString(env, url.spec()).obj()); | 44 ConvertUTF8ToJavaString(env, url.spec()).obj()); |
| 45 } | 45 } |
| 46 | 46 |
| 47 void MarkPageAccessedCallback( | |
| 48 const ScopedJavaGlobalRef<jobject>& j_callback_obj, bool sucecss) { | |
|
newt (away)
2015/09/21 23:02:05
"success" typo
jianli
2015/09/23 00:11:11
This callback is not longer needed.
| |
| 49 if (j_callback_obj.is_null()) | |
| 50 return; | |
| 51 | |
| 52 JNIEnv* env = base::android::AttachCurrentThread(); | |
| 53 | |
| 54 Java_MarkPageAccessedCallback_onMarkPageAccessedDone( | |
| 55 env, j_callback_obj.obj(), sucecss); | |
| 56 } | |
| 57 | |
| 47 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, | 58 void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, |
| 48 OfflinePageModel::DeletePageResult result) { | 59 OfflinePageModel::DeletePageResult result) { |
| 49 JNIEnv* env = base::android::AttachCurrentThread(); | 60 JNIEnv* env = base::android::AttachCurrentThread(); |
| 50 | 61 |
| 51 Java_DeletePageCallback_onDeletePageDone( | 62 Java_DeletePageCallback_onDeletePageDone( |
| 52 env, j_callback_obj.obj(), static_cast<int>(result)); | 63 env, j_callback_obj.obj(), static_cast<int>(result)); |
| 53 } | 64 } |
| 54 | 65 |
| 55 void ToJavaOfflinePageList(JNIEnv* env, | 66 void ToJavaOfflinePageList(JNIEnv* env, |
| 56 jobject j_result_obj, | 67 jobject j_result_obj, |
| 57 const std::vector<OfflinePageItem>& offline_pages) { | 68 const std::vector<OfflinePageItem>& offline_pages) { |
| 58 for (const OfflinePageItem& offline_page : offline_pages) { | 69 for (const OfflinePageItem& offline_page : offline_pages) { |
| 59 Java_OfflinePageBridge_createOfflinePageAndAddToList( | 70 Java_OfflinePageBridge_createOfflinePageAndAddToList( |
| 60 env, j_result_obj, | 71 env, j_result_obj, |
| 61 ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(), | 72 ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(), |
| 62 offline_page.bookmark_id, | 73 offline_page.bookmark_id, |
| 63 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(), | 74 ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(), |
| 64 offline_page.file_size); | 75 offline_page.file_size, |
| 76 offline_page.access_count); | |
| 65 } | 77 } |
| 66 } | 78 } |
| 67 | 79 |
| 68 } // namespace | 80 } // namespace |
| 69 | 81 |
| 70 static jboolean IsOfflinePagesEnabled(JNIEnv* env, | 82 static jboolean IsOfflinePagesEnabled(JNIEnv* env, |
| 71 const JavaParamRef<jclass>& clazz) { | 83 const JavaParamRef<jclass>& clazz) { |
| 72 return offline_pages::IsOfflinePagesEnabled(); | 84 return offline_pages::IsOfflinePagesEnabled(); |
| 73 } | 85 } |
| 74 | 86 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 119 jlong bookmark_id) { | 131 jlong bookmark_id) { |
| 120 const OfflinePageItem* offline_page = | 132 const OfflinePageItem* offline_page = |
| 121 offline_page_model_->GetPageByBookmarkId(bookmark_id); | 133 offline_page_model_->GetPageByBookmarkId(bookmark_id); |
| 122 if (!offline_page) | 134 if (!offline_page) |
| 123 return ScopedJavaLocalRef<jobject>(); | 135 return ScopedJavaLocalRef<jobject>(); |
| 124 | 136 |
| 125 return Java_OfflinePageBridge_createOfflinePageItem( | 137 return Java_OfflinePageBridge_createOfflinePageItem( |
| 126 env, ConvertUTF8ToJavaString(env, offline_page->url.spec()).obj(), | 138 env, ConvertUTF8ToJavaString(env, offline_page->url.spec()).obj(), |
| 127 offline_page->bookmark_id, | 139 offline_page->bookmark_id, |
| 128 ConvertUTF8ToJavaString(env, offline_page->GetOfflineURL().spec()).obj(), | 140 ConvertUTF8ToJavaString(env, offline_page->GetOfflineURL().spec()).obj(), |
| 129 offline_page->file_size); | 141 offline_page->file_size, |
| 142 offline_page->access_count); | |
| 130 } | 143 } |
| 131 | 144 |
| 132 void OfflinePageBridge::SavePage(JNIEnv* env, | 145 void OfflinePageBridge::SavePage(JNIEnv* env, |
| 133 jobject obj, | 146 jobject obj, |
| 134 jobject j_callback_obj, | 147 jobject j_callback_obj, |
| 135 jobject j_web_contents, | 148 jobject j_web_contents, |
| 136 jlong bookmark_id) { | 149 jlong bookmark_id) { |
| 137 DCHECK(j_callback_obj); | 150 DCHECK(j_callback_obj); |
| 138 DCHECK(j_web_contents); | 151 DCHECK(j_web_contents); |
| 139 | 152 |
| 140 ScopedJavaGlobalRef<jobject> j_callback_ref; | 153 ScopedJavaGlobalRef<jobject> j_callback_ref; |
| 141 j_callback_ref.Reset(env, j_callback_obj); | 154 j_callback_ref.Reset(env, j_callback_obj); |
| 142 | 155 |
| 143 content::WebContents* web_contents = | 156 content::WebContents* web_contents = |
| 144 content::WebContents::FromJavaWebContents(j_web_contents); | 157 content::WebContents::FromJavaWebContents(j_web_contents); |
| 145 GURL url(web_contents->GetLastCommittedURL()); | 158 GURL url(web_contents->GetLastCommittedURL()); |
| 146 | 159 |
| 147 scoped_ptr<OfflinePageArchiver> archiver( | 160 scoped_ptr<OfflinePageArchiver> archiver( |
| 148 new OfflinePageMHTMLArchiver( | 161 new OfflinePageMHTMLArchiver( |
| 149 web_contents, GetDownloadsPath(browser_context_))); | 162 web_contents, GetDownloadsPath(browser_context_))); |
| 150 | 163 |
| 151 offline_page_model_->SavePage( | 164 offline_page_model_->SavePage( |
| 152 url, bookmark_id, archiver.Pass(), | 165 url, bookmark_id, archiver.Pass(), |
| 153 base::Bind(&SavePageCallback, j_callback_ref, url)); | 166 base::Bind(&SavePageCallback, j_callback_ref, url)); |
| 154 } | 167 } |
| 155 | 168 |
| 169 void OfflinePageBridge::MarkPageAccessed(JNIEnv* env, | |
| 170 jobject obj, | |
| 171 jobject j_callback_obj, | |
| 172 jlong bookmark_id) { | |
| 173 DCHECK(j_callback_obj); | |
| 174 | |
| 175 ScopedJavaGlobalRef<jobject> j_callback_ref; | |
| 176 j_callback_ref.Reset(env, j_callback_obj); | |
| 177 | |
| 178 offline_page_model_->MarkPageAccessed( | |
| 179 bookmark_id, base::Bind(&MarkPageAccessedCallback, j_callback_ref)); | |
| 180 } | |
| 181 | |
| 156 void OfflinePageBridge::DeletePage(JNIEnv* env, | 182 void OfflinePageBridge::DeletePage(JNIEnv* env, |
| 157 jobject obj, | 183 jobject obj, |
| 158 jobject j_callback_obj, | 184 jobject j_callback_obj, |
| 159 jlong bookmark_id) { | 185 jlong bookmark_id) { |
| 160 DCHECK(j_callback_obj); | 186 DCHECK(j_callback_obj); |
| 161 | 187 |
| 162 ScopedJavaGlobalRef<jobject> j_callback_ref; | 188 ScopedJavaGlobalRef<jobject> j_callback_ref; |
| 163 j_callback_ref.Reset(env, j_callback_obj); | 189 j_callback_ref.Reset(env, j_callback_obj); |
| 164 | 190 |
| 165 offline_page_model_->DeletePageByBookmarkId(bookmark_id, base::Bind( | 191 offline_page_model_->DeletePageByBookmarkId(bookmark_id, base::Bind( |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 223 return reinterpret_cast<jlong>(new OfflinePageBridge( | 249 return reinterpret_cast<jlong>(new OfflinePageBridge( |
| 224 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); | 250 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); |
| 225 } | 251 } |
| 226 | 252 |
| 227 bool RegisterOfflinePageBridge(JNIEnv* env) { | 253 bool RegisterOfflinePageBridge(JNIEnv* env) { |
| 228 return RegisterNativesImpl(env); | 254 return RegisterNativesImpl(env); |
| 229 } | 255 } |
| 230 | 256 |
| 231 } // namespace android | 257 } // namespace android |
| 232 } // namespace offline_pages | 258 } // namespace offline_pages |
| OLD | NEW |