2013-11-19 01:49:53 +04:00
|
|
|
/* 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/. */
|
|
|
|
|
2015-08-29 08:45:04 +03:00
|
|
|
include protocol PBackground;
|
2013-11-19 01:49:53 +04:00
|
|
|
|
2013-12-05 08:32:52 +04:00
|
|
|
using mozilla::dom::asmjscache::Metadata from "mozilla/dom/asmjscache/AsmJSCache.h";
|
2014-10-23 02:28:07 +04:00
|
|
|
using JS::AsmJSCacheResult from "mozilla/dom/asmjscache/AsmJSCache.h";
|
2013-12-05 08:32:52 +04:00
|
|
|
|
2013-11-19 01:49:53 +04:00
|
|
|
namespace mozilla {
|
|
|
|
namespace dom {
|
|
|
|
namespace asmjscache {
|
|
|
|
|
2017-11-05 01:13:41 +03:00
|
|
|
union OpenMetadataForReadResponse
|
|
|
|
{
|
|
|
|
AsmJSCacheResult;
|
|
|
|
uint32_t;
|
|
|
|
};
|
|
|
|
|
2013-11-19 01:49:53 +04:00
|
|
|
protocol PAsmJSCacheEntry
|
|
|
|
{
|
2015-08-29 08:45:04 +03:00
|
|
|
manager PBackground;
|
2013-11-19 01:49:53 +04:00
|
|
|
|
2013-12-05 08:32:52 +04:00
|
|
|
// 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:
|
2016-01-27 00:51:53 +03:00
|
|
|
async OnOpenMetadataForRead(Metadata metadata);
|
2013-12-05 08:32:52 +04:00
|
|
|
parent:
|
2017-11-05 01:13:41 +03:00
|
|
|
async SelectCacheFileToRead(OpenMetadataForReadResponse response);
|
2013-12-05 08:32:52 +04:00
|
|
|
|
2013-11-19 01:49:53 +04:00
|
|
|
child:
|
2013-12-05 08:32:52 +04:00
|
|
|
// Once the cache file has been opened, the child is notified and sent an
|
|
|
|
// open file descriptor.
|
2016-01-27 00:51:53 +03:00
|
|
|
async OnOpenCacheFile(int64_t fileSize, FileDescriptor fileDesc);
|
2013-11-19 01:49:53 +04:00
|
|
|
|
2017-11-05 01:13:41 +03:00
|
|
|
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.
|
2016-01-27 00:51:53 +03:00
|
|
|
async __delete__(AsmJSCacheResult result);
|
2013-11-19 01:49:53 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace asmjscache
|
|
|
|
} // namespace dom
|
|
|
|
} // namespace mozilla
|