Track pending WebContents and widgets by (process_id, routing_id) pair.

Currently, WebContentsImpl tracks pending widgets (widgets that are
created but not yet shown) in the pending_widget_views_ map, which is
keyed by the new widget's routing_id only.  Similarly, pending
WebContents are tracked in pending_contents_, also keyed by a single
routing_id.  This is prone to a race when two OOPIFs in different
processes (but part of the same WebContents) create new widgets, and
the two widgets happen to use the same routing ID, colliding in one of
these maps.  This CL changes both of these maps to be keyed by
(process_id, routing_id).

BUG=612276, 593522
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/1986643002
Cr-Commit-Position: refs/heads/master@{#395435}
12 files changed