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

Unified Diff: chrome/browser/android/offline_pages/prerendering_loader.cc

Issue 2548903002: [OfflinePages] Classifies PRERENDERING_FAILED cases whether to TryNext (Closed)
Patch Set: Added a PrerenderingLoader unittest Created 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/android/offline_pages/prerendering_loader_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/offline_pages/prerendering_loader.cc
diff --git a/chrome/browser/android/offline_pages/prerendering_loader.cc b/chrome/browser/android/offline_pages/prerendering_loader.cc
index c2b85f6e3060a79eb7d225ac13479a40e9ac1a92..fb1c4bc8c86abcbb0ca2615d0a2d0290ac0f56d1 100644
--- a/chrome/browser/android/offline_pages/prerendering_loader.cc
+++ b/chrome/browser/android/offline_pages/prerendering_loader.cc
@@ -34,22 +34,43 @@ namespace offline_pages {
Offliner::RequestStatus ClassifyFinalStatus(
prerender::FinalStatus final_status) {
switch (final_status) {
-
- // Identify aborted/canceled operations
+ // Identify aborted/canceled operations.
case prerender::FINAL_STATUS_CANCELLED:
// TODO(dougarnett): Reconsider if/when get better granularity (642768)
case prerender::FINAL_STATUS_UNSUPPORTED_SCHEME:
return Offliner::PRERENDERING_CANCELED;
- // Identify non-retryable failues.
+ // Identify non-retryable failures. These are a hard type failures
+ // associated with the page and so are expected to occur again if retried.
case prerender::FINAL_STATUS_SAFE_BROWSING:
case prerender::FINAL_STATUS_CREATING_AUDIO_STREAM:
case prerender::FINAL_STATUS_JAVASCRIPT_ALERT:
+ case prerender::FINAL_STATUS_CREATE_NEW_WINDOW:
+ case prerender::FINAL_STATUS_INVALID_HTTP_METHOD:
+ case prerender::FINAL_STATUS_OPEN_URL:
return Offliner::RequestStatus::PRERENDERING_FAILED_NO_RETRY;
+ // Identify failures that indicate we should stop further processing
+ // for now. These may be current resource issues or app closing.
+
+ case prerender::FINAL_STATUS_MEMORY_LIMIT_EXCEEDED:
+ case prerender::FINAL_STATUS_RATE_LIMIT_EXCEEDED:
+ case prerender::FINAL_STATUS_RENDERER_CRASHED:
+ case prerender::FINAL_STATUS_TOO_MANY_PROCESSES:
+ case prerender::FINAL_STATUS_TIMED_OUT:
+ case prerender::FINAL_STATUS_APP_TERMINATING:
+ case prerender::FINAL_STATUS_PROFILE_DESTROYED:
+ return Offliner::RequestStatus::PRERENDERING_FAILED_NO_NEXT;
+
// Otherwise, assume retryable failure.
+
+ case prerender::FINAL_STATUS_NEW_NAVIGATION_ENTRY:
+ case prerender::FINAL_STATUS_CACHE_OR_HISTORY_CLEARED:
+ case prerender::FINAL_STATUS_SSL_ERROR:
+ case prerender::FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED:
+ case prerender::FINAL_STATUS_WINDOW_PRINT:
default:
return Offliner::RequestStatus::PRERENDERING_FAILED;
}
« no previous file with comments | « no previous file | chrome/browser/android/offline_pages/prerendering_loader_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698