summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorrbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 15:51:48 +0000
committerrbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 15:51:48 +0000
commite7ca8dd2ef98a042b7cc7437419067c43cadf1b0 (patch)
treeb5d309ff8d2cce994697e1ab04562149aeafc2db /chrome
parentf1d34fd99329613bb174cb9907f2dea2eb2ba666 (diff)
downloadchromium_src-e7ca8dd2ef98a042b7cc7437419067c43cadf1b0.zip
chromium_src-e7ca8dd2ef98a042b7cc7437419067c43cadf1b0.tar.gz
chromium_src-e7ca8dd2ef98a042b7cc7437419067c43cadf1b0.tar.bz2
Add simple trace logging of received IPC messages
Adds an entry to chrome://tracing for processing IPC messages that includes the IPC message type ID (which can be matched to a name with the ipclist tool), and in DEBUG builds (or other builds where IPC_MESSAGE_LOG_ENABLED has been set), the message name. Also adds shell_messages.h to the message generator headers (per the rules in ipc_message_macros.h) to fix broken IPC message logging. BUG=79942 TEST= Review URL: http://codereview.chromium.org/9389020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121889 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/common/all_messages.h6
-rw-r--r--chrome/tools/ipclist/ipclist.cc15
2 files changed, 15 insertions, 6 deletions
diff --git a/chrome/common/all_messages.h b/chrome/common/all_messages.h
index 7eec49d..1641525 100644
--- a/chrome/common/all_messages.h
+++ b/chrome/common/all_messages.h
@@ -1,11 +1,13 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Multiply-included file, hence no include guard.
-// Inclusion of all message files present in the system. Keep this file
+// Inclusion of all message files present in chrome. Keep this file
// up-to-date when adding a new value to enum IPCMessageStart in
// ipc/ipc_message_utils.h to include the corresponding message file.
+// Messages classes used exclusively outside of chrome should instead get an
+// exemption in chrome/tools/ipclist/ipclist.cc.
#include "chrome/browser/importer/profile_import_process_messages.h"
// We can't make common_message_generator.h include automation_messages, since
// otherwise the Chrome Frame binaries will link in a lot of unrelated chrome
diff --git a/chrome/tools/ipclist/ipclist.cc b/chrome/tools/ipclist/ipclist.cc
index 9a2faab..a2d37a8 100644
--- a/chrome/tools/ipclist/ipclist.cc
+++ b/chrome/tools/ipclist/ipclist.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -38,10 +38,11 @@ static bool check_msgtable() {
int highest_class_id = 0;
std::vector<int> exemptions;
- // Exclude test files from consideration. Do not include message
- // files used inside the actual chrome browser in this list.
+ // Exclude test and other non-browser files from consideration. Do not
+ // include message files used inside the actual chrome browser in this list.
exemptions.push_back(TestMsgStart);
exemptions.push_back(FirefoxImporterUnittestMsgStart);
+ exemptions.push_back(ShellMsgStart);
for (size_t i = 0; i < MSGTABLE_SIZE; ++i) {
int class_id = IPC_MESSAGE_ID_CLASS(msgtable[i].id);
@@ -64,9 +65,15 @@ static bool check_msgtable() {
highest_class_id = class_id;
}
- if (LastIPCMsgStart > highest_class_id + 1) {
+ while (LastIPCMsgStart > highest_class_id + 1) {
+ std::vector<int>::iterator iter;
+ iter = find(exemptions.begin(), exemptions.end(), highest_class_id+1);
+ if (iter == exemptions.end()) {
std::cout << "Missing message file: gap before LastIPCMsgStart\n";
result = false;
+ break;
+ }
+ ++highest_class_id;
}
if (!result)