Commit 6ad6c2ae authored by My Nguyen's avatar My Nguyen Committed by Chromium LUCI CQ

Revert "Declare T as a base class of the BrowserAssociatedInterface<T> helper."

This reverts commit bca5f7be.

Reason for revert: Tree is closed because of https://ci.chromium.org/ui/p/chromium/builders/ci/android-marshmallow-arm64-rel/24224/overview

Original change's description:
> Declare T as a base class of the BrowserAssociatedInterface<T> helper.
>
> When a class uses BrowserAssociatedInterface<T>, it should implement the
> mojo interface T. Force that to be the case by making T a suclass of
> BrowserAssociatedInterface<T>.
>
> Change-Id: Ide8ecd46c298ec86de57b229593ec7d6c4b6a3a7
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2629670
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Reviewed-by: Reilly Grant <reillyg@chromium.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#843845}

TBR=avi@chromium.org,dcheng@chromium.org,reillyg@chromium.org,chromium-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I0dea0f28378f7256bdd09f8196315905b8803da8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2631806
Commit-Queue: My Nguyen <myy@chromium.org>
Reviewed-by: default avatarMy Nguyen <myy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843878}
parent 25baaa4b
...@@ -76,12 +76,14 @@ class ProxyRunner : public IPC::Listener { ...@@ -76,12 +76,14 @@ class ProxyRunner : public IPC::Listener {
class TestDriverMessageFilter class TestDriverMessageFilter
: public BrowserMessageFilter, : public BrowserMessageFilter,
public BrowserAssociatedInterface< public BrowserAssociatedInterface<
mojom::BrowserAssociatedInterfaceTestDriver> { mojom::BrowserAssociatedInterfaceTestDriver>,
public mojom::BrowserAssociatedInterfaceTestDriver {
public: public:
TestDriverMessageFilter() TestDriverMessageFilter()
: BrowserMessageFilter(0), : BrowserMessageFilter(0),
BrowserAssociatedInterface<mojom::BrowserAssociatedInterfaceTestDriver>( BrowserAssociatedInterface<mojom::BrowserAssociatedInterfaceTestDriver>(
this) {} this, this) {
}
private: private:
~TestDriverMessageFilter() override {} ~TestDriverMessageFilter() override {}
......
...@@ -97,7 +97,7 @@ PendingHostCreator::~PendingHostCreator() { ...@@ -97,7 +97,7 @@ PendingHostCreator::~PendingHostCreator() {
PepperRendererConnection::PepperRendererConnection(int render_process_id) PepperRendererConnection::PepperRendererConnection(int render_process_id)
: BrowserMessageFilter(kPepperFilteredMessageClasses, : BrowserMessageFilter(kPepperFilteredMessageClasses,
base::size(kPepperFilteredMessageClasses)), base::size(kPepperFilteredMessageClasses)),
BrowserAssociatedInterface<mojom::PepperIOHost>(this), BrowserAssociatedInterface<mojom::PepperIOHost>(this, this),
render_process_id_(render_process_id) { render_process_id_(render_process_id) {
// Only give the renderer permission for stable APIs. // Only give the renderer permission for stable APIs.
in_process_host_.reset(new BrowserPpapiHostImpl(this, in_process_host_.reset(new BrowserPpapiHostImpl(this,
......
...@@ -32,7 +32,8 @@ class BrowserPpapiHostImpl; ...@@ -32,7 +32,8 @@ class BrowserPpapiHostImpl;
// process ID to identify which plugin they are talking about. // process ID to identify which plugin they are talking about.
class PepperRendererConnection class PepperRendererConnection
: public BrowserMessageFilter, : public BrowserMessageFilter,
public BrowserAssociatedInterface<mojom::PepperIOHost> { public BrowserAssociatedInterface<mojom::PepperIOHost>,
public mojom::PepperIOHost {
public: public:
explicit PepperRendererConnection(int render_process_id); explicit PepperRendererConnection(int render_process_id);
......
...@@ -88,7 +88,7 @@ RenderMessageFilter::RenderMessageFilter( ...@@ -88,7 +88,7 @@ RenderMessageFilter::RenderMessageFilter(
MediaInternals* media_internals) MediaInternals* media_internals)
: BrowserMessageFilter(kRenderFilteredMessageClasses, : BrowserMessageFilter(kRenderFilteredMessageClasses,
base::size(kRenderFilteredMessageClasses)), base::size(kRenderFilteredMessageClasses)),
BrowserAssociatedInterface<mojom::RenderMessageFilter>(this), BrowserAssociatedInterface<mojom::RenderMessageFilter>(this, this),
resource_context_(browser_context->GetResourceContext()), resource_context_(browser_context->GetResourceContext()),
render_widget_helper_(render_widget_helper), render_widget_helper_(render_widget_helper),
render_process_id_(render_process_id), render_process_id_(render_process_id),
......
...@@ -52,7 +52,8 @@ class ResourceContext; ...@@ -52,7 +52,8 @@ class ResourceContext;
// IPC thread. // IPC thread.
class CONTENT_EXPORT RenderMessageFilter class CONTENT_EXPORT RenderMessageFilter
: public BrowserMessageFilter, : public BrowserMessageFilter,
public BrowserAssociatedInterface<mojom::RenderMessageFilter> { public BrowserAssociatedInterface<mojom::RenderMessageFilter>,
public mojom::RenderMessageFilter {
public: public:
// Create the filter. // Create the filter.
RenderMessageFilter(int render_process_id, RenderMessageFilter(int render_process_id,
......
...@@ -21,14 +21,15 @@ ...@@ -21,14 +21,15 @@
namespace content { namespace content {
// A helper class which owns an associated interface receiver on the IO thread. // A helper interface which owns an associated interface receiver on the IO
// Subclassess of BrowserMessageFilter may use this to simplify the transition // thread. Subclassess of BrowserMessageFilter may use this to simplify
// to Mojo interfaces. // the transition to Mojo interfaces.
// //
// In general the correct pattern for using this is as follows: // In general the correct pattern for using this is as follows:
// //
// class FooMessageFilter : public BrowserMessageFilter, // class FooMessageFilter : public BrowserMessageFilter,
// public BrowserAssociatedInterface<mojom::Foo> { // public BrowserAssociatedInterface<mojom::Foo>,
// public mojom::Foo {
// public: // public:
// FooMessageFilter() // FooMessageFilter()
// : BrowserMessageFilter(FooMsgStart), // : BrowserMessageFilter(FooMsgStart),
...@@ -51,11 +52,11 @@ namespace content { ...@@ -51,11 +52,11 @@ namespace content {
// //
// See BrowserAssociatedInterfaceTest.Basic for a simple working example usage. // See BrowserAssociatedInterfaceTest.Basic for a simple working example usage.
template <typename Interface> template <typename Interface>
class BrowserAssociatedInterface : public Interface { class BrowserAssociatedInterface {
public: public:
// |filter| and |impl| must live at least as long as this object. // |filter| and |impl| must live at least as long as this object.
explicit BrowserAssociatedInterface(BrowserMessageFilter* filter) BrowserAssociatedInterface(BrowserMessageFilter* filter, Interface* impl)
: internal_state_(new InternalState(this)) { : internal_state_(new InternalState(impl)) {
filter->AddAssociatedInterface( filter->AddAssociatedInterface(
Interface::Name_, Interface::Name_,
base::BindRepeating(&InternalState::BindReceiver, internal_state_), base::BindRepeating(&InternalState::BindReceiver, internal_state_),
......
...@@ -46,6 +46,7 @@ namespace extensions { ...@@ -46,6 +46,7 @@ namespace extensions {
const uint32_t ExtensionsGuestViewMessageFilter::kFilteredMessageClasses[] = { const uint32_t ExtensionsGuestViewMessageFilter::kFilteredMessageClasses[] = {
GuestViewMsgStart, ExtensionsGuestViewMsgStart}; GuestViewMsgStart, ExtensionsGuestViewMsgStart};
ExtensionsGuestViewMessageFilter::ExtensionsGuestViewMessageFilter( ExtensionsGuestViewMessageFilter::ExtensionsGuestViewMessageFilter(
int render_process_id, int render_process_id,
BrowserContext* context) BrowserContext* context)
...@@ -53,7 +54,8 @@ ExtensionsGuestViewMessageFilter::ExtensionsGuestViewMessageFilter( ...@@ -53,7 +54,8 @@ ExtensionsGuestViewMessageFilter::ExtensionsGuestViewMessageFilter(
base::size(kFilteredMessageClasses), base::size(kFilteredMessageClasses),
render_process_id, render_process_id,
context), context),
content::BrowserAssociatedInterface<mojom::GuestView>(this) {} content::BrowserAssociatedInterface<mojom::GuestView>(this, this) {
}
void ExtensionsGuestViewMessageFilter::OverrideThreadForMessage( void ExtensionsGuestViewMessageFilter::OverrideThreadForMessage(
const IPC::Message& message, const IPC::Message& message,
......
...@@ -35,7 +35,8 @@ namespace extensions { ...@@ -35,7 +35,8 @@ namespace extensions {
// handled on the IO thread or the UI thread. // handled on the IO thread or the UI thread.
class ExtensionsGuestViewMessageFilter class ExtensionsGuestViewMessageFilter
: public guest_view::GuestViewMessageFilter, : public guest_view::GuestViewMessageFilter,
public content::BrowserAssociatedInterface<mojom::GuestView> { public content::BrowserAssociatedInterface<mojom::GuestView>,
public mojom::GuestView {
public: public:
ExtensionsGuestViewMessageFilter(int render_process_id, ExtensionsGuestViewMessageFilter(int render_process_id,
content::BrowserContext* context); content::BrowserContext* context);
......
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