blob: 80e3d243e578dca1228e5198657abb33bdc5d061 [file]
// Copyright 2014 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.
import "mojo/public/interfaces/application/service_provider.mojom";
import "mojo/services/public/interfaces/input_events/input_events.mojom";
module mojo {
interface WindowManager {
// Requests the WindowManager to embed the app for |url| at an appropriate
// View. See ViewManger::Embed() for details on |service_provider|.
Embed(string url, ServiceProvider&? service_provider);
};
// WindowManagerInternalService provides high level window management policies
// and is used by the ViewManager. This interface is marked as internal as only
// the view manager is allowed to connect to this.
[Client=WindowManagerInternalClient]
interface WindowManagerInternalService {
// Called when an input event is received from the native system. It's
// expected that when this is received the WindowManagerInternalService will
// call back to WindowManagerInternalServieClient will call
// DispatchInputEventToView().
// TODO(sky): nuke this and instead have an interface specifically for
// dispatching events in the NativeViewportService.
OnViewInputEvent(mojo.Event event);
};
// ViewManager provides this interface for functionality only exposed to the
// WindowManagerInternalServie.
[Client=WindowManagerInternalService]
interface WindowManagerInternalClient {
// Dispatches the specified input event to the specified view.
DispatchInputEventToView(uint32 view_id, mojo.Event event);
};
}