WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 197463
Reuse existing WebPageProxy quota handler for NetworkProcessProxy quota requests
https://bugs.webkit.org/show_bug.cgi?id=197463
Summary
Reuse existing WebPageProxy quota handler for NetworkProcessProxy quota requests
youenn fablet
Reported
2019-05-01 08:44:23 PDT
Reuse existing WebPageProxy quota handler for NetworkProcessProxy quota requests
Attachments
Patch
(14.77 KB, patch)
2019-05-01 09:25 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(21.84 KB, patch)
2019-05-08 15:51 PDT
,
youenn fablet
ews-watchlist
: commit-queue-
Details
Formatted Diff
Diff
Archive of layout-test-results from ews104 for mac-highsierra-wk2
(3.00 MB, application/zip)
2019-05-08 17:01 PDT
,
EWS Watchlist
no flags
Details
Patch
(35.59 KB, patch)
2019-05-10 13:22 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(36.21 KB, patch)
2019-05-14 12:51 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(36.39 KB, patch)
2019-05-14 14:59 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Patch
(36.26 KB, patch)
2019-05-14 15:48 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews215 for win-future
(13.74 MB, application/zip)
2019-05-14 18:10 PDT
,
EWS Watchlist
no flags
Details
Patch for landing
(36.38 KB, patch)
2019-05-15 09:50 PDT
,
youenn fablet
no flags
Details
Formatted Diff
Diff
Show Obsolete
(7)
View All
Add attachment
proposed patch, testcase, etc.
youenn fablet
Comment 1
2019-05-01 08:46:15 PDT
<
rdar://problem/47403621
>
youenn fablet
Comment 2
2019-05-01 09:25:51 PDT
Created
attachment 368677
[details]
Patch
youenn fablet
Comment 3
2019-05-08 15:51:08 PDT
Created
attachment 369439
[details]
Patch
EWS Watchlist
Comment 4
2019-05-08 17:01:54 PDT
Comment on
attachment 369439
[details]
Patch
Attachment 369439
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
https://webkit-queues.webkit.org/results/12137935
New failing tests: http/wpt/cache-storage/quota-third-party.https.html http/tests/IndexedDB/storage-limit.https.html imported/w3c/IndexedDB-private-browsing/keyorder.html inspector/unit-tests/objectStore/clear.html inspector/unit-tests/objectStore/put.html inspector/unit-tests/objectStore/putObject.html inspector/unit-tests/objectStore/delete.html http/wpt/cache-storage/cache-quota.any.html http/wpt/cache-storage/cache-quota-after-restart.any.html imported/w3c/IndexedDB-private-browsing/idbcursor_iterating.html inspector/unit-tests/objectStore/basic.html http/tests/IndexedDB/storage-limit-1.https.html http/tests/IndexedDB/storage-limit-2.https.html imported/w3c/IndexedDB-private-browsing/idbindex-multientry-big.html http/wpt/cache-storage/cache-quota-add.any.html inspector/unit-tests/objectStore/deleteObject.html
EWS Watchlist
Comment 5
2019-05-08 17:01:55 PDT
Created
attachment 369449
[details]
Archive of layout-test-results from ews104 for mac-highsierra-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-highsierra-wk2 Platform: Mac OS X 10.13.6
youenn fablet
Comment 6
2019-05-10 13:22:18 PDT
Created
attachment 369591
[details]
Patch
EWS Watchlist
Comment 7
2019-05-10 13:23:49 PDT
Attachment 369591
[details]
did not pass style-queue: ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:29: Bad include order. Mixing system and custom headers. [build/include_order] [4] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:162: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:179: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] Total errors found: 3 in 11 files If any of these errors are false positives, please file a bug against check-webkit-style.
youenn fablet
Comment 8
2019-05-13 11:11:52 PDT
ping review
Alex Christensen
Comment 9
2019-05-13 15:05:57 PDT
Comment on
attachment 369591
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=369591&action=review
Seems ok, but needs some refinement.
> Source/WebKit/UIProcess/WebPageProxy.cpp:365 > +void WebPageProxy::forMostVisibleWebPageIfAny(PAL::SessionID sessionID, const SecurityOriginData& origin, CompletionHandler<void(WebPageProxy*)>&& completionHandler)
This seems kind of hacky. It assumes that there is one dominant WKWebView, which I don't think is a good assumption in some apps.
> Source/WebKit/UIProcess/WebPageProxy.cpp:4385 > + m_isQuotaIncreaseDenied = false;
Is this called during fragment navigations? If it is, we might want to put this elsewhere, or keep track of this some other way. Otherwise, a website could just do a quick hash navigation then ask again. Please add a test that tries this.
> Source/WebKit/UIProcess/WebProcessProxy.cpp:125 > +void WebProcessProxy::forWebPages(PAL::SessionID sessionID, const SecurityOriginData& origin, const WTF::Function<void(WebPageProxy&)>& callback)
forEachWebPage WTF:: unnecessary here and in header. Same with WTF::CompletionHandler in WebPageProxy.
> Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h:41 > + virtual bool implementsRequestStorageSpaceHandler() const { return false; } > virtual void requestStorageSpace(const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& frameOrigin, uint64_t quota, uint64_t currentSize, uint64_t spaceRequired, CompletionHandler<void(Optional<uint64_t>)>&& completionHandler)
I think we prefer to just pass in a CompletionHandler& and if it's null afterwards then it was used otherwise do something else with it. That keeps our client interfaces a bit cleaner than adding a separate function to do the check.
> Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:2 > + * Copyright (C) 2016 Apple Inc. All rights reserved.
2019
> Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:215 > +#if PLATFORM(MAC) > + [webView1.get().window setIsVisible:YES]; > +#else > + webView1.get().window.hidden = NO; > +#endif
This is used 3 times here. Maybe a good utility function.
youenn fablet
Comment 10
2019-05-13 15:45:32 PDT
(In reply to Alex Christensen from
comment #9
)
> Comment on
attachment 369591
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=369591&action=review
> > Seems ok, but needs some refinement. > > > Source/WebKit/UIProcess/WebPageProxy.cpp:365 > > +void WebPageProxy::forMostVisibleWebPageIfAny(PAL::SessionID sessionID, const SecurityOriginData& origin, CompletionHandler<void(WebPageProxy*)>&& completionHandler) > > This seems kind of hacky. It assumes that there is one dominant WKWebView, > which I don't think is a good assumption in some apps.
It assumes that in most cases, there is only one web view with a given origin that is visible at a time. This heuristic can be improved over time. If we find that the heuristic is broken in too many places, we will have to rely on the current WebsiteDataStore SPI.
> > Source/WebKit/UIProcess/WebPageProxy.cpp:4385 > > + m_isQuotaIncreaseDenied = false; > > Is this called during fragment navigations? If it is, we might want to put > this elsewhere, or keep track of this some other way. Otherwise, a website > could just do a quick hash navigation then ask again. Please add a test > that tries this.
A fragment navigation is never replacing the context so this cannot happen.
> > > Source/WebKit/UIProcess/WebProcessProxy.cpp:125 > > +void WebProcessProxy::forWebPages(PAL::SessionID sessionID, const SecurityOriginData& origin, const WTF::Function<void(WebPageProxy&)>& callback) > > forEachWebPage > WTF:: unnecessary here and in header. Same with WTF::CompletionHandler in > WebPageProxy. > > > Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreClient.h:41 > > + virtual bool implementsRequestStorageSpaceHandler() const { return false; } > > virtual void requestStorageSpace(const WebCore::SecurityOriginData& topOrigin, const WebCore::SecurityOriginData& frameOrigin, uint64_t quota, uint64_t currentSize, uint64_t spaceRequired, CompletionHandler<void(Optional<uint64_t>)>&& completionHandler) > > I think we prefer to just pass in a CompletionHandler& and if it's null > afterwards then it was used otherwise do something else with it. That keeps > our client interfaces a bit cleaner than adding a separate function to do > the check.
I have not seen this pattern and I do not really like it. Also, this additional API is not visible to any application developer so this is purely internal. I'll change the behavior so that calling completionHandler(WTF::nullOpt) means that there is no decision taken and a default decision should be made by WebKit.
youenn fablet
Comment 11
2019-05-14 12:51:51 PDT
Created
attachment 369883
[details]
Patch
EWS Watchlist
Comment 12
2019-05-14 12:53:09 PDT
Attachment 369883
[details]
did not pass style-queue: ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:29: Bad include order. Mixing system and custom headers. [build/include_order] [4] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:162: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:179: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
youenn fablet
Comment 13
2019-05-14 13:28:51 PDT
(In reply to youenn fablet from
comment #10
)
> (In reply to Alex Christensen from
comment #9
) > > Comment on
attachment 369591
[details]
> > Patch > > > > View in context: > >
https://bugs.webkit.org/attachment.cgi?id=369591&action=review
> > > > Seems ok, but needs some refinement. > > > > > Source/WebKit/UIProcess/WebPageProxy.cpp:365 > > > +void WebPageProxy::forMostVisibleWebPageIfAny(PAL::SessionID sessionID, const SecurityOriginData& origin, CompletionHandler<void(WebPageProxy*)>&& completionHandler) > > > > This seems kind of hacky. It assumes that there is one dominant WKWebView, > > which I don't think is a good assumption in some apps. > > It assumes that in most cases, there is only one web view with a given > origin that is visible at a time. > This heuristic can be improved over time. > If we find that the heuristic is broken in too many places, we will have to > rely on the current WebsiteDataStore SPI.
Discussed this with Alex and cleared up the fact that the selected page has the same origin as the request.
youenn fablet
Comment 14
2019-05-14 14:59:50 PDT
Created
attachment 369897
[details]
Patch
EWS Watchlist
Comment 15
2019-05-14 15:03:10 PDT
Attachment 369897
[details]
did not pass style-queue: ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:29: Bad include order. Mixing system and custom headers. [build/include_order] [4] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:162: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:183: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
youenn fablet
Comment 16
2019-05-14 15:48:27 PDT
Created
attachment 369902
[details]
Patch
EWS Watchlist
Comment 17
2019-05-14 15:51:47 PDT
Attachment 369902
[details]
did not pass style-queue: ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:29: Bad include order. Mixing system and custom headers. [build/include_order] [4] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:162: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:183: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 18
2019-05-14 18:10:38 PDT
Comment on
attachment 369902
[details]
Patch
Attachment 369902
[details]
did not pass win-ews (win): Output:
https://webkit-queues.webkit.org/results/12193124
New failing tests: fast/shadow-dom/svg-thref-href-change-in-shadow-tree.html
EWS Watchlist
Comment 19
2019-05-14 18:10:40 PDT
Created
attachment 369916
[details]
Archive of layout-test-results from ews215 for win-future The attached test failures were seen while running run-webkit-tests on the win-ews. Bot: ews215 Port: win-future Platform: CYGWIN_NT-10.0-17763-3.0.5-338.x86_64-x86_64-64bit
Alex Christensen
Comment 20
2019-05-15 07:34:24 PDT
Comment on
attachment 369902
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=369902&action=review
> Source/WebKit/UIProcess/WebPageProxy.cpp:297 > + bool m_areBeingProcessing { false };
m_isProcessing or m_requestsAreBeingProcessed
> Source/WebKit/UIProcess/WebPageProxy.cpp:7262 > + StorageRequests::singleton().processNextIfAny();
I think it would be a better abstraction if the StorageRequests made its own lambda that called this.
> Source/WebKit/UIProcess/WebProcessProxy.cpp:125 > +void WebProcessProxy::forWebPages(PAL::SessionID sessionID, const SecurityOriginData& origin, const Function<void(WebPageProxy&)>& callback)
forWebPagesWithOrigin
youenn fablet
Comment 21
2019-05-15 08:50:40 PDT
Thanks for the review. (In reply to Alex Christensen from
comment #20
)
> Comment on
attachment 369902
[details]
> Patch > > View in context: >
https://bugs.webkit.org/attachment.cgi?id=369902&action=review
> > > Source/WebKit/UIProcess/WebPageProxy.cpp:297 > > + bool m_areBeingProcessing { false }; > > m_isProcessing or m_requestsAreBeingProcessed
OK
> > Source/WebKit/UIProcess/WebPageProxy.cpp:7262 > > + StorageRequests::singleton().processNextIfAny(); > > I think it would be a better abstraction if the StorageRequests made its own > lambda that called this.
Agreed, I thought about this. My initial idea was to pass to the request completion handler another completion handler for the purpose of calling StorageRequests::singleton().processNextIfAny(). I concluded this was less readable since we end up with two completion handlers.
> > Source/WebKit/UIProcess/WebProcessProxy.cpp:125 > > +void WebProcessProxy::forWebPages(PAL::SessionID sessionID, const SecurityOriginData& origin, const Function<void(WebPageProxy&)>& callback) > > forWebPagesWithOrigin
OK
youenn fablet
Comment 22
2019-05-15 09:50:45 PDT
Created
attachment 369960
[details]
Patch for landing
EWS Watchlist
Comment 23
2019-05-15 09:52:37 PDT
Attachment 369960
[details]
did not pass style-queue: ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:29: Bad include order. Mixing system and custom headers. [build/include_order] [4] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:162: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:183: Multi-line string ("...") found. This lint script doesn't do well with such strings, and may give bogus warnings. They're ugly and unnecessary, and you should use concatenation instead". [readability/multiline_string] [5] Total errors found: 3 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
WebKit Commit Bot
Comment 24
2019-05-15 10:40:07 PDT
Comment on
attachment 369960
[details]
Patch for landing Clearing flags on attachment: 369960 Committed
r245328
: <
https://trac.webkit.org/changeset/245328
>
WebKit Commit Bot
Comment 25
2019-05-15 10:40:09 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug