| Index: content/browser/loader/resource_requester_info.h
|
| diff --git a/content/browser/loader/resource_requester_info.h b/content/browser/loader/resource_requester_info.h
|
| index 86e39d33a752ad890e6614b7705c439b19f7e80b..1de19d69dbddd659ad67d5c12468e248735b2568 100644
|
| --- a/content/browser/loader/resource_requester_info.h
|
| +++ b/content/browser/loader/resource_requester_info.h
|
| @@ -29,11 +29,12 @@ class ResourceMessageFilter;
|
| class ServiceWorkerContextWrapper;
|
|
|
| // This class represents the type of resource requester.
|
| -// Currently there are three types:
|
| +// Currently there are four types:
|
| // - Requesters that request resources from renderer processes.
|
| // - Requesters that request resources within the browser process for browser
|
| // side navigation (aka PlzNavigate).
|
| // - Requesters that request resources for download or page save.
|
| +// - Requesters that request service worker navigation preload requests.
|
| class CONTENT_EXPORT ResourceRequesterInfo
|
| : public base::RefCountedThreadSafe<ResourceRequesterInfo> {
|
| public:
|
| @@ -67,10 +68,19 @@ class CONTENT_EXPORT ResourceRequesterInfo
|
| static scoped_refptr<ResourceRequesterInfo> CreateForDownloadOrPageSave(
|
| int child_id);
|
|
|
| + // Creates a ResourceRequesterInfo for a service worker navigation preload
|
| + // request. When PlzNavigate is enabled, |original_request_info| must be
|
| + // browser side navigation type. Otherwise it must be renderer type.
|
| + static scoped_refptr<ResourceRequesterInfo> CreateForNavigationPreload(
|
| + ResourceRequesterInfo* original_request_info);
|
| +
|
| bool IsRenderer() const { return type_ == RequesterType::RENDERER; }
|
| bool IsBrowserSideNavigation() const {
|
| return type_ == RequesterType::BROWSER_SIDE_NAVIGATION;
|
| }
|
| + bool IsNavigationPreload() const {
|
| + return type_ == RequesterType::NAVIGATION_PRELOAD;
|
| + }
|
|
|
| // Returns the renderer process ID associated with the requester. Returns -1
|
| // for browser side navigation requester. Even if the ResourceMessageFilter
|
| @@ -88,7 +98,7 @@ class CONTENT_EXPORT ResourceRequesterInfo
|
|
|
| // Returns the ResourceContext and URLRequestContext associated to the
|
| // requester. Currently this method is available only for renderer type
|
| - // requester.
|
| + // requester and service worker navigation preload type.
|
| void GetContexts(ResourceType resource_type,
|
| ResourceContext** resource_context,
|
| net::URLRequestContext** request_context) const;
|
| @@ -110,8 +120,9 @@ class CONTENT_EXPORT ResourceRequesterInfo
|
| }
|
|
|
| // Returns the ServiceWorkerContext associated with the requester. Currently
|
| - // this method is available for renderer type requester and browser side
|
| - // navigation type requester.
|
| + // this method is available for renderer type requester, browser side
|
| + // navigation type requester and service worker navigation preload type
|
| + // requester.
|
| ServiceWorkerContextWrapper* service_worker_context() {
|
| return service_worker_context_.get();
|
| }
|
| @@ -122,7 +133,8 @@ class CONTENT_EXPORT ResourceRequesterInfo
|
| enum class RequesterType {
|
| RENDERER,
|
| BROWSER_SIDE_NAVIGATION,
|
| - DOWNLOAD_OR_PAGE_SAVE
|
| + DOWNLOAD_OR_PAGE_SAVE,
|
| + NAVIGATION_PRELOAD
|
| };
|
|
|
| ResourceRequesterInfo(RequesterType type,
|
|
|