blob: f87d5adf9134db07dcf252ab7130f02fd837dd93 [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"
Ilya Sherman982457e62017-12-13 02:19:368#include "base/metrics/histogram_functions.h"
nick16794822015-06-02 23:23:319#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;
Ilya Sherman982457e62017-12-13 02:19:3618 base::UmaHistogramSparse("Stability.BadMessageTerminated.Chrome", reason);
nick16794822015-06-02 23:23:3119}
20
21} // namespace
22
23void ReceivedBadMessage(content::RenderProcessHost* host,
24 BadMessageReason reason) {
25 LogBadMessage(reason);
rockotf050c892016-10-05 01:28:2826 host->ShutdownForBadMessage(
27 content::RenderProcessHost::CrashReportMode::GENERATE_CRASH_DUMP);
nick16794822015-06-02 23:23:3128}
29
30void ReceivedBadMessage(content::BrowserMessageFilter* filter,
31 BadMessageReason reason) {
32 LogBadMessage(reason);
33 filter->ShutdownForBadMessage();
34}
35
36} // namespace bad_message