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..43e3d8fa00f233e4a01b19ae866cdb9d736b68b7 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,17 @@ 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::SampleString(g_browser_process->rappor_service(), 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(), |
+ metric, sample); |
+} |