[reland] No CORB exception for plugins, unless Flash actually runs.

This is a reland of r585124 with an extra null check in
AddCorbExceptionForPluginOnUIThread.  Original CL description
follows below.

Overview
========

Flash has its own CORS-like mechanism (crossdomain.xml-based) and
therefore CORB (Cross-Origin Read Blocking) cannot be enforced for
requests initiated by Flash.

This CL avoids making an exception for plugins, unless the given
renderer process is actually hosting a Flash plugin (and is therefore
capable of proxying network requests on behalf of Flash).  This
means that the exception won't take place unless the user has
approved running Flash (via click-to-play / content settings /
enterprise policy - see the bug for more details).

Details
=======

This CL introduces a global set that stores process IDs of renderers
that host Flash.  This set lives either in the NetworkService process or
(if NetworkService feature is disabled) in the IO thread of the browser
process.  In both cases the global set is implemented and exposed by new
static methods of network::CrossOriginReadBlocking class.

The CL populates the global set from
PluginServiceImpl::FindOrStartPpapiPluginProcess after all the security
checks have been done and the plugin process is ready to be used or
launched.

The CL consults the global set before deciding to make a CORB exception
for a plugin request.  This is done from network::URLLoader (used if
NetworkService feature is enabled) and from
CrossSiteDocumentResourceHandler (used otherwise).

The CL removes items from the global set when RenderProcessHostImpl is
destroyed.

Bug: 874515
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I807e2d7f47f753c9a097d2bceed22e9eef1a88f9
Tbr: Nasko Oskov <[email protected]>
Tbr: John Abd-El-Malek <[email protected]>
Reviewed-on: https://chromium-review.googlesource.com/1191324
Reviewed-by: Łukasz Anforowicz <[email protected]>
Commit-Queue: Łukasz Anforowicz <[email protected]>
Cr-Commit-Position: refs/heads/master@{#586422}
15 files changed