[ MimeHandlerView ] Support all related MIME Types

Frame-based MimeHandlerView is currently mostly setup for
"application/pdf". In general, certain plugin types might use a
MimeHandlerView, e.g., text/csv on ChromeOS and certain browser tests in

This CL makes the following changes to ensure plugin elements and
navigations to resources with MIME types handled by MimeHandlerView are
correctly using a MimeHandlerView when necessary:

  1- A new boolean is added to PluginInfo to identify those plugins that
  may be handled by MHV.
  2- DOMImplementation will use plugin data to determine if a
  MimeHandlerView is required. This means on desktop "text/pdf" is
  identified as a MHV type and on ChromeOS "text/csv" is similarly set
  known as a MHV type.
  3- chrome/renderer will no longer send a sync IPC to browser to
  determine if the resource will use a MHV. This knowledge is now
  provided in PluginData.
  4- HTMLPlugInElement will only request a MHV if the newly added
  associated flag in PluginData is set.

In line with this change, the public API IsPluginHandledExternally() is
renamed to MaybeCreateMimeHandlerView. This is to clarify that the API
should only be called from inside blink if blink knows that it needs a
MHV; hence the removal of the verification step in chrome layer to
determine if the passed resource has a MIME type that is handled by MHV.

Bug: 659750
Change-Id: I5eeb06a86008f27dacedc2642c4ef40c5c1dbe69
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1506596
Reviewed-by: Ehsan Karamad <ekaramad@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Reviewed-by: James MacLean <wjmaclean@chromium.org>
Reviewed-by: Ɓukasz Anforowicz <lukasza@chromium.org>
Reviewed-by: Tommy Li <tommycli@chromium.org>
Commit-Queue: Ehsan Karamad <ekaramad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#643387}
30 files changed