Bug 204305 - Speculative loading sometimes happens too early and is missing login cookies
Summary: Speculative loading sometimes happens too early and is missing login cookies
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit2 (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-11-18 11:29 PST by Chris Dumez
Modified: 2019-11-22 09:25 PST (History)
8 users (show)

See Also:


Attachments
Patch (21.33 KB, patch)
2019-11-18 11:40 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (21.19 KB, patch)
2019-11-18 13:39 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (17.87 KB, patch)
2019-11-22 07:56 PST, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (18.00 KB, patch)
2019-11-22 08:28 PST, Chris Dumez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Dumez 2019-11-18 11:29:34 PST
Speculative loading sometimes happens too early and is missing important login cookies.
Comment 1 Chris Dumez 2019-11-18 11:29:51 PST
<rdar://problem/57063840>
Comment 2 Chris Dumez 2019-11-18 11:40:48 PST
Created attachment 383767 [details]
Patch
Comment 3 Chris Dumez 2019-11-18 13:39:03 PST
Created attachment 383784 [details]
Patch
Comment 4 Antti Koivisto 2019-11-19 01:08:45 PST
Comment on attachment 383784 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=383784&action=review

> Source/WebKit/NetworkProcess/cache/NetworkCache.h:143
> +    void retrieve(const WebCore::ResourceRequest&, const GlobalFrameID&, bool isTopMainResourceLoad, RetrieveCompletionHandler&&);

This information seems to be already available in ResourceRequest as oddly named isTopSite() bit. Can we avoid duplicating information?

Also the parameter should be an enum.

> Source/WebKit/NetworkProcess/cache/NetworkCache.h:148
> +    void registerMainResourceLoadResponse(const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, const GlobalFrameID&);

This should probably be in #if ENABLE(NETWORK_CACHE_SPECULATIVE_REVALIDATION) section. 

This sort of stuff points to speculative load being implemented in a wrong layer. Cache API tries not to be a collection of random functions, but things that actually make sense for a class called Cache. This doesn't really belong.
Comment 5 Chris Dumez 2019-11-22 07:56:22 PST
Created attachment 384153 [details]
Patch
Comment 6 Chris Dumez 2019-11-22 08:28:13 PST
Created attachment 384156 [details]
Patch
Comment 7 WebKit Commit Bot 2019-11-22 09:25:36 PST
Comment on attachment 384156 [details]
Patch

Clearing flags on attachment: 384156

Committed r252778: <https://trac.webkit.org/changeset/252778>
Comment 8 WebKit Commit Bot 2019-11-22 09:25:37 PST
All reviewed patches have been landed.  Closing bug.