Chromium Code Reviews| Index: chrome/browser/renderer_host/chrome_render_message_filter.cc |
| diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc |
| index f38bd409684c197b2b0b3f3c73da05a855d8a987..2a28b45a2184e0423e890271ee8e2e4b12e467cc 100644 |
| --- a/chrome/browser/renderer_host/chrome_render_message_filter.cc |
| +++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc |
| @@ -11,6 +11,7 @@ |
| #include "base/logging.h" |
| #include "base/metrics/field_trial.h" |
| #include "base/metrics/histogram.h" |
| +#include "chrome/browser/browser_process.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/content_settings/cookie_settings.h" |
| #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
| @@ -21,6 +22,8 @@ |
| #include "chrome/common/render_messages.h" |
| #include "components/network_hints/common/network_hints_common.h" |
| #include "components/network_hints/common/network_hints_messages.h" |
| +#include "components/rappor/rappor_service.h" |
| +#include "components/rappor/rappor_utils.h" |
| #include "components/web_cache/browser/web_cache_manager.h" |
| #include "content/public/browser/notification_service.h" |
| #include "content/public/browser/render_process_host.h" |
| @@ -89,6 +92,8 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message) { |
| #endif |
| IPC_MESSAGE_HANDLER(ChromeViewHostMsg_FieldTrialActivated, |
| OnFieldTrialActivated) |
| + IPC_MESSAGE_HANDLER(ChromeViewHostMsg_RecordRappor, OnRecordRappor) |
| + IPC_MESSAGE_HANDLER(ChromeViewHostMsg_RecordRapporURL, OnRecordRapporURL) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| @@ -100,6 +105,8 @@ void ChromeRenderMessageFilter::OverrideThreadForMessage( |
| switch (message.type()) { |
| case ChromeViewHostMsg_ResourceTypeStats::ID: |
| case ChromeViewHostMsg_UpdatedCacheStats::ID: |
| + case ChromeViewHostMsg_RecordRappor::ID: |
| + case ChromeViewHostMsg_RecordRapporURL::ID: |
| *thread = BrowserThread::UI; |
| break; |
| default: |
| @@ -383,3 +390,20 @@ void ChromeRenderMessageFilter::OnFieldTrialActivated( |
| // and activates the trial. |
| base::FieldTrialList::FindFullName(trial_name); |
| } |
| + |
| +void ChromeRenderMessageFilter::OnRecordRappor(const std::string& metric, |
| + const std::string& sample) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + rappor::RapporService* rappor_service = g_browser_process->rappor_service(); |
| + if (!rappor_service) |
| + return; |
| + rappor_service->RecordSample(metric, rappor::ETLD_PLUS_ONE_RAPPOR_TYPE, |
| + sample); |
| +} |
| + |
| +void ChromeRenderMessageFilter::OnRecordRapporURL(const std::string& metric, |
| + const GURL& sample) { |
| + DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| + rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), |
|
dcheng
2015/04/08 15:15:20
I'm a little curious--why is RecordSample() a memb
Alexei Svitkine (slow)
2015/04/08 16:42:55
I agree. One advantage of the static is it removed
kojii
2015/04/08 17:31:46
I agree too, but a separate CL is appreciated. I c
|
| + metric, sample); |
| +} |