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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/prerendering_offliner.h" 5 #include "chrome/browser/android/offline_pages/prerendering_offliner.h"
6 6
7 #include "base/bind.h"
8 #include "components/offline_pages/background/save_page_request.h"
9 #include "content/public/browser/browser_context.h"
10
7 namespace offline_pages { 11 namespace offline_pages {
8 12
9 PrerenderingOffliner::PrerenderingOffliner(const OfflinerPolicy* policy, 13 PrerenderingOffliner::PrerenderingOffliner(
10 PrerenderManager* prerender_manager, 14 content::BrowserContext* browser_context,
11 OfflinePageModel* offline_page_model) 15 const OfflinerPolicy* policy,
12 : loader_(new PrerenderingLoader(prerender_manager)) {} 16 OfflinePageModel* offline_page_model)
17 : PrerenderingOffliner(browser_context,
18 policy,
19 offline_page_model,
20 new PrerenderingLoader(browser_context)) {}
21
22 PrerenderingOffliner::PrerenderingOffliner(
23 content::BrowserContext* browser_context,
24 const OfflinerPolicy* policy,
25 OfflinePageModel* offline_page_model,
26 PrerenderingLoader* loader)
27 : offline_page_model_(offline_page_model),
28 loader_(loader),
29 weak_ptr_factory_(this) {}
13 30
14 PrerenderingOffliner::~PrerenderingOffliner() {} 31 PrerenderingOffliner::~PrerenderingOffliner() {}
15 32
33 void PrerenderingOffliner::OnLoadPageDone(
34 const Offliner::CompletionStatus load_status,
35 content::WebContents* contents) {
36 // TODO(dougarnett): Implement save attempt and running CompletionCallback.
37 }
38
16 bool PrerenderingOffliner::LoadAndSave(const SavePageRequest& request, 39 bool PrerenderingOffliner::LoadAndSave(const SavePageRequest& request,
17 const CompletionCallback& callback) { 40 const CompletionCallback& callback) {
18 // TODO(dougarnett): implement. 41 if (!offline_page_model_->CanSavePage(request.url()))
19 return false; 42 return false;
43
44 // Kick off load page attempt.
45 return (loader_->LoadPage(request.url(),
46 base::Bind(&PrerenderingOffliner::OnLoadPageDone,
47 weak_ptr_factory_.GetWeakPtr())));
20 } 48 }
21 49
22 void PrerenderingOffliner::Cancel() { 50 void PrerenderingOffliner::Cancel() {
23 loader_->StopLoading(); 51 loader_->StopLoading();
24 } 52 }
25 53
26 } // namespace offline_pages 54 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698