diff options
author | rbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 15:51:48 +0000 |
---|---|---|
committer | rbyers@chromium.org <rbyers@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 15:51:48 +0000 |
commit | e7ca8dd2ef98a042b7cc7437419067c43cadf1b0 (patch) | |
tree | b5d309ff8d2cce994697e1ab04562149aeafc2db /chrome | |
parent | f1d34fd99329613bb174cb9907f2dea2eb2ba666 (diff) | |
download | chromium_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.h | 6 | ||||
-rw-r--r-- | chrome/tools/ipclist/ipclist.cc | 15 |
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) |