mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
ccc56e1b20
The ServiceWorkerRegistrationInfo's principal is the principal of the document that called register(). If we create WorkerPrivate instances based off of this, they have a valid principal in terms of security and same-origin-ness, but the URI path is wrong. When fetching the script from the network, the channel's principal is used to update the worker principal. We need to do the same when the script is loaded from Cache. This patch adds support to store the channel principal in the cache.
235 lines
3.7 KiB
Plaintext
235 lines
3.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 PCache;
|
|
include protocol PCachePushStream;
|
|
include protocol PCacheStreamControl;
|
|
include InputStreamParams;
|
|
include ChannelInfo;
|
|
include PBackgroundSharedTypes;
|
|
|
|
using HeadersGuardEnum from "mozilla/dom/cache/IPCUtils.h";
|
|
using RequestCredentials from "mozilla/dom/cache/IPCUtils.h";
|
|
using RequestMode from "mozilla/dom/cache/IPCUtils.h";
|
|
using RequestCache from "mozilla/dom/cache/IPCUtils.h";
|
|
using ResponseType from "mozilla/dom/cache/IPCUtils.h";
|
|
using mozilla::void_t from "ipc/IPCMessageUtils.h";
|
|
using struct nsID from "nsID.h";
|
|
|
|
namespace mozilla {
|
|
namespace dom {
|
|
namespace cache {
|
|
|
|
struct CacheQueryParams
|
|
{
|
|
bool ignoreSearch;
|
|
bool ignoreMethod;
|
|
bool ignoreVary;
|
|
bool cacheNameSet;
|
|
nsString cacheName;
|
|
};
|
|
|
|
struct CacheReadStream
|
|
{
|
|
nsID id;
|
|
OptionalInputStreamParams params;
|
|
OptionalFileDescriptorSet fds;
|
|
nullable PCacheStreamControl control;
|
|
nullable PCachePushStream pushStream;
|
|
};
|
|
|
|
union CacheReadStreamOrVoid
|
|
{
|
|
void_t;
|
|
CacheReadStream;
|
|
};
|
|
|
|
struct HeadersEntry
|
|
{
|
|
nsCString name;
|
|
nsCString value;
|
|
};
|
|
|
|
struct CacheRequest
|
|
{
|
|
nsCString method;
|
|
nsCString urlWithoutQuery;
|
|
nsCString urlQuery;
|
|
HeadersEntry[] headers;
|
|
HeadersGuardEnum headersGuard;
|
|
nsString referrer;
|
|
RequestMode mode;
|
|
RequestCredentials credentials;
|
|
CacheReadStreamOrVoid body;
|
|
uint32_t contentPolicyType;
|
|
RequestCache requestCache;
|
|
};
|
|
|
|
union CacheRequestOrVoid
|
|
{
|
|
void_t;
|
|
CacheRequest;
|
|
};
|
|
|
|
struct CacheResponse
|
|
{
|
|
ResponseType type;
|
|
nsCString url;
|
|
uint32_t status;
|
|
nsCString statusText;
|
|
HeadersEntry[] headers;
|
|
HeadersGuardEnum headersGuard;
|
|
CacheReadStreamOrVoid body;
|
|
IPCChannelInfo channelInfo;
|
|
OptionalPrincipalInfo principalInfo;
|
|
};
|
|
|
|
union CacheResponseOrVoid
|
|
{
|
|
void_t;
|
|
CacheResponse;
|
|
};
|
|
|
|
struct CacheRequestResponse
|
|
{
|
|
CacheRequest request;
|
|
CacheResponse response;
|
|
};
|
|
|
|
struct CacheMatchArgs
|
|
{
|
|
CacheRequest request;
|
|
CacheQueryParams params;
|
|
};
|
|
|
|
struct CacheMatchAllArgs
|
|
{
|
|
CacheRequestOrVoid requestOrVoid;
|
|
CacheQueryParams params;
|
|
};
|
|
|
|
struct CachePutAllArgs
|
|
{
|
|
CacheRequestResponse[] requestResponseList;
|
|
};
|
|
|
|
struct CacheDeleteArgs
|
|
{
|
|
CacheRequest request;
|
|
CacheQueryParams params;
|
|
};
|
|
|
|
struct CacheKeysArgs
|
|
{
|
|
CacheRequestOrVoid requestOrVoid;
|
|
CacheQueryParams params;
|
|
};
|
|
|
|
struct StorageMatchArgs
|
|
{
|
|
CacheRequest request;
|
|
CacheQueryParams params;
|
|
};
|
|
|
|
struct StorageHasArgs
|
|
{
|
|
nsString key;
|
|
};
|
|
|
|
struct StorageOpenArgs
|
|
{
|
|
nsString key;
|
|
};
|
|
|
|
struct StorageDeleteArgs
|
|
{
|
|
nsString key;
|
|
};
|
|
|
|
struct StorageKeysArgs
|
|
{
|
|
};
|
|
|
|
union CacheOpArgs
|
|
{
|
|
CacheMatchArgs;
|
|
CacheMatchAllArgs;
|
|
CachePutAllArgs;
|
|
CacheDeleteArgs;
|
|
CacheKeysArgs;
|
|
StorageMatchArgs;
|
|
StorageHasArgs;
|
|
StorageOpenArgs;
|
|
StorageDeleteArgs;
|
|
StorageKeysArgs;
|
|
};
|
|
|
|
struct CacheMatchResult
|
|
{
|
|
CacheResponseOrVoid responseOrVoid;
|
|
};
|
|
|
|
struct CacheMatchAllResult
|
|
{
|
|
CacheResponse[] responseList;
|
|
};
|
|
|
|
struct CachePutAllResult
|
|
{
|
|
};
|
|
|
|
struct CacheDeleteResult
|
|
{
|
|
bool success;
|
|
};
|
|
|
|
struct CacheKeysResult
|
|
{
|
|
CacheRequest[] requestList;
|
|
};
|
|
|
|
struct StorageMatchResult
|
|
{
|
|
CacheResponseOrVoid responseOrVoid;
|
|
};
|
|
|
|
struct StorageHasResult
|
|
{
|
|
bool success;
|
|
};
|
|
|
|
struct StorageOpenResult
|
|
{
|
|
nullable PCache actor;
|
|
};
|
|
|
|
struct StorageDeleteResult
|
|
{
|
|
bool success;
|
|
};
|
|
|
|
struct StorageKeysResult
|
|
{
|
|
nsString[] keyList;
|
|
};
|
|
|
|
union CacheOpResult
|
|
{
|
|
void_t;
|
|
CacheMatchResult;
|
|
CacheMatchAllResult;
|
|
CachePutAllResult;
|
|
CacheDeleteResult;
|
|
CacheKeysResult;
|
|
StorageMatchResult;
|
|
StorageHasResult;
|
|
StorageOpenResult;
|
|
StorageDeleteResult;
|
|
StorageKeysResult;
|
|
};
|
|
|
|
} // namespace cache
|
|
} // namespace dom
|
|
} // namespace mozilla
|