提交 08c612bd 编写于 作者: J James Robinson

De-Client Surface interface

mojo.Surface's client had two methods:

*) SetIdNamespace replaced by mojo.Surface.GetIdNamespace which returns
the id namespace via a callback.

*) ReturnResources split into a ResourceReturner interface which can be
(optionally) set on the mojo.Surface via
mojo.Surface.SetResourceReturner

Also beefed up the comments a bit.

BUG=451319
R=sky@chromium.org

Review URL: https://codereview.chromium.org/871373015
上级 0f23bf91
......@@ -17,12 +17,20 @@ SurfaceHolder::Client::~Client() {
}
SurfaceHolder::SurfaceHolder(Client* client, mojo::Shell* shell)
: client_(client), id_namespace_(0u), local_id_(0u), weak_factory_(this) {
: client_(client),
id_namespace_(0u),
local_id_(0u),
returner_binding_(this),
weak_factory_(this) {
mojo::ServiceProviderPtr service_provider;
shell->ConnectToApplication("mojo:surfaces_service",
mojo::GetProxy(&service_provider), nullptr);
mojo::ConnectToService(service_provider.get(), &surface_);
surface_.set_client(this);
surface_->GetIdNamespace(
base::Bind(&SurfaceHolder::SetIdNamespace, base::Unretained(this)));
mojo::ResourceReturnerPtr returner_ptr;
returner_binding_.Bind(GetProxy(&returner_ptr));
surface_->SetResourceReturner(returner_ptr.Pass());
}
SurfaceHolder::~SurfaceHolder() {
......@@ -65,9 +73,6 @@ void SurfaceHolder::SetIdNamespace(uint32_t id_namespace) {
void SurfaceHolder::ReturnResources(
mojo::Array<mojo::ReturnedResourcePtr> resources) {
// TODO(abarth): The surface service shouldn't spam us with empty calls.
if (!resources.size())
return;
client_->ReturnResources(resources.Pass());
}
......
......@@ -19,7 +19,7 @@ class Shell;
namespace sky {
class SurfaceAllocator;
class SurfaceHolder : public mojo::SurfaceClient {
class SurfaceHolder : public mojo::ResourceReturner {
public:
class Client {
public:
......@@ -38,11 +38,11 @@ class SurfaceHolder : public mojo::SurfaceClient {
void SubmitFrame(mojo::FramePtr frame, const base::Closure& callback);
private:
// mojo::SurfaceClient
void SetIdNamespace(uint32_t id_namespace) override;
// mojo::ResourceReturner
void ReturnResources(
mojo::Array<mojo::ReturnedResourcePtr> resources) override;
void SetIdNamespace(uint32_t id_namespace);
void SetQualifiedId();
Client* client_;
......@@ -50,6 +50,7 @@ class SurfaceHolder : public mojo::SurfaceClient {
uint32_t id_namespace_;
uint32_t local_id_;
mojo::SurfacePtr surface_;
mojo::Binding<mojo::ResourceReturner> returner_binding_;
base::WeakPtrFactory<SurfaceHolder> weak_factory_;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册