dom/indexedDB/PBackgroundIDBVersionChangeTransaction.ipdl
author Nika Layzell <nika@thelayzells.com>
Thu, 06 Aug 2020 14:04:13 +0000
changeset 544125 ee09cb88af177571304759bc05c760e3d82fd1ed
parent 537781 05e418cb577030eda73177e7f9c22b3579a8e8dd
permissions -rw-r--r--
Bug 1656854 - Part 2: Add a BrowsingContextGroup keepalive to BrowserParent shutdown, r=farre In bug 1652085, I added BrowsingContextGroup keepalives while waiting for replies to the discard message, however that message isn't actually sent to the current owner process. Instead, the BrowsingContext is discarded by the PBrowser being destroyed. This should help ensure we also keep the group alive during normal BrowserParent destruction. Differential Revision: https://phabricator.services.mozilla.com/D85897

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/. */

include protocol PBackgroundIDBCursor;
include protocol PBackgroundIDBDatabase;
include protocol PBackgroundIDBDatabaseFile;
include protocol PBackgroundIDBRequest;
include protocol PBackgroundMutableFile;
include protocol PChildToParentStream;  // FIXME: bug 792908
include protocol PFileDescriptorSet;    // FIXME: bug 792908
include protocol PParentToChildStream;  // FIXME: bug 792908
include protocol PRemoteLazyInputStream;   // FIXME: bug 792908

include PBackgroundIDBSharedTypes;

namespace mozilla {
namespace dom {
namespace indexedDB {

refcounted protocol PBackgroundIDBVersionChangeTransaction {
  manager PBackgroundIDBDatabase;

  manages PBackgroundIDBCursor;
  manages PBackgroundIDBRequest;

parent:
  async DeleteMe();

  async Commit(int64_t? lastRequest);
  async Abort(nsresult resultCode);

  async CreateObjectStore(ObjectStoreMetadata metadata);
  async DeleteObjectStore(int64_t objectStoreId);
  async RenameObjectStore(int64_t objectStoreId, nsString name);

  async CreateIndex(int64_t objectStoreId, IndexMetadata metadata);
  async DeleteIndex(int64_t objectStoreId, int64_t indexId);
  async RenameIndex(int64_t objectStoreId, int64_t indexId, nsString name);

  async PBackgroundIDBCursor(OpenCursorParams params);

  async PBackgroundIDBRequest(RequestParams params);

child:
  async __delete__();

  async Complete(nsresult result);
};

}  // namespace indexedDB
}  // namespace dom
}  // namespace mozilla