blob: 81a446985123f4f98b1f757abec56a53f62b290c [file] [log] [blame]
nick16794822015-06-02 23:23:311// Copyright 2015 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/bad_message.h"
6
7#include "base/logging.h"
8#include "base/metrics/histogram_macros.h"
9#include "content/public/browser/browser_message_filter.h"
10#include "content/public/browser/render_process_host.h"
11
12namespace bad_message {
13
14namespace {
15
16void LogBadMessage(BadMessageReason reason) {
17 LOG(ERROR) << "Terminating renderer for bad IPC message, reason " << reason;
18 UMA_HISTOGRAM_ENUMERATION("Stability.BadMessageTerminated.Chrome", reason,
19 BAD_MESSAGE_MAX);
20}
21
22} // namespace
23
24void ReceivedBadMessage(content::RenderProcessHost* host,
25 BadMessageReason reason) {
26 LogBadMessage(reason);
27 host->ShutdownForBadMessage();
28}
29
30void ReceivedBadMessage(content::BrowserMessageFilter* filter,
31 BadMessageReason reason) {
32 LogBadMessage(reason);
33 filter->ShutdownForBadMessage();
34}
35
36} // namespace bad_message