Mojo: Scramble message IDs at build time

Applies mojom bindings-generation-time message ID
scrambling to all mojom targets by default. Changes the
generator's salt flag to take a filename, and uses some
GN and LASTCHANGE magic to ensure that the salt file is
updated on each build revision.

This behavior can be disabled in specific mojom GN targets
by setting |scramble_message_ids| to |false|, which is done
here for ARC mojoms to avoid compatibility issues between
Chrome and the ARC container.

BUG=673417

Change-Id: I4263a4b90400a09fed8286b362108f13376b88c5
Reviewed-on: https://chromium-review.googlesource.com/685457
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#505219}

CrOS-Libchrome-Original-Commit: 496fe9b7b6233b74af73c71c87404bc3f27323d4
3 files changed
tree: 8e9a0e43c3e4d0642b0e4af97a8f0d32412f99c7
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/