зеркало из https://github.com/mozilla/gecko-dev.git
54 строки
1.7 KiB
Plaintext
54 строки
1.7 KiB
Plaintext
/* 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 PBackground;
|
|
|
|
using mozilla::dom::asmjscache::Metadata from "mozilla/dom/asmjscache/AsmJSCache.h";
|
|
using JS::AsmJSCacheResult from "mozilla/dom/asmjscache/AsmJSCache.h";
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
namespace asmjscache {
|
|
|
|
union OpenMetadataForReadResponse
|
|
{
|
|
AsmJSCacheResult;
|
|
uint32_t;
|
|
};
|
|
|
|
protocol PAsmJSCacheEntry
|
|
{
|
|
manager PBackground;
|
|
|
|
// When the cache is opened to read, the parent process sends over the
|
|
// origin's Metadata so the child process can select the cache entry to open
|
|
// (based on hash) and notify the parent (via SelectCacheFileToRead).
|
|
child:
|
|
async OnOpenMetadataForRead(Metadata metadata);
|
|
parent:
|
|
async SelectCacheFileToRead(OpenMetadataForReadResponse response);
|
|
|
|
child:
|
|
// Once the cache file has been opened, the child is notified and sent an
|
|
// open file descriptor.
|
|
async OnOpenCacheFile(int64_t fileSize, FileDescriptor fileDesc);
|
|
|
|
parent:
|
|
// When the child process is done with the cache entry, the parent process
|
|
// is notified (via Close).
|
|
async Close();
|
|
|
|
child:
|
|
// When there's an error during the opening phase, the child process is
|
|
// notified (via __delete__) and sent an error result.
|
|
// When the parent process receives the Close message, it closes the cache
|
|
// entry on the parent side and the child is notified (via __delete__).
|
|
// The protocol is destroyed in both cases.
|
|
async __delete__(AsmJSCacheResult result);
|
|
};
|
|
|
|
} // namespace asmjscache
|
|
} // namespace dom
|
|
} // namespace mozilla
|