| // Copyright 2017 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. |
| |
| module content.mojom; |
| |
| import "content/public/common/appcache_info.mojom"; |
| import "url/mojom/url.mojom"; |
| import "services/network/public/mojom/url_loader_factory.mojom"; |
| |
| enum AppCacheEventID { |
| APPCACHE_CHECKING_EVENT, |
| APPCACHE_ERROR_EVENT, |
| APPCACHE_NO_UPDATE_EVENT, |
| APPCACHE_DOWNLOADING_EVENT, |
| APPCACHE_PROGRESS_EVENT, |
| APPCACHE_UPDATE_READY_EVENT, |
| APPCACHE_CACHED_EVENT, |
| APPCACHE_OBSOLETE_EVENT, |
| }; |
| |
| enum AppCacheErrorReason { |
| APPCACHE_MANIFEST_ERROR, |
| APPCACHE_SIGNATURE_ERROR, |
| APPCACHE_RESOURCE_ERROR, |
| APPCACHE_CHANGED_ERROR, |
| APPCACHE_ABORT_ERROR, |
| APPCACHE_QUOTA_ERROR, |
| APPCACHE_POLICY_ERROR, |
| APPCACHE_UNKNOWN_ERROR, |
| }; |
| |
| struct AppCacheResourceInfo { |
| url.mojom.Url url; |
| int64 size; |
| bool is_master; |
| bool is_manifest; |
| bool is_intercept; |
| bool is_fallback; |
| bool is_foreign; |
| bool is_explicit; |
| int64 response_id; |
| }; |
| |
| struct AppCacheErrorDetails { |
| string message; |
| AppCacheErrorReason reason = APPCACHE_UNKNOWN_ERROR; |
| url.mojom.Url url; |
| int32 status; |
| bool is_cross_origin; |
| }; |
| |
| |
| // AppCache messages sent from the child process to the browser. |
| interface AppCacheBackend { |
| // Informs the browser of a new appcache host. |
| RegisterHost(int32 host_id); |
| |
| // Informs the browser of an appcache host being destroyed. |
| UnregisterHost(int32 host_id); |
| |
| // Informs the browser of which host caused another to be created. |
| // This can influence which appcache should be utilized for the main |
| // resource load into the newly created host, so it should be sent |
| // prior to the main resource request being initiated. |
| SetSpawningHostId(int32 host_id, int32 spawning_host_id); |
| |
| // Initiates the cache selection algorithm for the given host. |
| // This is sent prior to any subresource loads. An AppCacheMsg_CacheSelected |
| // message will be sent in response. |
| // 'host_id' indentifies a specific document or worker |
| // 'document_url' the url of the main resource |
| // 'appcache_document_was_loaded_from' the id of the appcache the main |
| // resource was loaded from or kAppCacheNoCacheId |
| // 'opt_manifest_url' the manifest url specified in the <html> tag if any |
| SelectCache(int32 host_id, |
| url.mojom.Url document_url, |
| int64 appcache_document_was_loaded_from, |
| url.mojom.Url opt_manifest_url); |
| |
| // Initiates worker specific cache selection algorithm for the given host. |
| SelectCacheForSharedWorker(int32 host_id, int64 appcache_id); |
| |
| // Informs the browser of a 'foreign' entry in an appcache. |
| MarkAsForeignEntry(int32 host_id, |
| url.mojom.Url document_url, |
| int64 appcache_document_was_loaded_from); |
| |
| // Returns the status of the appcache associated with host_id. |
| [Sync] |
| GetStatus(int32 host_id) => (AppCacheStatus status); |
| |
| // Initiates an update of the appcache associated with host_id. |
| [Sync] |
| StartUpdate(int32 host_id) => (bool success); |
| |
| // Swaps a new pending appcache, if there is one, into use for host_id. |
| [Sync] |
| SwapCache(int32 host_id) => (bool success); |
| |
| // Gets resource list from appcache synchronously. |
| [Sync] |
| GetResourceList(int32 host_id) => (array<AppCacheResourceInfo> resources); |
| }; |
| |
| // AppCache messages sent from the browser to the renderer process. |
| interface AppCacheFrontend { |
| // Notifies the renderer of the appcache that has been selected for a |
| // a particular host. This is sent in reply to AppCacheHostMsg_SelectCache. |
| CacheSelected(int32 host_id, AppCacheInfo info); |
| |
| // Notifies the renderer of an AppCache status change. |
| StatusChanged(array<int32> host_ids, AppCacheStatus status); |
| |
| // Notifies the renderer of an AppCache event other than the |
| // progress event which has a seperate message. |
| EventRaised(array<int32> host_ids, AppCacheEventID event_id); |
| |
| // Notifies the renderer of an AppCache progress event. |
| ProgressEventRaised(array<int32> host_ids, |
| url.mojom.Url url, |
| int32 total, |
| int32 complete); |
| |
| // Notifies the renderer of an AppCache error event. |
| ErrorEventRaised(array<int32> host_ids, AppCacheErrorDetails error_details); |
| |
| // Notifies the renderer of an AppCache logging message. |
| LogMessage(int32 host_id, int32 log_level, string message); |
| |
| // Notifies the renderer of the fact that AppCache access was blocked. |
| ContentBlocked(int32 host_id, url.mojom.Url manifest_url); |
| |
| // In the network service world this message sets the URLLoaderFactory to be |
| // used for subresources. |
| SetSubresourceFactory(int32 host_id, |
| network.mojom.URLLoaderFactory url_loader_factory); |
| }; |
| |