| 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() {
|
|
|