| Index: services/resource_coordinator/public/interfaces/coordination_unit.mojom
|
| diff --git a/services/resource_coordinator/public/interfaces/coordination_unit.mojom b/services/resource_coordinator/public/interfaces/coordination_unit.mojom
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5228b18185a36b51ecdf06db238af6d11560fda6
|
| --- /dev/null
|
| +++ b/services/resource_coordinator/public/interfaces/coordination_unit.mojom
|
| @@ -0,0 +1,43 @@
|
| +// Copyright 2017 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.
|
| +
|
| +module resource_coordinator.mojom;
|
| +
|
| +import "events.mojom";
|
| +
|
| +// Any new type here needs to be mirrored between coordination_unit_types.h and
|
| +// coordination_unit.mojom, and have mappings between the two defined in
|
| +// coordination_unit_struct_traits.h/.cc (see comment in coordination_unit_id.h).
|
| +enum CoordinationUnitType {
|
| + kWebContents,
|
| + kFrame,
|
| + kNavigation,
|
| + kProcess,
|
| +};
|
| +
|
| +struct CoordinationUnitID {
|
| + CoordinationUnitType type;
|
| + int64 id;
|
| +};
|
| +
|
| +struct Policy {
|
| + bool use_background_priority;
|
| +};
|
| +
|
| +interface PolicyCallback {
|
| + SetPolicy(Policy policy);
|
| +};
|
| +
|
| +interface CoordinationUnit {
|
| + SendEvent(Event event);
|
| +
|
| + // Mainly used to force a round-trip to the service over the pipe for
|
| + // a specific unit, so we don't have to deal with possibly-not-yet-created
|
| + // children in AddChild()
|
| + GetID() => (CoordinationUnitID id);
|
| +
|
| + Duplicate(CoordinationUnit& request);
|
| + AddChild(CoordinationUnitID child_id);
|
| + SetPolicyCallback(PolicyCallback callback);
|
| +};
|
|
|