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

Side by Side Diff: chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc

Issue 2372573005: Update OnCommit to return ObservePolicy. (Closed)
Patch Set: restore missing private: 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/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h" 5 #include "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/optional.h" 9 #include "base/optional.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 const char kHistogramParseDurationSuffix[] = "ParseTiming.ParseDuration"; 84 const char kHistogramParseDurationSuffix[] = "ParseTiming.ParseDuration";
85 85
86 } // namespace internal 86 } // namespace internal
87 87
88 DataReductionProxyMetricsObserver::DataReductionProxyMetricsObserver() 88 DataReductionProxyMetricsObserver::DataReductionProxyMetricsObserver()
89 : browser_context_(nullptr) {} 89 : browser_context_(nullptr) {}
90 90
91 DataReductionProxyMetricsObserver::~DataReductionProxyMetricsObserver() {} 91 DataReductionProxyMetricsObserver::~DataReductionProxyMetricsObserver() {}
92 92
93 // Check if the NavigationData indicates anything about the DataReductionProxy. 93 // Check if the NavigationData indicates anything about the DataReductionProxy.
94 void DataReductionProxyMetricsObserver::OnCommit( 94 page_load_metrics::PageLoadMetricsObserver::ObservePolicy
95 DataReductionProxyMetricsObserver::OnCommit(
95 content::NavigationHandle* navigation_handle) { 96 content::NavigationHandle* navigation_handle) {
96 // This BrowserContext is valid for the lifetime of 97 // This BrowserContext is valid for the lifetime of
97 // DataReductionProxyMetricsObserver. BrowserContext is always valid and 98 // DataReductionProxyMetricsObserver. BrowserContext is always valid and
98 // non-nullptr in NavigationControllerImpl, which is a member of WebContents. 99 // non-nullptr in NavigationControllerImpl, which is a member of WebContents.
99 // A raw pointer to BrowserContext taken at this point will be valid until 100 // A raw pointer to BrowserContext taken at this point will be valid until
100 // after WebContent's destructor. The latest that PageLoadTracker's destructor 101 // after WebContent's destructor. The latest that PageLoadTracker's destructor
101 // will be called is in MetricsWebContentsObserver's destrcutor, which is 102 // will be called is in MetricsWebContentsObserver's destrcutor, which is
102 // called in WebContents destructor. 103 // called in WebContents destructor.
103 browser_context_ = navigation_handle->GetWebContents()->GetBrowserContext(); 104 browser_context_ = navigation_handle->GetWebContents()->GetBrowserContext();
104 // As documented in content/public/browser/navigation_handle.h, this 105 // As documented in content/public/browser/navigation_handle.h, this
105 // NavigationData is a clone of the NavigationData instance returned from 106 // NavigationData is a clone of the NavigationData instance returned from
106 // ResourceDispatcherHostDelegate::GetNavigationData during commit. 107 // ResourceDispatcherHostDelegate::GetNavigationData during commit.
107 // Because ChromeResourceDispatcherHostDelegate always returns a 108 // Because ChromeResourceDispatcherHostDelegate always returns a
108 // ChromeNavigationData, it is safe to static_cast here. 109 // ChromeNavigationData, it is safe to static_cast here.
109 ChromeNavigationData* chrome_navigation_data = 110 ChromeNavigationData* chrome_navigation_data =
110 static_cast<ChromeNavigationData*>( 111 static_cast<ChromeNavigationData*>(
111 navigation_handle->GetNavigationData()); 112 navigation_handle->GetNavigationData());
112 if (!chrome_navigation_data) 113 if (!chrome_navigation_data)
113 return; 114 return STOP_OBSERVING;
114 data_reduction_proxy::DataReductionProxyData* data = 115 data_reduction_proxy::DataReductionProxyData* data =
115 chrome_navigation_data->GetDataReductionProxyData(); 116 chrome_navigation_data->GetDataReductionProxyData();
116 if (!data) 117 if (!data)
117 return; 118 return STOP_OBSERVING;
118 data_ = data->DeepCopy(); 119 data_ = data->DeepCopy();
119 // DataReductionProxy page loads should only occur on HTTP navigations. 120 // DataReductionProxy page loads should only occur on HTTP navigations.
120 DCHECK(!data_->used_data_reduction_proxy() || 121 DCHECK(!data_->used_data_reduction_proxy() ||
121 !navigation_handle->GetURL().SchemeIsCryptographic()); 122 !navigation_handle->GetURL().SchemeIsCryptographic());
123 return CONTINUE_OBSERVING;
122 } 124 }
123 125
124 void DataReductionProxyMetricsObserver::OnComplete( 126 void DataReductionProxyMetricsObserver::OnComplete(
125 const page_load_metrics::PageLoadTiming& timing, 127 const page_load_metrics::PageLoadTiming& timing,
126 const page_load_metrics::PageLoadExtraInfo& info) { 128 const page_load_metrics::PageLoadExtraInfo& info) {
127 // TODO(ryansturm): Move to OnFirstBackgroundEvent to handle some fast 129 // TODO(ryansturm): Move to OnFirstBackgroundEvent to handle some fast
128 // shutdown cases. crbug.com/618072 130 // shutdown cases. crbug.com/618072
129 if (!browser_context_) 131 if (!browser_context_)
130 return; 132 return;
131 if (!data_ || !data_->used_data_reduction_proxy()) 133 if (!data_ || !data_->used_data_reduction_proxy())
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 257
256 DataReductionProxyPingbackClient* 258 DataReductionProxyPingbackClient*
257 DataReductionProxyMetricsObserver::GetPingbackClient() const { 259 DataReductionProxyMetricsObserver::GetPingbackClient() const {
258 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext( 260 return DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
259 browser_context_) 261 browser_context_)
260 ->data_reduction_proxy_service() 262 ->data_reduction_proxy_service()
261 ->pingback_client(); 263 ->pingback_client();
262 } 264 }
263 265
264 } // namespace data_reduction_proxy 266 } // namespace data_reduction_proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698