| /* | |
| * Copyright 2019 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. | |
| */ | |
| /** @type {!Map<function(new:SDK.SDKModel, !SDK.Target), !{capabilities: number, autostart: boolean}>} */ | |
| const _registeredModels = new Map(); | |
| /** | |
| * @unrestricted | |
| */ | |
| export default class SDKModel extends Common.Object { | |
| /** | |
| * @param {!SDK.Target} target | |
| */ | |
| constructor(target) { | |
| super(); | |
| this._target = target; | |
| } | |
| /** | |
| * @return {!SDK.Target} | |
| */ | |
| target() { | |
| return this._target; | |
| } | |
| /** | |
| * Override this method to perform tasks that are required to suspend the | |
| * model and that still need other models in an unsuspended state. | |
| * @param {string=} reason - optionally provide a reason, the model can respond accordingly | |
| * @return {!Promise} | |
| */ | |
| preSuspendModel(reason) { | |
| return Promise.resolve(); | |
| } | |
| /** | |
| * @param {string=} reason - optionally provide a reason, the model can respond accordingly | |
| * @return {!Promise} | |
| */ | |
| suspendModel(reason) { | |
| return Promise.resolve(); | |
| } | |
| /** | |
| * @return {!Promise} | |
| */ | |
| resumeModel() { | |
| return Promise.resolve(); | |
| } | |
| /** | |
| * Override this method to perform tasks that are required to after resuming | |
| * the model and that require all models already in an unsuspended state. | |
| * @return {!Promise} | |
| */ | |
| postResumeModel() { | |
| return Promise.resolve(); | |
| } | |
| dispose() { | |
| } | |
| /** | |
| * @param {function(new:SDKModel, !SDK.Target)} modelClass | |
| * @param {number} capabilities | |
| * @param {boolean} autostart | |
| */ | |
| static register(modelClass, capabilities, autostart) { | |
| _registeredModels.set(modelClass, {capabilities, autostart}); | |
| } | |
| static get registeredModels() { | |
| return _registeredModels; | |
| } | |
| } | |
| /* Legacy exported object */ | |
| self.SDK = self.SDK || {}; | |
| /* Legacy exported object */ | |
| SDK = SDK || {}; | |
| /** @constructor */ | |
| SDK.SDKModel = SDKModel; |