PIP20: add a new DocumentOverlayWindowViews subtype

This is part of a series for the new picture-in-picture v2 feature
that allows always-on-top windows with arbitrary content. This CL
adds new subclasses of OverlayWindowViews and
PictureInPictureWindowController that manage this content.

Currently the UI elements are still the same as for video PiP, they
still need to be adjusted in followup CLs depending on the intended UX.

Explainer: https://github.com/steimelchrome/document-pip-explainer/blob/main/explainer.md

This is based on François Beaufort's earlier experiment:
https://chromium-review.googlesource.com/c/chromium/src/+/2797191

Requires command line flags:
  --enable-features=PictureInPictureV2
  --enable-blink-features=PictureInPictureV2

Optional command line flag (to activate reusable media player as used
by liberato@'s experimental extension):
 --enable-features=PictureInPictureV2,ReuseMediaPlayer

Change-Id: I28fe921d62eaa6366e7a3fa1a1b9dc1df7c759f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3252789
Reviewed-by: Fr <[email protected]>
Reviewed-by: Mark Foltz <[email protected]>
Reviewed-by: Tommy Steimel <[email protected]>
Reviewed-by: danakj <[email protected]>
Reviewed-by: Wez <[email protected]>
Reviewed-by: Robert Flack <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: Klaus Weidner <[email protected]>
Cr-Commit-Position: refs/heads/main@{#968570}
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index 0a81d401..ad5c139 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -710,6 +710,9 @@
   // Indicates whether a video is in Picture-in-Picture for |this|.
   virtual bool HasPictureInPictureVideo() = 0;
 
+  // Indicates whether a document is in Picture-in-Picture for |this|.
+  virtual bool HasPictureInPictureDocument() = 0;
+
   // Indicates whether this tab should be considered crashed. This becomes false
   // again when the renderer process is recreated after a crash in order to
   // recreate the main frame.