PlzNavigate: Get StreamPrivate API to work.

This is based off clamy's original patch https://codereview.chromium.org/1485693002/

This patch gets the StreamPrivate API which is exposed for extensions to work
with PlzNavigate. This should fix top level PDF file loads and in turn some
browser tests like MaterialPDFExtensionTests, PDFExtensionTests, etc.

Changes in this patch are as below:
1. Allow stream based requests to be handled in navigation_resource_handler.cc.

2. Fixing the way WebContents is obtained in the other places with the
   ResourceRequestInfoImpl::GetWebContentsGetterForRequest function.

3. The MimeHandlerStreamManager::AddStream function takes in the WebContents pointer.

4  A getter has been added to the ResourceRequestInfo class to get the frame_tree_node_id field.

5. The EmbedderObserver class now uses the WCO::RenderFrameHostChanged notification to determine
   if a RFH is swapped with another. This is used to determine when we should clean up the stream.
   The RFH being swapped out is tracked in a map.

6. We use the WebContentsObserver::DidStartNavigation method in the EmbedderObserver to detect a navigation on
   the main frame and use that to cleanup the stream.

BUG=504347
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2331343005
Cr-Commit-Position: refs/heads/master@{#420537}
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 37b3bf2..1eb4d7c 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -186,6 +186,10 @@
 
   CONTENT_EXPORT static WebContents* FromRenderFrameHost(RenderFrameHost* rfh);
 
+  // Returns the WebContents associated with the |frame_tree_node_id|.
+  CONTENT_EXPORT static WebContents* FromFrameTreeNodeId(
+      int frame_tree_node_id);
+
   ~WebContents() override {}
 
   // Intrinsic tab state -------------------------------------------------------