Commit 55cd052e authored by Miyoung Shin's avatar Miyoung Shin Committed by Commit Bot

Convert MimeHandlerService client to use BrowserInterfaceBroker

This change converts MimeHandlerService mojom interface client in
components to use BrowserInterfaceBroker
Since MimeHandlerViewGuest is a WebContentsObserver, a static
helper function is used to register its binder.

Bug: 936482
Change-Id: Ib47255e7cbcdc0701491357bb21aea8d18d0602e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1895018Reviewed-by: default avatarKinuko Yasuda <kinuko@chromium.org>
Reviewed-by: default avatarJames MacLean <wjmaclean@chromium.org>
Reviewed-by: default avatarIstiaque Ahmed <lazyboy@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Commit-Queue: Miyoung Shin <myid.shin@igalia.com>
Cr-Commit-Position: refs/heads/master@{#713316}
parent ae66a37a
......@@ -163,7 +163,6 @@ const service_manager::Manifest& GetChromeContentBrowserOverlayManifest() {
#if BUILDFLAG(ENABLE_EXTENSIONS)
extensions::KeepAlive,
extensions::mime_handler::BeforeUnloadControl,
extensions::mime_handler::MimeHandlerService,
#endif
media::mojom::MediaEngagementScoreDetailsProvider,
media_router::mojom::MediaRouter,
......
......@@ -20,6 +20,7 @@
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/content_features.h"
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/image_annotation/public/mojom/image_annotation.mojom.h"
#include "third_party/blink/public/mojom/insecure_input/insecure_input_service.mojom.h"
......@@ -46,6 +47,12 @@
#include "chrome/browser/payments/payment_request_factory.h"
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
#include "extensions/common/api/mime_handler.mojom.h" // nogncheck
#endif
namespace chrome {
namespace internal {
......@@ -102,6 +109,22 @@ void ForwardToJavaFrame(content::RenderFrameHost* render_frame_host,
}
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
void BindMimeHandlerService(
content::RenderFrameHost* frame_host,
mojo::PendingReceiver<extensions::mime_handler::MimeHandlerService>
receiver) {
content::WebContents* contents =
content::WebContents::FromRenderFrameHost(frame_host);
auto* guest_view =
extensions::MimeHandlerViewGuest::FromWebContents(contents);
if (!guest_view)
return;
extensions::MimeHandlerServiceImpl::Create(guest_view->GetStreamWeakPtr(),
std::move(receiver));
}
#endif
void PopulateChromeFrameBinders(
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) {
map->Add<mojom::ContentSettingsManager>(
......@@ -150,6 +173,10 @@ void PopulateChromeFrameBinders(
base::BindRepeating(&payments::CreatePaymentRequest));
}
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
map->Add<extensions::mime_handler::MimeHandlerService>(
base::BindRepeating(&BindMimeHandlerService));
#endif
}
} // namespace internal
......
......@@ -19,7 +19,6 @@
#include "content/public/common/url_constants.h"
#include "content/public/common/web_preferences.h"
#include "extensions/browser/api/extensions_api_client.h"
#include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_manager.h"
......@@ -223,8 +222,6 @@ void MimeHandlerViewGuest::CreateWebContents(
owner_web_contents()->GetController().GetSessionStorageNamespaceMap())
.release());
registry_.AddInterface(
base::Bind(&MimeHandlerServiceImpl::Create, stream_->GetWeakPtr()));
registry_.AddInterface(base::BindRepeating(
&MimeHandlerViewGuest::FuseBeforeUnloadControl, base::Unretained(this)));
}
......@@ -492,4 +489,8 @@ base::WeakPtr<MimeHandlerViewGuest> MimeHandlerViewGuest::GetWeakPtr() {
return weak_factory_.GetWeakPtr();
}
base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStreamWeakPtr() {
return stream_->GetWeakPtr();
}
} // namespace extensions
......@@ -110,6 +110,8 @@ class MimeHandlerViewGuest
base::WeakPtr<MimeHandlerViewGuest> GetWeakPtr();
base::WeakPtr<StreamContainer> GetStreamWeakPtr();
protected:
explicit MimeHandlerViewGuest(content::WebContents* owner_web_contents);
~MimeHandlerViewGuest() override;
......
......@@ -19,7 +19,7 @@ loadScript('extensions/common/api/mime_handler.mojom');
var servicePtr = new extensions.mimeHandler.MimeHandlerServicePtr;
Mojo.bindInterface(extensions.mimeHandler.MimeHandlerService.name,
mojo.makeRequest(servicePtr).handle);
mojo.makeRequest(servicePtr).handle, "context", true);
var beforeUnloadControlPtr =
new extensions.mimeHandler.BeforeUnloadControlPtr;
Mojo.bindInterface(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment