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