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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java

Issue 1524293002: [Offline pages] Expose offline pages URL related methods in java code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tab-android
Patch Set: Created 5 years 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 package org.chromium.chrome.browser.offlinepages; 5 package org.chromium.chrome.browser.offlinepages;
6 6
7 import android.os.AsyncTask; 7 import android.os.AsyncTask;
8 8
9 import org.chromium.base.ObserverList; 9 import org.chromium.base.ObserverList;
10 import org.chromium.base.ThreadUtils; 10 import org.chromium.base.ThreadUtils;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 percentageOfFree, 101); 147 percentageOfFree, 101);
148 } 148 }
149 return null; 149 return null;
150 } 150 }
151 }.execute(); 151 }.execute();
152 } 152 }
153 153
154 /** 154 /**
155 * Creates offline pages bridge for a given profile. 155 * Creates offline pages bridge for a given profile.
156 */ 156 */
157 @VisibleForTesting
158 public OfflinePageBridge(Profile profile) { 157 public OfflinePageBridge(Profile profile) {
159 mNativeOfflinePageBridge = nativeInit(profile); 158 mNativeOfflinePageBridge = nativeInit(profile);
160 } 159 }
161 160
162 /** 161 /**
163 * Returns true if the offline pages feature is enabled. 162 * Returns true if the offline pages feature is enabled.
164 */ 163 */
165 public static boolean isEnabled() { 164 public static boolean isEnabled() {
166 ThreadUtils.assertOnUiThread(); 165 ThreadUtils.assertOnUiThread();
167 if (sIsEnabled == null) { 166 if (sIsEnabled == null) {
(...skipping 19 matching lines...) Expand all
187 assert mNativeOfflinePageBridge != 0; 186 assert mNativeOfflinePageBridge != 0;
188 nativeDestroy(mNativeOfflinePageBridge); 187 nativeDestroy(mNativeOfflinePageBridge);
189 mIsNativeOfflinePageModelLoaded = false; 188 mIsNativeOfflinePageModelLoaded = false;
190 mNativeOfflinePageBridge = 0; 189 mNativeOfflinePageBridge = 0;
191 } 190 }
192 191
193 /** 192 /**
194 * Adds an observer to offline page model changes. 193 * Adds an observer to offline page model changes.
195 * @param observer The observer to be added. 194 * @param observer The observer to be added.
196 */ 195 */
197 @VisibleForTesting
198 public void addObserver(OfflinePageModelObserver observer) { 196 public void addObserver(OfflinePageModelObserver observer) {
199 mObservers.addObserver(observer); 197 mObservers.addObserver(observer);
200 } 198 }
201 199
202 /** 200 /**
203 * Removes an observer to offline page model changes. 201 * Removes an observer to offline page model changes.
204 * @param observer The observer to be removed. 202 * @param observer The observer to be removed.
205 */ 203 */
206 @VisibleForTesting
207 public void removeObserver(OfflinePageModelObserver observer) { 204 public void removeObserver(OfflinePageModelObserver observer) {
208 mObservers.removeObserver(observer); 205 mObservers.removeObserver(observer);
209 } 206 }
210 207
211 /** 208 /**
212 * @return Gets all available offline pages. Requires that the model is alre ady loaded. 209 * @return Gets all available offline pages. Requires that the model is alre ady loaded.
213 */ 210 */
214 @VisibleForTesting
215 public List<OfflinePageItem> getAllPages() { 211 public List<OfflinePageItem> getAllPages() {
216 assert mIsNativeOfflinePageModelLoaded; 212 assert mIsNativeOfflinePageModelLoaded;
217 List<OfflinePageItem> result = new ArrayList<OfflinePageItem>(); 213 List<OfflinePageItem> result = new ArrayList<OfflinePageItem>();
218 nativeGetAllPages(mNativeOfflinePageBridge, result); 214 nativeGetAllPages(mNativeOfflinePageBridge, result);
219 return result; 215 return result;
220 } 216 }
221 217
222 /** 218 /**
223 * Gets an offline page associated with a provided bookmark ID. 219 * Gets an offline page associated with a provided bookmark ID.
224 * 220 *
225 * @param bookmarkId Id of the bookmark associated with an offline page. 221 * @param bookmarkId Id of the bookmark associated with an offline page.
226 * @return An {@link OfflinePageItem} matching the bookmark Id or <code>null </code> if none 222 * @return An {@link OfflinePageItem} matching the bookmark Id or <code>null </code> if none
227 * exist. 223 * exist.
228 */ 224 */
229 @VisibleForTesting
230 public OfflinePageItem getPageByBookmarkId(BookmarkId bookmarkId) { 225 public OfflinePageItem getPageByBookmarkId(BookmarkId bookmarkId) {
231 return nativeGetPageByBookmarkId(mNativeOfflinePageBridge, bookmarkId.ge tId()); 226 return nativeGetPageByBookmarkId(mNativeOfflinePageBridge, bookmarkId.ge tId());
232 } 227 }
233 228
234 /** 229 /**
235 * Gets an offline page associated with a provided online URL. 230 * Gets an offline page associated with a provided online URL.
236 * 231 *
237 * @param onlineURL URL of the page. 232 * @param onlineURL URL of the page.
238 * @return An {@link OfflinePageItem} matching the URL or <code>null</code> if none exist. 233 * @return An {@link OfflinePageItem} matching the URL or <code>null</code> if none exist.
239 */ 234 */
240 @VisibleForTesting
241 public OfflinePageItem getPageByOnlineURL(String onlineURL) { 235 public OfflinePageItem getPageByOnlineURL(String onlineURL) {
242 return nativeGetPageByOnlineURL(mNativeOfflinePageBridge, onlineURL); 236 return nativeGetPageByOnlineURL(mNativeOfflinePageBridge, onlineURL);
243 } 237 }
244 238
245 /** 239 /**
246 * Saves the web page loaded into web contents offline. 240 * Saves the web page loaded into web contents offline.
247 * 241 *
248 * @param webContents Contents of the page to save. 242 * @param webContents Contents of the page to save.
249 * @param bookmarkId Id of the bookmark related to the offline page. 243 * @param bookmarkId Id of the bookmark related to the offline page.
250 * @param callback Interface that contains a callback. 244 * @param callback Interface that contains a callback.
251 * @see SavePageCallback 245 * @see SavePageCallback
252 */ 246 */
253 @VisibleForTesting
254 public void savePage(final WebContents webContents, final BookmarkId bookmar kId, 247 public void savePage(final WebContents webContents, final BookmarkId bookmar kId,
255 final SavePageCallback callback) { 248 final SavePageCallback callback) {
256 assert mIsNativeOfflinePageModelLoaded; 249 assert mIsNativeOfflinePageModelLoaded;
257 assert webContents != null; 250 assert webContents != null;
258 251
259 SavePageCallback callbackWrapper = new SavePageCallback() { 252 SavePageCallback callbackWrapper = new SavePageCallback() {
260 @Override 253 @Override
261 public void onSavePageDone(int savePageResult, String url) { 254 public void onSavePageDone(int savePageResult, String url) {
262 // TODO(fgorski): Eliminate call to getAllPages() here. 255 // TODO(fgorski): Eliminate call to getAllPages() here.
263 // See http://crbug.com/566939 256 // See http://crbug.com/566939
(...skipping 19 matching lines...) Expand all
283 nativeMarkPageAccessed(mNativeOfflinePageBridge, bookmarkId.getId()); 276 nativeMarkPageAccessed(mNativeOfflinePageBridge, bookmarkId.getId());
284 } 277 }
285 278
286 /** 279 /**
287 * Deletes an offline page related to a specified bookmark. 280 * Deletes an offline page related to a specified bookmark.
288 * 281 *
289 * @param bookmarkId Bookmark ID for which the offline copy will be deleted. 282 * @param bookmarkId Bookmark ID for which the offline copy will be deleted.
290 * @param callback Interface that contains a callback. 283 * @param callback Interface that contains a callback.
291 * @see DeletePageCallback 284 * @see DeletePageCallback
292 */ 285 */
293 @VisibleForTesting
294 public void deletePage(final BookmarkId bookmarkId, DeletePageCallback callb ack) { 286 public void deletePage(final BookmarkId bookmarkId, DeletePageCallback callb ack) {
295 assert mIsNativeOfflinePageModelLoaded; 287 assert mIsNativeOfflinePageModelLoaded;
296 288
297 recordFreeSpaceHistograms("OfflinePages.DeletePage.FreeSpacePercentage", 289 recordFreeSpaceHistograms("OfflinePages.DeletePage.FreeSpacePercentage",
298 "OfflinePages.DeletePage.FreeSpaceMB"); 290 "OfflinePages.DeletePage.FreeSpaceMB");
299 291
300 DeletePageCallback callbackWrapper = wrapCallbackWithHistogramReporting( callback); 292 DeletePageCallback callbackWrapper = wrapCallbackWithHistogramReporting( callback);
301 nativeDeletePage(mNativeOfflinePageBridge, callbackWrapper, bookmarkId.g etId()); 293 nativeDeletePage(mNativeOfflinePageBridge, callbackWrapper, bookmarkId.g etId());
302 } 294 }
303 295
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 return result; 332 return result;
341 } 333 }
342 334
343 /** 335 /**
344 * Starts a check of offline page metadata, e.g. are all offline copies pres ent. 336 * Starts a check of offline page metadata, e.g. are all offline copies pres ent.
345 */ 337 */
346 public void checkOfflinePageMetadata() { 338 public void checkOfflinePageMetadata() {
347 nativeCheckMetadataConsistency(mNativeOfflinePageBridge); 339 nativeCheckMetadataConsistency(mNativeOfflinePageBridge);
348 } 340 }
349 341
342 /**
343 * Gets the offline URL of based on the online url of an offline page, if on e exists.
jianli 2015/12/16 01:41:23 Gets the offline URL of an offline page that is sa
fgorski 2015/12/16 22:12:58 Done.
344 * @param onlineUrl Online URL, which might have offline copy.
345 * @return URL pointing to the offline copy or <code>null</code> in none exi sts.
jianli 2015/12/16 01:41:23 in => if
fgorski 2015/12/16 22:12:58 Done.
346 */
347 public String getOfflineUrlByOnlineUrl(String onlineUrl) {
348 assert mIsNativeOfflinePageModelLoaded;
349 return nativeGetOfflineUrlByOnlineUrl(mNativeOfflinePageBridge, onlineUr l);
350 }
351
352 /**
353 * Checks whether a provided url belongs to an offline page.
jianli 2015/12/16 01:41:23 Returns true if an offline page stored in the prov
fgorski 2015/12/16 22:12:58 Done.
354 * @param offlineUrl A URL potentially pointing to an offline copy of an off line page.
355 * @return Whether a provided url points to an offline copy of an offline pa ge.
356 */
357 @VisibleForTesting
358 public boolean isOfflinePageUrl(String offlineUrl) {
359 assert mIsNativeOfflinePageModelLoaded;
360 return nativeIsOfflinePageUrl(mNativeOfflinePageBridge, offlineUrl);
361 }
362
350 private DeletePageCallback wrapCallbackWithHistogramReporting( 363 private DeletePageCallback wrapCallbackWithHistogramReporting(
351 final DeletePageCallback callback) { 364 final DeletePageCallback callback) {
352 final long totalPageSizeBefore = getTotalSize(getAllPages()); 365 final long totalPageSizeBefore = getTotalSize(getAllPages());
353 return new DeletePageCallback() { 366 return new DeletePageCallback() {
354 @Override 367 @Override
355 public void onDeletePageDone(int deletePageResult) { 368 public void onDeletePageDone(int deletePageResult) {
356 // TODO(fgorski): Eliminate call to getAllPages() here. 369 // TODO(fgorski): Eliminate call to getAllPages() here.
357 // See http://crbug.com/566939 370 // See http://crbug.com/566939
358 if (deletePageResult == DeletePageResult.SUCCESS && isOfflinePag eModelLoaded()) { 371 if (deletePageResult == DeletePageResult.SUCCESS && isOfflinePag eModelLoaded()) {
359 long totalPageSizeAfter = getTotalSize(getAllPages()); 372 long totalPageSizeAfter = getTotalSize(getAllPages());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 private native void nativeSavePage(long nativeOfflinePageBridge, SavePageCal lback callback, 431 private native void nativeSavePage(long nativeOfflinePageBridge, SavePageCal lback callback,
419 WebContents webContents, long bookmarkId); 432 WebContents webContents, long bookmarkId);
420 private native void nativeMarkPageAccessed(long nativeOfflinePageBridge, lon g bookmarkId); 433 private native void nativeMarkPageAccessed(long nativeOfflinePageBridge, lon g bookmarkId);
421 private native void nativeDeletePage(long nativeOfflinePageBridge, 434 private native void nativeDeletePage(long nativeOfflinePageBridge,
422 DeletePageCallback callback, long bookmarkId); 435 DeletePageCallback callback, long bookmarkId);
423 private native void nativeDeletePages( 436 private native void nativeDeletePages(
424 long nativeOfflinePageBridge, DeletePageCallback callback, long[] bo okmarkIds); 437 long nativeOfflinePageBridge, DeletePageCallback callback, long[] bo okmarkIds);
425 private native void nativeGetPagesToCleanUp( 438 private native void nativeGetPagesToCleanUp(
426 long nativeOfflinePageBridge, List<OfflinePageItem> offlinePages); 439 long nativeOfflinePageBridge, List<OfflinePageItem> offlinePages);
427 private native void nativeCheckMetadataConsistency(long nativeOfflinePageBri dge); 440 private native void nativeCheckMetadataConsistency(long nativeOfflinePageBri dge);
441 private native String nativeGetOfflineUrlByOnlineUrl(
442 long nativeOfflinePageBridge, String onlineUrl);
443 private native boolean nativeIsOfflinePageUrl(long nativeOfflinePageBridge, String offlineUrl);
428 } 444 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698