Chromium Code Reviews| Index: chrome/browser/android/offline_pages/prerendering_offliner.h |
| diff --git a/chrome/browser/android/offline_pages/prerendering_offliner.h b/chrome/browser/android/offline_pages/prerendering_offliner.h |
| index 4b970c4ce4eba576d87d20cad3449d3e62a4e9f4..c21c9078d865c4ee0deaebba44aa4085e7c2cbff 100644 |
| --- a/chrome/browser/android/offline_pages/prerendering_offliner.h |
| +++ b/chrome/browser/android/offline_pages/prerendering_offliner.h |
| @@ -11,6 +11,7 @@ |
| #include "chrome/browser/android/offline_pages/prerendering_loader.h" |
| #include "components/offline_pages/background/offliner.h" |
| #include "components/offline_pages/offline_page_model.h" |
| +#include "components/offline_pages/offline_page_types.h" |
| namespace content { |
| class BrowserContext; |
| @@ -40,11 +41,36 @@ class PrerenderingOffliner : public Offliner { |
| // and must be called before any of the Offliner interface methods are called. |
| void SetLoaderForTesting(std::unique_ptr<PrerenderingLoader> loader); |
| + protected: |
| + // Internal method for OfflinePageModel's check if url can be saved. |
| + // Exposed for unit testing. |
| + // TODO(dougarnett): Consider making OfflinePageModel mockable instead. |
|
fgorski
2016/05/24 19:58:28
we are going to get there.
dougarnett
2016/05/25 18:04:19
Acknowledged. May break out subinterface in follow
|
| + virtual bool CanSavePage(const GURL& url); |
| + |
| + // Internal method for requesting OfflinePageModel to save page. |
| + // Exposed for unit testing. |
| + // TODO(dougarnett): Consider making OfflinePageModel mockable instead. |
| + virtual void SavePage(const GURL& url, |
| + const ClientId& client_id, |
| + std::unique_ptr<OfflinePageArchiver> archiver, |
| + const SavePageCallback& callback); |
| + |
| private: |
| - void OnLoadPageDone(const Offliner::RequestStatus load_status, |
| - content::WebContents* contents); |
| + // Callback logic for PrerenderingLoader::LoadPage(). |
| + void OnLoadPageDone(const SavePageRequest& request, |
| + const CompletionCallback& completion_callback, |
| + Offliner::RequestStatus load_status, |
| + content::WebContents* web_contents); |
| + |
| + // Callback logic for OfflinePageModel::SavePage(). |
| + void OnSavePageDone(const SavePageRequest& request, |
| + const CompletionCallback& completion_callback, |
| + SavePageResult save_result, |
| + int64_t offline_id); |
| PrerenderingLoader* GetOrCreateLoader(); |
| + void SetPendingRequest(int64_t request_id); |
| + void ClearPendingRequest(); |
| // Not owned. |
| content::BrowserContext* browser_context_; |
| @@ -52,6 +78,7 @@ class PrerenderingOffliner : public Offliner { |
| OfflinePageModel* offline_page_model_; |
| // Lazily created. |
| std::unique_ptr<PrerenderingLoader> loader_; |
| + int64_t pending_request_id_; |
|
fgorski
2016/05/24 19:58:28
Please document this one.
I am wondering why you
dougarnett
2016/05/25 18:04:19
Tracking ptr to pending request now and included c
|
| base::WeakPtrFactory<PrerenderingOffliner> weak_ptr_factory_; |
| DISALLOW_COPY_AND_ASSIGN(PrerenderingOffliner); |