Chromium Code Reviews| Index: third_party/WebKit/public/platform/InterfaceProvider.h |
| diff --git a/third_party/WebKit/public/platform/InterfaceProvider.h b/third_party/WebKit/public/platform/InterfaceProvider.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..27be115ccc7df58687c580e7b241001baca4d808 |
| --- /dev/null |
| +++ b/third_party/WebKit/public/platform/InterfaceProvider.h |
| @@ -0,0 +1,32 @@ |
| +// Copyright 2016 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef InterfaceProvider_h |
| +#define InterfaceProvider_h |
| + |
| +#include "mojo/public/cpp/bindings/interface_request.h" |
| +#include "mojo/public/cpp/system/message_pipe.h" |
| +#include "public/platform/WebCommon.h" |
| + |
| +namespace blink { |
| + |
| +// Implementations of blink::InterfaceProvider should be thread safe. As such it |
| +// is okay to call |getInterface| from any thread, without the thread hopping |
| +// that would have been necesary with shell::InterfaceProvider. |
|
haraken
2016/07/30 15:39:06
necessary
|
| +class BLINK_PLATFORM_EXPORT InterfaceProvider { |
| +public: |
| + virtual void getInterface(const char* name, mojo::ScopedMessagePipeHandle) = 0; |
| + |
| + template <typename Interface> |
| + void getInterface(mojo::InterfaceRequest<Interface> ptr) |
| + { |
| + getInterface(Interface::Name_, ptr.PassMessagePipe()); |
| + } |
| + |
| + static InterfaceProvider* getEmptyInterfaceProvider(); |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif |