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() { ...@@ -163,7 +163,6 @@ const service_manager::Manifest& GetChromeContentBrowserOverlayManifest() {
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
extensions::KeepAlive, extensions::KeepAlive,
extensions::mime_handler::BeforeUnloadControl, extensions::mime_handler::BeforeUnloadControl,
extensions::mime_handler::MimeHandlerService,
#endif #endif
media::mojom::MediaEngagementScoreDetailsProvider, media::mojom::MediaEngagementScoreDetailsProvider,
media_router::mojom::MediaRouter, media_router::mojom::MediaRouter,
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_frame_host.h"
#include "content/public/browser/render_process_host.h" #include "content/public/browser/render_process_host.h"
#include "content/public/common/content_features.h" #include "content/public/common/content_features.h"
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "services/image_annotation/public/mojom/image_annotation.mojom.h" #include "services/image_annotation/public/mojom/image_annotation.mojom.h"
#include "third_party/blink/public/mojom/insecure_input/insecure_input_service.mojom.h" #include "third_party/blink/public/mojom/insecure_input/insecure_input_service.mojom.h"
...@@ -46,6 +47,12 @@ ...@@ -46,6 +47,12 @@
#include "chrome/browser/payments/payment_request_factory.h" #include "chrome/browser/payments/payment_request_factory.h"
#endif #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 chrome {
namespace internal { namespace internal {
...@@ -102,6 +109,22 @@ void ForwardToJavaFrame(content::RenderFrameHost* render_frame_host, ...@@ -102,6 +109,22 @@ void ForwardToJavaFrame(content::RenderFrameHost* render_frame_host,
} }
#endif #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( void PopulateChromeFrameBinders(
service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) { service_manager::BinderMapWithContext<content::RenderFrameHost*>* map) {
map->Add<mojom::ContentSettingsManager>( map->Add<mojom::ContentSettingsManager>(
...@@ -150,6 +173,10 @@ void PopulateChromeFrameBinders( ...@@ -150,6 +173,10 @@ void PopulateChromeFrameBinders(
base::BindRepeating(&payments::CreatePaymentRequest)); base::BindRepeating(&payments::CreatePaymentRequest));
} }
#endif #endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
map->Add<extensions::mime_handler::MimeHandlerService>(
base::BindRepeating(&BindMimeHandlerService));
#endif
} }
} // namespace internal } // namespace internal
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include "content/public/common/url_constants.h" #include "content/public/common/url_constants.h"
#include "content/public/common/web_preferences.h" #include "content/public/common/web_preferences.h"
#include "extensions/browser/api/extensions_api_client.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/event_router.h"
#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_registry.h"
#include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_manager.h" #include "extensions/browser/guest_view/mime_handler_view/mime_handler_stream_manager.h"
...@@ -223,8 +222,6 @@ void MimeHandlerViewGuest::CreateWebContents( ...@@ -223,8 +222,6 @@ void MimeHandlerViewGuest::CreateWebContents(
owner_web_contents()->GetController().GetSessionStorageNamespaceMap()) owner_web_contents()->GetController().GetSessionStorageNamespaceMap())
.release()); .release());
registry_.AddInterface(
base::Bind(&MimeHandlerServiceImpl::Create, stream_->GetWeakPtr()));
registry_.AddInterface(base::BindRepeating( registry_.AddInterface(base::BindRepeating(
&MimeHandlerViewGuest::FuseBeforeUnloadControl, base::Unretained(this))); &MimeHandlerViewGuest::FuseBeforeUnloadControl, base::Unretained(this)));
} }
...@@ -492,4 +489,8 @@ base::WeakPtr<MimeHandlerViewGuest> MimeHandlerViewGuest::GetWeakPtr() { ...@@ -492,4 +489,8 @@ base::WeakPtr<MimeHandlerViewGuest> MimeHandlerViewGuest::GetWeakPtr() {
return weak_factory_.GetWeakPtr(); return weak_factory_.GetWeakPtr();
} }
base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStreamWeakPtr() {
return stream_->GetWeakPtr();
}
} // namespace extensions } // namespace extensions
...@@ -110,6 +110,8 @@ class MimeHandlerViewGuest ...@@ -110,6 +110,8 @@ class MimeHandlerViewGuest
base::WeakPtr<MimeHandlerViewGuest> GetWeakPtr(); base::WeakPtr<MimeHandlerViewGuest> GetWeakPtr();
base::WeakPtr<StreamContainer> GetStreamWeakPtr();
protected: protected:
explicit MimeHandlerViewGuest(content::WebContents* owner_web_contents); explicit MimeHandlerViewGuest(content::WebContents* owner_web_contents);
~MimeHandlerViewGuest() override; ~MimeHandlerViewGuest() override;
......
...@@ -19,7 +19,7 @@ loadScript('extensions/common/api/mime_handler.mojom'); ...@@ -19,7 +19,7 @@ loadScript('extensions/common/api/mime_handler.mojom');
var servicePtr = new extensions.mimeHandler.MimeHandlerServicePtr; var servicePtr = new extensions.mimeHandler.MimeHandlerServicePtr;
Mojo.bindInterface(extensions.mimeHandler.MimeHandlerService.name, Mojo.bindInterface(extensions.mimeHandler.MimeHandlerService.name,
mojo.makeRequest(servicePtr).handle); mojo.makeRequest(servicePtr).handle, "context", true);
var beforeUnloadControlPtr = var beforeUnloadControlPtr =
new extensions.mimeHandler.BeforeUnloadControlPtr; new extensions.mimeHandler.BeforeUnloadControlPtr;
Mojo.bindInterface( 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