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

Side by Side Diff: chrome/browser/android/offline_pages/offline_page_bridge.cc

Issue 1345043002: Update access info when an offline page is being visited (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address some more feedback Created 5 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 unified diff | Download patch
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698