// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module service_manager.test.mojom;
import "mojo/public/mojom/base/token.mojom";
import "services/service_manager/public/mojom/connector.mojom";
import "services/service_manager/public/mojom/service_filter.mojom";
interface ConnectTestService {
GetTitle() => (string title);
GetInstanceId() => (mojo_base.mojom.Token instance_id);
};
interface ClassInterface {
Ping() => (string response);
};
// Interface implemented by a standalone (non-package) app,
// mojo:connect_test_app.
interface StandaloneApp {
// Attempts to connect to an application whose name is explicitly allowed by
// the standalone app's CapabilitySpec, but whose enclosing package is not.
// The connection should succeed anyway.
ConnectToAllowedAppInBlockedPackage() => (string title);
// Connects to mojo:connect_test_class_app & requests ClassInterface from it.
// This should be permitted because mojo:connect_test_app requests class
// "class" from mojo:connect_test_class_app, which mojo:connect_test_class_app
// defines as including ClassInterface.
// The response contains the response from ClassInterface::Ping() and
// ConnectTestService::GetTitle().
ConnectToClassInterface() => (string class_interface_response, string title);
};
interface IdentityTest {
// Attempts to connect to mojo:connect_test_class_app as |target|.
// The callback takes the connection response result, and the identity
// mojo:connect_test_class_app was run as, which should match |filter| or be
// null on error.
ConnectToClassAppWithFilter(service_manager.mojom.ServiceFilter filter) =>
(int32 connection_result, service_manager.mojom.Identity? identity);
};
struct ConnectionState {
string connection_remote_name;
mojo_base.mojom.Token? connection_remote_instance_group;
string initialize_local_name;
mojo_base.mojom.Token? initialize_local_instance_group;
};
interface ExposedInterface {
ConnectionAccepted(ConnectionState state);
};
interface BlockedInterface {
GetTitleBlocked() => (string blocked_title);
};
interface AlwaysAllowedInterface {
GetTitleAlwaysAllowed() => (string title);
};