Index: chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.cc |
diff --git a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.cc b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.cc |
index 355d5db627bb2deb4a34ba02632becb204766b52..54cb31c27fc0f7c20fb7d5096208624810d6f919 100644 |
--- a/chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.cc |
+++ b/chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.cc |
@@ -163,6 +163,27 @@ void ChromeDataUseAscriberService::ReadyToCommitNavigation( |
navigation_handle)); |
} |
+void ChromeDataUseAscriberService::DidFinishNavigation( |
+ content::NavigationHandle* navigation_handle) { |
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
+ |
+ if (!navigation_handle->IsInMainFrame() || |
+ !navigation_handle->HasCommitted() || navigation_handle->IsSameDocument()) |
+ return; |
+ |
+ if (!ascriber_) |
+ return; |
+ |
+ content::WebContents* web_contents = navigation_handle->GetWebContents(); |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, FROM_HERE, |
+ base::Bind(&ChromeDataUseAscriber::DidFinishNavigation, |
+ base::Unretained(ascriber_), |
+ web_contents->GetRenderProcessHost()->GetID(), |
+ web_contents->GetMainFrame()->GetRoutingID(), |
+ navigation_handle->GetPageTransition())); |
+} |
+ |
void ChromeDataUseAscriberService::SetDataUseAscriber( |
ChromeDataUseAscriber* ascriber) { |
DCHECK(!is_initialized_); |