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

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

Issue 1961083002: Updates to PrerenderingOffliner and PrerenderingLoader interfaces to push PrerenderManager knowledge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed some petewil feedback. Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/offline_pages/prerendering_offliner.cc
diff --git a/chrome/browser/android/offline_pages/prerendering_offliner.cc b/chrome/browser/android/offline_pages/prerendering_offliner.cc
index b6d834be1f87df73b59c7582489df0e665eed38d..51fe385f2031f5284a7da30955da648b6aa1f67b 100644
--- a/chrome/browser/android/offline_pages/prerendering_offliner.cc
+++ b/chrome/browser/android/offline_pages/prerendering_offliner.cc
@@ -4,19 +4,47 @@
#include "chrome/browser/android/offline_pages/prerendering_offliner.h"
+#include "base/bind.h"
+#include "components/offline_pages/background/save_page_request.h"
+#include "content/public/browser/browser_context.h"
+
namespace offline_pages {
-PrerenderingOffliner::PrerenderingOffliner(const OfflinerPolicy* policy,
- PrerenderManager* prerender_manager,
- OfflinePageModel* offline_page_model)
- : loader_(new PrerenderingLoader(prerender_manager)) {}
+PrerenderingOffliner::PrerenderingOffliner(
+ content::BrowserContext* browser_context,
+ const OfflinerPolicy* policy,
+ OfflinePageModel* offline_page_model)
+ : PrerenderingOffliner(browser_context,
+ policy,
+ offline_page_model,
+ new PrerenderingLoader(browser_context)) {}
+
+PrerenderingOffliner::PrerenderingOffliner(
+ content::BrowserContext* browser_context,
+ const OfflinerPolicy* policy,
+ OfflinePageModel* offline_page_model,
+ PrerenderingLoader* loader)
+ : offline_page_model_(offline_page_model),
+ loader_(loader),
+ weak_ptr_factory_(this) {}
PrerenderingOffliner::~PrerenderingOffliner() {}
+void PrerenderingOffliner::OnLoadPageDone(
+ const Offliner::CompletionStatus load_status,
+ content::WebContents* contents) {
+ // TODO(dougarnett): Implement save attempt and running CompletionCallback.
+}
+
bool PrerenderingOffliner::LoadAndSave(const SavePageRequest& request,
const CompletionCallback& callback) {
- // TODO(dougarnett): implement.
- return false;
+ if (!offline_page_model_->CanSavePage(request.url()))
+ return false;
+
+ // Kick off load page attempt.
+ return (loader_->LoadPage(request.url(),
+ base::Bind(&PrerenderingOffliner::OnLoadPageDone,
+ weak_ptr_factory_.GetWeakPtr())));
}
void PrerenderingOffliner::Cancel() {

Powered by Google App Engine
This is Rietveld 408576698