| OLD | NEW |
| 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/data_use_measurement/data_use_web_contents_observer.h" | 5 #include "chrome/browser/data_use_measurement/data_use_web_contents_observer.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" |
| 7 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.h
" | 8 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber_service.h
" |
| 8 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber_service_f
actory.h" | 9 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber_service_f
actory.h" |
| 9 #include "content/public/browser/navigation_handle.h" | 10 #include "content/public/browser/navigation_handle.h" |
| 10 #include "content/public/browser/render_frame_host.h" | 11 #include "content/public/browser/render_frame_host.h" |
| 11 | 12 |
| 12 DEFINE_WEB_CONTENTS_USER_DATA_KEY( | 13 DEFINE_WEB_CONTENTS_USER_DATA_KEY( |
| 13 data_use_measurement::DataUseWebContentsObserver); | 14 data_use_measurement::DataUseWebContentsObserver); |
| 14 | 15 |
| 15 namespace data_use_measurement { | 16 namespace data_use_measurement { |
| 16 | 17 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 27 // exists. | 28 // exists. |
| 28 if (!service || FromWebContents(web_contents)) | 29 if (!service || FromWebContents(web_contents)) |
| 29 return; | 30 return; |
| 30 | 31 |
| 31 // |DataUseWebContentsObserver| is a |WebContentsUserData| so its lifetime | 32 // |DataUseWebContentsObserver| is a |WebContentsUserData| so its lifetime |
| 32 // is scoped to |web_contents|. | 33 // is scoped to |web_contents|. |
| 33 // |ChromeDataUseAscriberService| is a |KeyedService| and its lifetime is | 34 // |ChromeDataUseAscriberService| is a |KeyedService| and its lifetime is |
| 34 // tied to a profile. Since profiles outlive |WebContents|, |service| will | 35 // tied to a profile. Since profiles outlive |WebContents|, |service| will |
| 35 // outlive |DataUseWebContentsObserver|. | 36 // outlive |DataUseWebContentsObserver|. |
| 36 web_contents->SetUserData( | 37 web_contents->SetUserData( |
| 37 UserDataKey(), new DataUseWebContentsObserver(web_contents, service)); | 38 UserDataKey(), |
| 39 base::WrapUnique(new DataUseWebContentsObserver(web_contents, service))); |
| 38 } | 40 } |
| 39 | 41 |
| 40 DataUseWebContentsObserver::DataUseWebContentsObserver( | 42 DataUseWebContentsObserver::DataUseWebContentsObserver( |
| 41 content::WebContents* web_contents, | 43 content::WebContents* web_contents, |
| 42 ChromeDataUseAscriberService* service) | 44 ChromeDataUseAscriberService* service) |
| 43 : content::WebContentsObserver(web_contents), service_(service) { | 45 : content::WebContentsObserver(web_contents), service_(service) { |
| 44 // Call RenderFrameCreated for live frames so that |service_| knows about | 46 // Call RenderFrameCreated for live frames so that |service_| knows about |
| 45 // all the RenderFrameHosts. | 47 // all the RenderFrameHosts. |
| 46 for (content::RenderFrameHost* frame : web_contents->GetAllFrames()) { | 48 for (content::RenderFrameHost* frame : web_contents->GetAllFrames()) { |
| 47 if (frame->IsRenderFrameLive()) { | 49 if (frame->IsRenderFrameLive()) { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 content::RenderFrameHost* new_host) { | 87 content::RenderFrameHost* new_host) { |
| 86 service_->RenderFrameHostChanged(old_host, new_host); | 88 service_->RenderFrameHostChanged(old_host, new_host); |
| 87 } | 89 } |
| 88 | 90 |
| 89 void DataUseWebContentsObserver::DidFinishNavigation( | 91 void DataUseWebContentsObserver::DidFinishNavigation( |
| 90 content::NavigationHandle* navigation_handle) { | 92 content::NavigationHandle* navigation_handle) { |
| 91 service_->DidFinishNavigation(navigation_handle); | 93 service_->DidFinishNavigation(navigation_handle); |
| 92 } | 94 } |
| 93 | 95 |
| 94 } // namespace data_use_measurement | 96 } // namespace data_use_measurement |
| OLD | NEW |