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

Side by Side Diff: chrome/browser/loader/chrome_navigation_data.cc

Issue 2362033002: Showing previews UI for Offline Previews (Closed)
Patch Set: megjablon comments rebase Created 4 years, 2 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/loader/chrome_navigation_data.h" 5 #include "chrome/browser/loader/chrome_navigation_data.h"
6 6
7 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data .h" 7 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_data .h"
8 #include "components/offline_pages/loaded_offline_page_info.h"
9 #include "content/public/browser/navigation_handle.h"
8 #include "net/url_request/url_request.h" 10 #include "net/url_request/url_request.h"
9 11
12 namespace {
13
10 const void* const kChromeNavigationDataUserDataKey = 14 const void* const kChromeNavigationDataUserDataKey =
11 &kChromeNavigationDataUserDataKey; 15 &kChromeNavigationDataUserDataKey;
16 }
12 17
13 ChromeNavigationData::ChromeNavigationData() {} 18 ChromeNavigationData::ChromeNavigationData() {}
14 19
15 ChromeNavigationData::~ChromeNavigationData() {} 20 ChromeNavigationData::~ChromeNavigationData() {}
16 21
17 ChromeNavigationData* ChromeNavigationData::GetDataAndCreateIfNecessary( 22 ChromeNavigationData* ChromeNavigationData::GetDataAndCreateIfNecessary(
18 net::URLRequest* request) { 23 net::URLRequest* request) {
19 if (!request) 24 if (!request)
20 return nullptr; 25 return nullptr;
21 ChromeNavigationData* data = static_cast<ChromeNavigationData*>( 26 ChromeNavigationData* data = static_cast<ChromeNavigationData*>(
22 request->GetUserData(kChromeNavigationDataUserDataKey)); 27 request->GetUserData(kChromeNavigationDataUserDataKey));
23 if (data) 28 if (data)
24 return data; 29 return data;
25 data = new ChromeNavigationData(); 30 data = new ChromeNavigationData();
26 request->SetUserData(kChromeNavigationDataUserDataKey, data); 31 request->SetUserData(kChromeNavigationDataUserDataKey, data);
27 return data; 32 return data;
28 } 33 }
29 34
35 ChromeNavigationData* ChromeNavigationData::GetForNavigationHandle(
36 content::NavigationHandle* navigation_handle) {
37 // As documented in content/public/browser/navigation_handle.h, this
38 // NavigationData is a clone of the NavigationData instance returned from
39 // ResourceDispatcherHostDelegate::GetNavigationData during commit.
40 // Because ChromeResourceDispatcherHostDelegate always returns a
41 // ChromeNavigationData, it is safe to static_cast here.
42 if (!navigation_handle)
43 return nullptr;
44 return static_cast<ChromeNavigationData*>(
45 navigation_handle->GetNavigationData());
46 }
47
30 std::unique_ptr<content::NavigationData> ChromeNavigationData::Clone() const { 48 std::unique_ptr<content::NavigationData> ChromeNavigationData::Clone() const {
31 std::unique_ptr<ChromeNavigationData> copy(new ChromeNavigationData()); 49 std::unique_ptr<ChromeNavigationData> copy(new ChromeNavigationData());
32 if (data_reduction_proxy_data_) 50 if (data_reduction_proxy_data_)
33 copy->SetDataReductionProxyData(data_reduction_proxy_data_->DeepCopy()); 51 copy->SetDataReductionProxyData(data_reduction_proxy_data_->DeepCopy());
52 if (loaded_offline_page_info_)
53 copy->SetLoadedOfflinePageInfo(loaded_offline_page_info_->DeepCopy());
34 return std::move(copy); 54 return std::move(copy);
35 } 55 }
56
57 void ChromeNavigationData::SetDataReductionProxyData(
58 std::unique_ptr<data_reduction_proxy::DataReductionProxyData>
59 data_reduction_proxy_data) {
60 data_reduction_proxy_data_ = std::move(data_reduction_proxy_data);
61 }
62
63 void ChromeNavigationData::SetLoadedOfflinePageInfo(
64 std::unique_ptr<offline_pages::LoadedOfflinePageInfo>
65 loaded_offline_page_info) {
66 loaded_offline_page_info_ = std::move(loaded_offline_page_info);
67 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698