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

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

Issue 2683493002: Get signals working in the EXTRA_DATA section of MHTML (Closed)
Patch Set: Created 3 years, 10 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 "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/sys_info.h" 9 #include "base/sys_info.h"
10 #include "chrome/browser/android/offline_pages/offline_page_mhtml_archiver.h" 10 #include "chrome/browser/android/offline_pages/offline_page_mhtml_archiver.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 OfflinePageModel::SavePageParams save_page_params; 63 OfflinePageModel::SavePageParams save_page_params;
64 save_page_params.url = web_contents->GetLastCommittedURL(); 64 save_page_params.url = web_contents->GetLastCommittedURL();
65 save_page_params.client_id = request.client_id(); 65 save_page_params.client_id = request.client_id();
66 save_page_params.proposed_offline_id = request.request_id(); 66 save_page_params.proposed_offline_id = request.request_id();
67 save_page_params.is_background = true; 67 save_page_params.is_background = true;
68 // Pass in the original URL if it is different from the last committed URL 68 // Pass in the original URL if it is different from the last committed URL
69 // when redirects occur. 69 // when redirects occur.
70 if (save_page_params.url != request.url()) 70 if (save_page_params.url != request.url())
71 save_page_params.original_url = request.url(); 71 save_page_params.original_url = request.url();
72 72
73 SavePage(save_page_params, std::move(archiver), 73 SavePage(save_page_params, std::move(archiver), loader_->GetSignalData(),
74 base::Bind(&PrerenderingOffliner::OnSavePageDone, 74 base::Bind(&PrerenderingOffliner::OnSavePageDone,
75 weak_ptr_factory_.GetWeakPtr(), request)); 75 weak_ptr_factory_.GetWeakPtr(), request));
76 } else { 76 } else {
77 // Clear pending request and app listener then run completion callback. 77 // Clear pending request and app listener then run completion callback.
78 pending_request_.reset(nullptr); 78 pending_request_.reset(nullptr);
79 app_listener_.reset(nullptr); 79 app_listener_.reset(nullptr);
80 completion_callback_.Run(request, load_status); 80 completion_callback_.Run(request, load_status);
81 } 81 }
82 } 82 }
83 83
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 } 211 }
212 212
213 void PrerenderingOffliner::SetApplicationStateForTesting( 213 void PrerenderingOffliner::SetApplicationStateForTesting(
214 base::android::ApplicationState application_state) { 214 base::android::ApplicationState application_state) {
215 OnApplicationStateChange(application_state); 215 OnApplicationStateChange(application_state);
216 } 216 }
217 217
218 void PrerenderingOffliner::SavePage( 218 void PrerenderingOffliner::SavePage(
219 const OfflinePageModel::SavePageParams& save_page_params, 219 const OfflinePageModel::SavePageParams& save_page_params,
220 std::unique_ptr<OfflinePageArchiver> archiver, 220 std::unique_ptr<OfflinePageArchiver> archiver,
221 const std::vector<std::string>& signal_data,
221 const SavePageCallback& save_callback) { 222 const SavePageCallback& save_callback) {
222 DCHECK(offline_page_model_); 223 DCHECK(offline_page_model_);
223 offline_page_model_->SavePage( 224 offline_page_model_->SavePage(
224 save_page_params, std::move(archiver), save_callback); 225 save_page_params, std::move(archiver), signal_data, save_callback);
225 } 226 }
226 227
227 PrerenderingLoader* PrerenderingOffliner::GetOrCreateLoader() { 228 PrerenderingLoader* PrerenderingOffliner::GetOrCreateLoader() {
228 if (!loader_) { 229 if (!loader_) {
229 loader_.reset(new PrerenderingLoader(browser_context_)); 230 loader_.reset(new PrerenderingLoader(browser_context_));
230 } 231 }
231 return loader_.get(); 232 return loader_.get();
232 } 233 }
233 234
234 void PrerenderingOffliner::OnApplicationStateChange( 235 void PrerenderingOffliner::OnApplicationStateChange(
235 base::android::ApplicationState application_state) { 236 base::android::ApplicationState application_state) {
236 if (pending_request_ && is_low_end_device_ && 237 if (pending_request_ && is_low_end_device_ &&
237 application_state == 238 application_state ==
238 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES) { 239 base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES) {
239 DVLOG(1) << "App became active, canceling current offlining request"; 240 DVLOG(1) << "App became active, canceling current offlining request";
240 SavePageRequest* request = pending_request_.get(); 241 SavePageRequest* request = pending_request_.get();
241 Cancel(); 242 Cancel();
242 completion_callback_.Run(*request, 243 completion_callback_.Run(*request,
243 Offliner::RequestStatus::FOREGROUND_CANCELED); 244 Offliner::RequestStatus::FOREGROUND_CANCELED);
244 } 245 }
245 } 246 }
246 247
247 } // namespace offline_pages 248 } // namespace offline_pages
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698