| // 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. |
| |
| module blink.mojom; |
| |
| import "url/mojo/origin.mojom"; |
| |
| enum BudgetOperationType { |
| SILENT_PUSH |
| }; |
| |
| // Structure representing the budget at points in time in the future. |
| struct BudgetState { |
| // Amount of budget that will be available. This should be the lower bound of |
| // the budget between this time and the previous time. |
| double budget_at; |
| |
| // Time at which the budget is available, in milliseconds since 00:00:00 UTC |
| // on 1 January 1970, at which the budget_at will be valid. |
| double time; |
| }; |
| |
| // Service through which Blink can query for the cost of particular actions and |
| // for the budget available for an origin. |
| interface BudgetService { |
| GetCost(BudgetOperationType operation) => (double cost); |
| GetBudget(url.mojom.Origin origin) => (array<BudgetState> budget); |
| }; |
| |