diff --git content/browser/web_contents/web_contents_view.h content/browser/web_contents/web_contents_view.h
index c0cd19506973..956d80443c11 100644
--- content/browser/web_contents/web_contents_view.h
+++ content/browser/web_contents/web_contents_view.h
@@ -23,7 +23,7 @@ struct DropData;
 // The WebContentsView is an interface that is implemented by the platform-
 // dependent web contents views. The WebContents uses this interface to talk to
 // them.
-class WebContentsView {
+class CONTENT_EXPORT WebContentsView {
  public:
   virtual ~WebContentsView() {}
 
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index 068b22336fac..a970f5be0428 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -207,6 +207,8 @@ void MimeHandlerViewGuest::CreateWebContents(
   WebContents::CreateParams params(browser_context(),
                                    guest_site_instance.get());
   params.guest_delegate = this;
+  if (delegate_)
+    delegate_->OverrideWebContentsCreateParams(&params);
   // TODO(erikchen): Fix ownership semantics for guest views.
   // https://crbug.com/832879.
   std::move(callback).Run(
@@ -217,6 +219,9 @@ void MimeHandlerViewGuest::CreateWebContents(
 }
 
 void MimeHandlerViewGuest::DidAttachToEmbedder() {
+  if (delegate_)
+    delegate_->OnGuestAttached();
+
   web_contents()->GetController().LoadURL(
       stream_->handler_url(), content::Referrer(),
       ui::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string());
@@ -246,6 +251,11 @@ bool MimeHandlerViewGuest::ShouldDestroyOnDetach() const {
   return true;
 }
 
+void MimeHandlerViewGuest::WillDestroy() {
+  if (delegate_)
+    delegate_->OnGuestDetached();
+}
+
 WebContents* MimeHandlerViewGuest::OpenURLFromTab(
     WebContents* source,
     const content::OpenURLParams& params) {
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
index 242db17f8f3b..80e9a5663588 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
@@ -130,6 +130,7 @@ class MimeHandlerViewGuest
   void EmbedderFullscreenToggled(bool entered_fullscreen) final;
   bool ZoomPropagatesFromEmbedderToGuest() const final;
   bool ShouldDestroyOnDetach() const final;
+  void WillDestroy() override;
 
   // WebContentsDelegate implementation.
   content::WebContents* OpenURLFromTab(
diff --git extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
index 98689e261460..a1b08274f455 100644
--- extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
+++ extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
@@ -8,9 +8,9 @@
 #include <string>
 
 #include "base/macros.h"
+#include "content/public/browser/web_contents.h"
 
 namespace content {
-class WebContents;
 struct ContextMenuParams;
 }  // namespace content
 
@@ -22,6 +22,14 @@ class MimeHandlerViewGuestDelegate {
   MimeHandlerViewGuestDelegate() {}
   virtual ~MimeHandlerViewGuestDelegate() {}
 
+  // Provides an opportunity to supply a custom view implementation.
+  virtual void OverrideWebContentsCreateParams(
+      content::WebContents::CreateParams* params) {}
+
+  // Called when a guest is attached or detached.
+  virtual void OnGuestAttached() {}
+  virtual void OnGuestDetached() {}
+
   // Handles context menu, or returns false if unhandled.
   virtual bool HandleContextMenu(content::WebContents* web_contents,
                                  const content::ContextMenuParams& params);
