Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(305)

Issue 2873090: New IPC definitions, only applied to async ROUTED and CONTROL messages. (Closed)

Created:
10 years, 4 months ago by Elliot Glaysher
Modified:
9 years, 7 months ago
CC:
chromium-reviews, ben+cc_chromium.org, Erik does not do reviews, brettw-cc_chromium.org, jam, Aaron Boodman, pam+watch_chromium.org, Paweł Hajdan Jr., kuchhal, darin-cc_chromium.org, John Grabowski, native-client-reviews_googlegroups.com, stuartmorgan+watch_chromium.org
Visibility:
Public.

Description

FBTF: New IPC definitions, only applied to async ROUTED and CONTROL messages. The slowest cc files in chrome include render_messages.h and other IPC message definitions. Including one of these files will bring in half of chrome because in the IPC system previously required full class definitions due to implementation details. The new system allows forward declarations and places the implementations of functions that need the full class definitions (ctor/dtor()/Log() and superclass ctor/Read() methods) into a separate xxx_messages.cc file using a parallel set of macros to ipc_message_macros.h. This has the added benefit of moving most of the template instantiation junk into a small number of files. Pros: - Will speed up compiling by a lot once everything is forward declared. - Already, intermediary .o/.a files are smaller. Cons: - Adds a 4th pass to the messages system, this time in a different header. BUG=51411 TEST=none Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=55259

Patch Set 1 #

Patch Set 2 : build_config.h #

Patch Set 3 : Fix render_view_test compilation on mac/win #

Patch Set 4 : Fix missing Log in ParamTraits<MSG> #

Total comments: 3

Patch Set 5 : win/mac fixes #

Patch Set 6 : dumb dumb dumb #

Total comments: 2

Patch Set 7 : Speculative win fix #

Patch Set 8 : Do this a different way based on mpcomplete's advice #

Total comments: 5

Patch Set 9 : rebase #

Patch Set 10 : win fixes #

Patch Set 11 : mac fixes from old patch #

Patch Set 12 : Move MessateWithTuple::ctor/Read() to an impl file that is selectively included. #

Total comments: 2

Patch Set 13 : rebase to tot #

Patch Set 14 : Undo WebCursor for now to fix windows build. #

Patch Set 15 : Undo WebCursor for now to fix windows build. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+863 lines, -234 lines) Patch
M base/tuple.h View 10 chunks +156 lines, -108 lines 0 comments Download
M chrome/browser/importer/firefox_importer_unittest_utils_mac.cc View 1 chunk +6 lines, -1 line 0 comments Download
A chrome/browser/importer/importer_messages.cc View 1 2 3 4 5 6 7 1 chunk +11 lines, -0 lines 0 comments Download
M chrome/chrome.gyp View 1 chunk +1 line, -0 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -0 lines 0 comments Download
M chrome/chrome_common.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +9 lines, -1 line 0 comments Download
M chrome/common/common_param_traits.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -1 line 0 comments Download
A chrome/common/devtools_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/common/gpu_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/common/nacl_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M chrome/common/nacl_messages_internal.h View 1 chunk +1 line, -0 lines 0 comments Download
A chrome/common/plugin_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/common/render_messages.cc View 1 chunk +12 lines, -0 lines 0 comments Download
M chrome/common/render_messages_internal.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +3 lines, -2 lines 0 comments Download
A chrome/common/service_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/common/utility_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/common/worker_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
A chrome/test/automation/automation_messages.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M ipc/ipc_fuzzing_tests.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
A ipc/ipc_message_impl_macros.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +300 lines, -0 lines 0 comments Download
M ipc/ipc_message_macros.h View 1 2 3 4 5 6 7 6 chunks +196 lines, -85 lines 0 comments Download
M ipc/ipc_message_utils.h View 1 2 3 4 5 6 7 8 9 10 11 9 chunks +24 lines, -36 lines 0 comments Download
M ipc/ipc_message_utils.cc View 1 chunk +18 lines, -0 lines 0 comments Download
A ipc/ipc_message_utils_impl.h View 12 1 chunk +36 lines, -0 lines 0 comments Download
M ipc/sync_socket_unittest.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M printing/pdf_ps_metafile_cairo.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M printing/pdf_ps_metafile_cairo.cc View 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Elliot Glaysher
10 years, 4 months ago (2010-08-02 17:49:27 UTC) #1
Elliot Glaysher
+mpcomplete, +jamesr jam looks like he's out of town, and darin hasn't gotten to reviewing ...
10 years, 4 months ago (2010-08-02 19:01:09 UTC) #2
jamesr
Made a cursory pass. I think Matt should review this one, though, as I'm not ...
10 years, 4 months ago (2010-08-02 20:09:58 UTC) #3
Matt Perry
Thanks for working on this! Not being able to forward declare IPC types has always ...
10 years, 4 months ago (2010-08-02 23:34:22 UTC) #4
Elliot Glaysher
I've redone the work based on your suggestions, Matt. In addition to the ctors/dtors, the ...
10 years, 4 months ago (2010-08-03 19:36:45 UTC) #5
Matt Perry
http://codereview.chromium.org/2873090/diff/21001/22014 File chrome/common/render_messages_internal.h (right): http://codereview.chromium.org/2873090/diff/21001/22014#newcode54 chrome/common/render_messages_internal.h:54: class WebCursor; can we add any more forward declares ...
10 years, 4 months ago (2010-08-03 20:36:32 UTC) #6
Matt Perry
10 years, 4 months ago (2010-08-03 20:46:59 UTC) #7
Elliot Glaysher
Instead of modifying the IPC_MESSAGE_LOG() macro like you suggested, I used all the subclass::Log() methods ...
10 years, 4 months ago (2010-08-03 22:42:39 UTC) #8
Matt Perry
10 years, 4 months ago (2010-08-03 22:54:06 UTC) #9
LGTM.

http://codereview.chromium.org/2873090/diff/33001/59
File ipc/ipc_message_impl_macros.h (right):

http://codereview.chromium.org/2873090/diff/33001/59#newcode12
ipc/ipc_message_impl_macros.h:12: // pass. But we *still* can't use normal
include guards because we still need
I don't follow why we can't wrap this header with a header guard. If it's only
included once, a guard should have no effect, right?

http://codereview.chromium.org/2873090/diff/33001/62
File ipc/ipc_message_utils.h (right):

http://codereview.chromium.org/2873090/diff/33001/62#newcode1030
ipc/ipc_message_utils.h:1030: // ipc_message_utils_impl.h. They subclass
constructor and Log() methods call
The*

Powered by Google App Engine
This is Rietveld 408576698