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

Side by Side Diff: chrome/browser/android/offline_pages/prerendering_offliner.cc

Issue 2015603002: PrerenderingLoader initial integration with PrerenderManager/PrerenderHandle and make it unit-testa… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adds mock adapter member initialization in constructor Created 4 years, 6 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" 7 #include "base/bind.h"
8 #include "components/offline_pages/background/save_page_request.h" 8 #include "components/offline_pages/background/save_page_request.h"
9 #include "content/public/browser/browser_context.h" 9 #include "content/public/browser/browser_context.h"
10 10
11 namespace offline_pages { 11 namespace offline_pages {
12 12
13 PrerenderingOffliner::PrerenderingOffliner( 13 PrerenderingOffliner::PrerenderingOffliner(
14 content::BrowserContext* browser_context, 14 content::BrowserContext* browser_context,
15 const OfflinerPolicy* policy, 15 const OfflinerPolicy* policy,
16 OfflinePageModel* offline_page_model) 16 OfflinePageModel* offline_page_model)
17 : browser_context_(browser_context), 17 : browser_context_(browser_context),
18 offline_page_model_(offline_page_model), 18 offline_page_model_(offline_page_model),
19 weak_ptr_factory_(this) {} 19 weak_ptr_factory_(this) {}
20 20
21 PrerenderingOffliner::~PrerenderingOffliner() {} 21 PrerenderingOffliner::~PrerenderingOffliner() {}
22 22
23 void PrerenderingOffliner::OnLoadPageDone( 23 void PrerenderingOffliner::OnLoadPageDone(Offliner::RequestStatus load_status,
24 const Offliner::CompletionStatus load_status, 24 content::WebContents* contents) {
25 content::WebContents* contents) {
26 // TODO(dougarnett): Implement save attempt and running CompletionCallback. 25 // TODO(dougarnett): Implement save attempt and running CompletionCallback.
27 } 26 }
28 27
29 bool PrerenderingOffliner::LoadAndSave(const SavePageRequest& request, 28 bool PrerenderingOffliner::LoadAndSave(const SavePageRequest& request,
30 const CompletionCallback& callback) { 29 const CompletionCallback& callback) {
31 if (!offline_page_model_->CanSavePage(request.url())) 30 if (!offline_page_model_->CanSavePage(request.url()))
32 return false; 31 return false;
33 32
34 // Kick off load page attempt. 33 // Kick off load page attempt.
35 return GetOrCreateLoader()->LoadPage( 34 return GetOrCreateLoader()->LoadPage(
36 request.url(), base::Bind(&PrerenderingOffliner::OnLoadPageDone, 35 request.url(), base::Bind(&PrerenderingOffliner::OnLoadPageDone,
37 weak_ptr_factory_.GetWeakPtr())); 36 weak_ptr_factory_.GetWeakPtr()));
38 } 37 }
39 38
40 void PrerenderingOffliner::Cancel() { 39 void PrerenderingOffliner::Cancel() {
41 GetOrCreateLoader()->StopLoading(); 40 GetOrCreateLoader()->StopLoading();
42 } 41 }
43 42
43 void PrerenderingOffliner::SetLoaderForTesting(
44 std::unique_ptr<PrerenderingLoader> loader) {
45 DCHECK(!loader_);
46 loader_ = std::move(loader);
47 }
48
44 PrerenderingLoader* PrerenderingOffliner::GetOrCreateLoader() { 49 PrerenderingLoader* PrerenderingOffliner::GetOrCreateLoader() {
45 if (!loader_) { 50 if (!loader_) {
46 loader_.reset(new PrerenderingLoader(browser_context_)); 51 loader_.reset(new PrerenderingLoader(browser_context_));
47 } 52 }
48 return loader_.get(); 53 return loader_.get();
49 } 54 }
50 55
51 void PrerenderingOffliner::SetLoaderForTesting(
52 std::unique_ptr<PrerenderingLoader> loader) {
53 DCHECK(!loader_);
54 loader_ = std::move(loader);
55 }
56
57 } // namespace offline_pages 56 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698