Bug 175482 - Implement quota limitation for keepalive Fetch requests
Summary: Implement quota limitation for keepalive Fetch requests
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL: https://fetch.spec.whatwg.org/#http-n...
Keywords: InRadar
Depends on: 175546
Blocks: 175443 175505
  Show dependency treegraph
 
Reported: 2017-08-11 10:00 PDT by Chris Dumez
Modified: 2017-08-15 12:35 PDT (History)
9 users (show)

See Also:


Attachments
WIP Patch (60.58 KB, patch)
2017-08-11 11:27 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
WIP Patch (62.22 KB, patch)
2017-08-11 11:41 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
WIP Patch (62.26 KB, patch)
2017-08-11 12:57 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (82.79 KB, patch)
2017-08-11 13:23 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews101 for mac-elcapitan (1.11 MB, application/zip)
2017-08-11 14:28 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews107 for mac-elcapitan-wk2 (1.09 MB, application/zip)
2017-08-11 14:42 PDT, Build Bot
no flags Details
Patch (91.62 KB, patch)
2017-08-11 14:52 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (93.96 KB, patch)
2017-08-11 15:39 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (93.45 KB, patch)
2017-08-11 16:52 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (94.20 KB, patch)
2017-08-11 18:47 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (87.84 KB, patch)
2017-08-11 18:49 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (98.75 KB, patch)
2017-08-14 10:51 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (100.30 KB, patch)
2017-08-14 12:17 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Patch (144.16 KB, patch)
2017-08-14 14:01 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews100 for mac-elcapitan (990.68 KB, application/zip)
2017-08-14 15:15 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews107 for mac-elcapitan-wk2 (1.07 MB, application/zip)
2017-08-14 15:21 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews115 for mac-elcapitan (1.77 MB, application/zip)
2017-08-14 15:29 PDT, Build Bot
no flags Details
Patch (83.05 KB, patch)
2017-08-14 18:37 PDT, Chris Dumez
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews126 for ios-simulator-wk2 (1.37 MB, application/zip)
2017-08-14 21:49 PDT, Build Bot
no flags Details
Patch (83.33 KB, patch)
2017-08-15 10:16 PDT, 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 2017-08-11 10:00:06 PDT
Implement quota limitation for keepalive Fetch requests as per:
- https://fetch.spec.whatwg.org/#http-network-or-cache-fetch (Step 9)
Comment 1 Chris Dumez 2017-08-11 11:27:14 PDT
Created attachment 317939 [details]
WIP Patch
Comment 2 Build Bot 2017-08-11 11:29:55 PDT
Attachment 317939 [details] did not pass style-queue:


ERROR: Source/WebCore/loader/cache/CachedResourceLoader.cpp:844:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Chris Dumez 2017-08-11 11:41:06 PDT
Created attachment 317941 [details]
WIP Patch
Comment 4 Chris Dumez 2017-08-11 12:57:04 PDT
Created attachment 317951 [details]
WIP Patch
Comment 5 Chris Dumez 2017-08-11 13:23:55 PDT
Created attachment 317955 [details]
Patch
Comment 6 Build Bot 2017-08-11 14:28:51 PDT
Comment on attachment 317955 [details]
Patch

Attachment 317955 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/4297646

New failing tests:
imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.html
imported/w3c/web-platform-tests/fetch/http-cache/cc-request.html
inspector/worker/resources-in-worker.html
imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html
Comment 7 Build Bot 2017-08-11 14:28:52 PDT
Created attachment 317961 [details]
Archive of layout-test-results from ews101 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews101  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 8 Build Bot 2017-08-11 14:42:03 PDT
Comment on attachment 317955 [details]
Patch

Attachment 317955 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/4297675

New failing tests:
imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count.html
inspector/worker/resources-in-worker.html
imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-worker.html
Comment 9 Build Bot 2017-08-11 14:42:04 PDT
Created attachment 317965 [details]
Archive of layout-test-results from ews107 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6
Comment 10 Chris Dumez 2017-08-11 14:52:08 PDT
Created attachment 317968 [details]
Patch
Comment 11 Chris Dumez 2017-08-11 15:39:40 PDT
Created attachment 317971 [details]
Patch
Comment 12 Sam Weinig 2017-08-11 16:32:26 PDT
Comment on attachment 317971 [details]
Patch

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

> Source/WebCore/loader/DocumentThreadableLoader.cpp:455
> +        ResourceError error;
> +        m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest), &error);

Rather than out parameters, what do you think about adding a ResourceErrorOr<> class?
Comment 13 Chris Dumez 2017-08-11 16:35:46 PDT
(In reply to Sam Weinig from comment #12)
> Comment on attachment 317971 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=317971&action=review
> 
> > Source/WebCore/loader/DocumentThreadableLoader.cpp:455
> > +        ResourceError error;
> > +        m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest), &error);
> 
> Rather than out parameters, what do you think about adding a
> ResourceErrorOr<> class?

I tried to keep the refactoring as minimal as possible in this patch to limit size but I do agree that it'd be nice if we used a better design. I don't know that this deserves a new class though? I was personally considering WTF::Expected<CachedResourceHandle<CachedResource>>, ResourceError>.
Comment 14 Sam Weinig 2017-08-11 16:46:15 PDT
(In reply to Chris Dumez from comment #13)
> (In reply to Sam Weinig from comment #12)
> > Comment on attachment 317971 [details]
> > Patch
> > 
> > View in context:
> > https://bugs.webkit.org/attachment.cgi?id=317971&action=review
> > 
> > > Source/WebCore/loader/DocumentThreadableLoader.cpp:455
> > > +        ResourceError error;
> > > +        m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest), &error);
> > 
> > Rather than out parameters, what do you think about adding a
> > ResourceErrorOr<> class?
> 
> I tried to keep the refactoring as minimal as possible in this patch to
> limit size but I do agree that it'd be nice if we used a better design. I
> don't know that this deserves a new class though? I was personally
> considering WTF::Expected<CachedResourceHandle<CachedResource>>,
> ResourceError>.

That would be cool too.
Comment 15 Chris Dumez 2017-08-11 16:50:03 PDT
(In reply to Sam Weinig from comment #14)
> (In reply to Chris Dumez from comment #13)
> > (In reply to Sam Weinig from comment #12)
> > > Comment on attachment 317971 [details]
> > > Patch
> > > 
> > > View in context:
> > > https://bugs.webkit.org/attachment.cgi?id=317971&action=review
> > > 
> > > > Source/WebCore/loader/DocumentThreadableLoader.cpp:455
> > > > +        ResourceError error;
> > > > +        m_resource = m_document.cachedResourceLoader().requestRawResource(WTFMove(newRequest), &error);
> > > 
> > > Rather than out parameters, what do you think about adding a
> > > ResourceErrorOr<> class?
> > 
> > I tried to keep the refactoring as minimal as possible in this patch to
> > limit size but I do agree that it'd be nice if we used a better design. I
> > don't know that this deserves a new class though? I was personally
> > considering WTF::Expected<CachedResourceHandle<CachedResource>>,
> > ResourceError>.
> 
> That would be cool too.

Will do this refactoring in a follow-up. I think it will look better indeed.
Comment 16 Chris Dumez 2017-08-11 16:52:58 PDT
Created attachment 317976 [details]
Patch
Comment 17 youenn fablet 2017-08-11 16:55:31 PDT
Comment on attachment 317971 [details]
Patch

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

> Source/WebCore/ChangeLog:11
> +        This partly works for Beacon was well, meaning that no Beacon with a body

s/was/as.

> Source/WebCore/Modules/fetch/FetchBodyOwner.h:91
> +        void didFail(const ResourceError&) final;

Should probably be a ResourceError&& although in practice, ResourceError might not allow us today to move some of its internals like its description.

> Source/WebCore/loader/cache/CachedResourceLoader.cpp:184
> +CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest&& request, ResourceError* error)

Couldn't we try passing the error through CachedResourceHandle?

> Source/WebCore/loader/cache/CachedResourceLoader.cpp:831
> +        if (resource->options().keepAlive && !m_keepaliveRequestTracker.canLoadRequest(*resource)) {

I am not sure we should do that there.
This is probably fine in practice for fetch but in the future this assumption might be broken.
Why not doing it in CachedResource::load() instead?

> Source/WebCore/loader/cache/KeepaliveRequestTracker.cpp:27
> +#include "KeepaliveRequestTracker.h"

Not sure what is the rule but KeepAlive would read better than Keepalive to me.

> Source/WebCore/loader/cache/KeepaliveRequestTracker.cpp:31
> +const uint64_t maxInflightKeepaliveBytes { 65536 }; // 64 kibibytes as per Fetch specification.

s/kibi/kilo/

> Source/WebCore/platform/network/FormData.cpp:143
> +        auto* blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(m_url);

I am not sure this actually works to go through blobRegistry.
Do we have tests for that case (blob+keepalive)?

To get the size of the blob, we should probably get the actual Blob and read its size directly.
Unfortunately, this is only known at FetchRequest level so there would be a need to pass it all through CachedResourceLoader.
Comment 18 youenn fablet 2017-08-11 16:57:13 PDT
cdumez, before committing, can you check the blob+keepalive first?
Comment 19 youenn fablet 2017-08-11 16:58:28 PDT
In the meantime, I'll stop the cq.
Comment 20 Chris Dumez 2017-08-11 18:11:36 PDT
Comment on attachment 317971 [details]
Patch

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

>> Source/WebCore/ChangeLog:11
>> +        This partly works for Beacon was well, meaning that no Beacon with a body
> 
> s/was/as.

Ok.

>> Source/WebCore/Modules/fetch/FetchBodyOwner.h:91
>> +        void didFail(const ResourceError&) final;
> 
> Should probably be a ResourceError&& although in practice, ResourceError might not allow us today to move some of its internals like its description.

None of the clients actually want to take ownership of the ResourceError. Also, in requestResource(), there is one instance we we return an error from the resource. This would force me to copy the error in this case if I used a ResourceError&&.

>> Source/WebCore/loader/cache/CachedResourceLoader.cpp:184
>> +CachedResourceHandle<CachedImage> CachedResourceLoader::requestImage(CachedResourceRequest&& request, ResourceError* error)
> 
> Couldn't we try passing the error through CachedResourceHandle?

I don't know that I would like this design. I think of a CachedResourceHandle similarly as a RefPtr, it is ref counting for resources. I'd rather use WTF::Expected as discussed with Sam earlier. I already filed a bug about refactoring this in a follow-up to minimize the size of this patch.

>> Source/WebCore/loader/cache/CachedResourceLoader.cpp:831
>> +        if (resource->options().keepAlive && !m_keepaliveRequestTracker.canLoadRequest(*resource)) {
> 
> I am not sure we should do that there.
> This is probably fine in practice for fetch but in the future this assumption might be broken.
> Why not doing it in CachedResource::load() instead?

Hmm. I can probably do this in CachedResource::load(). I'll try it out and see how it looks.

>> Source/WebCore/loader/cache/KeepaliveRequestTracker.cpp:27
>> +#include "KeepaliveRequestTracker.h"
> 
> Not sure what is the rule but KeepAlive would read better than Keepalive to me.

I am not sure what the rule is either so I went with the casing that is used in the fetch spec and in the IDL.

>> Source/WebCore/loader/cache/KeepaliveRequestTracker.cpp:31
>> +const uint64_t maxInflightKeepaliveBytes { 65536 }; // 64 kibibytes as per Fetch specification.
> 
> s/kibi/kilo/

Why? The spec says "64 kibibytes".

>> Source/WebCore/platform/network/FormData.cpp:143
>> +        auto* blobData = static_cast<BlobRegistryImpl&>(blobRegistry()).getBlobDataFromURL(m_url);
> 
> I am not sure this actually works to go through blobRegistry.
> Do we have tests for that case (blob+keepalive)?
> 
> To get the size of the blob, we should probably get the actual Blob and read its size directly.
> Unfortunately, this is only known at FetchRequest level so there would be a need to pass it all through CachedResourceLoader.

I tried a blob like new Blob(["123"]) and it seemed to work but I'll confirm.
Comment 21 Chris Dumez 2017-08-11 18:33:54 PDT
(In reply to youenn fablet from comment #18)
> cdumez, before committing, can you check the blob+keepalive first?

It does appear you're right and Blob size is not properly computed. I thought I tested this earlier.. Will look into this.
Comment 22 Chris Dumez 2017-08-11 18:42:15 PDT
(In reply to Chris Dumez from comment #21)
> (In reply to youenn fablet from comment #18)
> > cdumez, before committing, can you check the blob+keepalive first?
> 
> It does appear you're right and Blob size is not properly computed. I
> thought I tested this earlier.. Will look into this.

ThreadableBlobRegistry::blobSize(m_url) seems to work.
Comment 23 Chris Dumez 2017-08-11 18:47:04 PDT
Created attachment 317984 [details]
Patch
Comment 24 Chris Dumez 2017-08-11 18:49:27 PDT
Created attachment 317985 [details]
Patch
Comment 25 Chris Dumez 2017-08-11 18:51:28 PDT
Comment on attachment 317985 [details]
Patch

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

> Source/WebCore/loader/cache/CachedResource.cpp:262
> +    if (m_options.keepAlive) {

Moved the logic to CachedResource::load() as suggested.

> Source/WebCore/platform/network/FormData.cpp:142
> +        return blobRegistry().blobSize(m_url);

Now using this to retrieve the blob size, which seems to work.

> LayoutTests/http/wpt/beacon/beacon-quota.html:10
> +        return new Blob(["*".repeat(payloadSize)]);

Updated this test to use a Blob for better coverage.
Comment 26 youenn fablet 2017-08-11 19:21:39 PDT
Comment on attachment 317985 [details]
Patch

LGTM.

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

> Source/WebCore/loader/cache/KeepaliveRequestTracker.cpp:87
> +    m_inflightKeepaliveBytes -= resource.resourceRequest().httpBody()->lengthInBytes();

I wonder whether we should not have m_inflightKeepaliveRequests be a map<request, size_t>
resource.resourceRequest() could be modified throughout the load and become null for instance.
Or the blob registry may change and lengthInBytes be changed inadvertently.

I also wonder whether we should ensure that m_inflightKeepaliveBytes is greater than resource.resourceRequest().httpBody()->lengthInBytes()
Comment 27 WebKit Commit Bot 2017-08-11 19:51:16 PDT
Comment on attachment 317985 [details]
Patch

Clearing flags on attachment: 317985

Committed r220622: <http://trac.webkit.org/changeset/220622>
Comment 28 WebKit Commit Bot 2017-08-11 19:51:18 PDT
All reviewed patches have been landed.  Closing bug.
Comment 29 Radar WebKit Bug Importer 2017-08-11 19:52:23 PDT
<rdar://problem/33860695>
Comment 30 youenn fablet 2017-08-12 13:32:40 PDT
> I wonder whether we should not have m_inflightKeepaliveRequests be a
> map<request, size_t>
> resource.resourceRequest() could be modified throughout the load and become
> null for instance.
> Or the blob registry may change and lengthInBytes be changed inadvertently.

Maybe something like:
- create blob1 of 60ko
- fetch(keepalive+blob1) on a script taking some time to answer
- GC the blob so that the blob URL is no longer in the registry
- wait for fetch to complete
- create blob2 of 60ko
- fetch(keepalive+blob2) and check that it does not reject
Comment 31 youenn fablet 2017-08-12 14:07:11 PDT
> Maybe something like:
> - create blob1 of 60ko
> - fetch(keepalive+blob1) on a script taking some time to answer
> - GC the blob so that the blob URL is no longer in the registry
> - wait for fetch to complete
> - create blob2 of 60ko
> - fetch(keepalive+blob2) and check that it does not reject

Ah no, won't work
Comment 32 Chris Dumez 2017-08-12 14:09:29 PDT
(In reply to youenn fablet from comment #31)
> > Maybe something like:
> > - create blob1 of 60ko
> > - fetch(keepalive+blob1) on a script taking some time to answer
> > - GC the blob so that the blob URL is no longer in the registry
> > - wait for fetch to complete
> > - create blob2 of 60ko
> > - fetch(keepalive+blob2) and check that it does not reject
> 
> Ah no, won't work

Also note that FormData is caching is size so something would also need to invalidate the cached size for this to be an issue.
Comment 33 youenn fablet 2017-08-12 15:21:03 PDT
> Also note that FormData is caching is size so something would also need to
> invalidate the cached size for this to be an issue.

I wonder whether this is a good thing given that the cached size may be out of sync with its actual size. It seems safer to have KeepaliveRequestTracker cache this value.
Comment 34 Chris Dumez 2017-08-12 16:20:08 PDT
(In reply to youenn fablet from comment #33)
> > Also note that FormData is caching is size so something would also need to
> > invalidate the cached size for this to be an issue.
> 
> I wonder whether this is a good thing given that the cached size may be out
> of sync with its actual size. It seems safer to have KeepaliveRequestTracker
> cache this value.

No, operations that would impact the size should invalidate the cached size.
Also, I would not expect the request of a CachedResource to change.
Comment 35 youenn fablet 2017-08-12 18:14:00 PDT
> No, operations that would impact the size should invalidate the cached size.

AFAIK, FormData is not aware of any change done to the blob registry.
When a blob gets destroyed, how will FormData know to set its cached size to zero?

If the same FormData is used in two different loads, that could end up be a problem.
A small code change to fetch request cloning could make this real.

> Also, I would not expect the request of a CachedResource to change.

CachedResource has a public non-const accessor to the request right now.
Not sure this is a good thing but hey...

Any part of the code can actually nullify the body of the CachedResource request.
I don't think this is the case right now, but I could see that done in some redirection/error cases for instance.
If so, the current code could run into a null pointer dereference.
Comment 36 youenn fablet 2017-08-12 18:17:36 PDT
Comment on attachment 317985 [details]
Patch

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

> Source/WebCore/platform/network/FormData.cpp:137
> +        if (getFileSize(m_shouldGenerateFile ? m_generatedFilename : m_filename, fileSize))

As a side note, is it ok to read the file size from WebProcess with regards to sandboxing?
Comment 37 Ryan Haddad 2017-08-14 08:29:34 PDT
(In reply to WebKit Commit Bot from comment #27)
> Comment on attachment 317985 [details]
> Patch
> 
> Clearing flags on attachment: 317985
> 
> Committed r220622: <http://trac.webkit.org/changeset/220622>
This change caused 38 LayoutTest crashes and 11 failures on iOS:

https://build.webkit.org/builders/Apple%20iOS%2010%20Simulator%20Release%20WK2%20%28Tests%29/builds/3578
Comment 38 Chris Dumez 2017-08-14 09:20:10 PDT
(In reply to Ryan Haddad from comment #37)
> (In reply to WebKit Commit Bot from comment #27)
> > Comment on attachment 317985 [details]
> > Patch
> > 
> > Clearing flags on attachment: 317985
> > 
> > Committed r220622: <http://trac.webkit.org/changeset/220622>
> This change caused 38 LayoutTest crashes and 11 failures on iOS:
> 
> https://build.webkit.org/builders/
> Apple%20iOS%2010%20Simulator%20Release%20WK2%20%28Tests%29/builds/3578

Follow-up for iOS landed in https://trac.webkit.org/changeset/220696/webkit.
Comment 39 Chris Dumez 2017-08-14 10:42:14 PDT
Committed r220707: <http://trac.webkit.org/changeset/220707>
Comment 40 Chris Dumez 2017-08-14 10:42:56 PDT
Rolled out in <http://trac.webkit.org/changeset/220707> due to iOS failures.
Comment 41 Chris Dumez 2017-08-14 10:51:37 PDT
Created attachment 318048 [details]
Patch
Comment 42 Chris Dumez 2017-08-14 12:17:33 PDT
Created attachment 318051 [details]
Patch
Comment 43 Chris Dumez 2017-08-14 14:01:44 PDT
Created attachment 318058 [details]
Patch
Comment 44 Build Bot 2017-08-14 15:15:25 PDT
Comment on attachment 318058 [details]
Patch

Attachment 318058 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/4313931

New failing tests:
http/tests/navigation/page-cache-xhr.html
imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm
Comment 45 Build Bot 2017-08-14 15:15:27 PDT
Created attachment 318065 [details]
Archive of layout-test-results from ews100 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 46 Build Bot 2017-08-14 15:21:18 PDT
Comment on attachment 318058 [details]
Patch

Attachment 318058 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/4313947

New failing tests:
http/tests/navigation/page-cache-xhr.html
Comment 47 Build Bot 2017-08-14 15:21:20 PDT
Created attachment 318068 [details]
Archive of layout-test-results from ews107 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6
Comment 48 Build Bot 2017-08-14 15:29:10 PDT
Comment on attachment 318058 [details]
Patch

Attachment 318058 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/4313948

New failing tests:
http/tests/navigation/page-cache-xhr.html
imported/w3c/web-platform-tests/XMLHttpRequest/send-network-error-sync-events.sub.htm
Comment 49 Build Bot 2017-08-14 15:29:12 PDT
Created attachment 318073 [details]
Archive of layout-test-results from ews115 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-elcapitan  Platform: Mac OS X 10.11.6
Comment 50 Chris Dumez 2017-08-14 18:37:58 PDT
Created attachment 318097 [details]
Patch
Comment 51 Build Bot 2017-08-14 21:49:30 PDT
Comment on attachment 318097 [details]
Patch

Attachment 318097 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/4315715

New failing tests:
imported/w3c/web-platform-tests/cors/response-headers.htm
imported/w3c/web-platform-tests/cors/redirect-userinfo.htm
imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker.html
imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.html
imported/w3c/web-platform-tests/eventsource/interfaces.html
fast/history/pagehide-remove-iframe-crash.html
imported/w3c/web-platform-tests/XMLHttpRequest/getresponseheader-error-state.htm
imported/w3c/web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm
imported/w3c/web-platform-tests/XMLHttpRequest/timeout-cors-async.htm
imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.any.html
imported/w3c/web-platform-tests/XMLHttpRequest/event-error.sub.html
imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin.html
imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.any.worker.html
imported/w3c/web-platform-tests/cors/late-upload-events.htm
Comment 52 Build Bot 2017-08-14 21:49:31 PDT
Created attachment 318110 [details]
Archive of layout-test-results from ews126 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews126  Port: ios-simulator-wk2  Platform: Mac OS X 10.12.5
Comment 53 Chris Dumez 2017-08-15 10:16:20 PDT
Created attachment 318131 [details]
Patch
Comment 54 WebKit Commit Bot 2017-08-15 12:35:15 PDT
Comment on attachment 318131 [details]
Patch

Clearing flags on attachment: 318131

Committed r220751: <http://trac.webkit.org/changeset/220751>
Comment 55 WebKit Commit Bot 2017-08-15 12:35:17 PDT
All reviewed patches have been landed.  Closing bug.