// 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. if ((typeof mojo === 'undefined') || !mojo.bindingsLibraryInitialized) { loadScript('mojo_bindings'); } loadScript('extensions/common/mojo/keep_alive.mojom'); /** * An object that keeps the background page alive until closed. * @constructor * @alias module:keep_alive~KeepAlive */ function KeepAlive() { var pipe = Mojo.createMessagePipe(); /** * The handle to the keep-alive object in the browser. * @type {!MojoHandle} * @private */ this.handle_ = pipe.handle0; Mojo.bindInterface(extensions.KeepAlive.name, pipe.handle1); } /** * Removes this keep-alive. */ KeepAlive.prototype.close = function() { this.handle_.close(); }; /** * Creates a keep-alive. * @return {!module:keep_alive~KeepAlive} A new keep-alive. */ exports.$set('createKeepAlive', function() { return new KeepAlive(); });