Bug 225997

Summary: [JSC] Call custom accessors / values with their holder's global object
Product: WebKit Reporter: Alexey Shvayka <ashvayka>
Component: JavaScriptCoreAssignee: Alexey Shvayka <ashvayka>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, benjamin, calvaris, cdumez, clopez, darin, esprehn+autocc, ews-watchlist, gyuyoung.kim, joepeck, keith_miller, kondapallykalyan, mark.lam, msaboff, ryuan.choi, saam, sergio, tzagallo, webkit-bug-importer, youennf, ysuzuki
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
See Also: https://github.com/web-platform-tests/wpt/pull/29767
Bug Depends on:    
Bug Blocks: 220233, 228943    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
WIP
ews-feeder: commit-queue-
WIP
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch for landing
none
Patch for landing
ashvayka: review+
Patch for landing none

Alexey Shvayka
Reported 2021-05-19 17:20:24 PDT
[JSC] Call custom accessors / values with their holder's global object
Attachments
Patch (11.23 KB, patch)
2021-05-19 17:24 PDT, Alexey Shvayka
no flags
Patch (66.83 KB, patch)
2021-05-23 19:37 PDT, Alexey Shvayka
no flags
Patch (65.96 KB, patch)
2021-06-08 15:02 PDT, Alexey Shvayka
no flags
WIP (76.82 KB, patch)
2021-06-22 14:31 PDT, Alexey Shvayka
ews-feeder: commit-queue-
WIP (79.17 KB, patch)
2021-06-22 14:41 PDT, Alexey Shvayka
no flags
Patch (122.68 KB, patch)
2021-06-28 23:25 PDT, Alexey Shvayka
no flags
Patch (103.92 KB, patch)
2021-07-01 11:21 PDT, Alexey Shvayka
no flags
Patch (125.74 KB, patch)
2021-07-01 11:26 PDT, Alexey Shvayka
no flags
Patch (125.87 KB, patch)
2021-07-02 07:46 PDT, Alexey Shvayka
no flags
Patch for landing (102.40 KB, patch)
2021-07-22 19:39 PDT, Alexey Shvayka
no flags
Patch for landing (125.89 KB, patch)
2021-07-23 10:58 PDT, Alexey Shvayka
ashvayka: review+
Patch for landing (125.89 KB, patch)
2021-07-23 12:23 PDT, Alexey Shvayka
no flags
Alexey Shvayka
Comment 1 2021-05-19 17:24:39 PDT
Alexey Shvayka
Comment 2 2021-05-23 19:37:10 PDT
Created attachment 429495 [details] Patch Fix global object for non-reified properties, use CustomAccessor for JS built-ins, and add tests.
EWS Watchlist
Comment 3 2021-05-23 19:38:26 PDT
This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess
Radar WebKit Bug Importer
Comment 4 2021-05-26 17:21:21 PDT
Alexey Shvayka
Comment 5 2021-06-08 15:02:27 PDT
Created attachment 430897 [details] Patch Rebase on top of relanded put() revamp.
Yusuke Suzuki
Comment 6 2021-06-08 19:16:37 PDT
That's really awesome.
Alexey Shvayka
Comment 7 2021-06-22 14:31:06 PDT
Created attachment 431994 [details] WIP Introduce CallFrame::callerLexicalGlobalObject() and [CustomNativeFunctionAccessor] extended attribute to accomodate JSLocation setters, which need lexical global object to set document.referrer.
Alexey Shvayka
Comment 8 2021-06-22 14:41:58 PDT
Created attachment 431995 [details] WIP Add missing Source/WebCore/bindings/js/JSLocationCustom.h file.
Alexey Shvayka
Comment 9 2021-06-28 23:25:13 PDT
Created attachment 432455 [details] Patch Call CustomValue setters with correct realm as well, rework callerGlobalObject() to use vm.topCallFrame for custom accessors, revert changes to create_hash_table, and add tests.
Alexey Shvayka
Comment 10 2021-07-01 11:21:08 PDT
Created attachment 432710 [details] Patch Fix --debug build, smsimplify callerGlobalObject(), add test for JSCustomSetterFunction passing correct referrer, and improve ChangeLog.
Alexey Shvayka
Comment 11 2021-07-01 11:26:42 PDT
Created attachment 432711 [details] Patch svn add LayoutTests/imported
Alexey Shvayka
Comment 12 2021-07-01 11:29:02 PDT
(In reply to Yusuke Suzuki from comment #6) > That's really awesome. Thanks! I would appreciate a review. Once we land this, implementing RegExpConstructor legacy features (https://bugs.webkit.org/show_bug.cgi?id=220233) would be so much easier.
Darin Adler
Comment 13 2021-07-01 16:51:08 PDT
Looks like a real regression in this test: http/tests/security/block-top-level-navigations-by-untrusted-first-party-iframes.html We should probably hold off on review until that is resolved.
Alexey Shvayka
Comment 14 2021-07-02 07:46:27 PDT
Created attachment 432794 [details] Patch Attempt to retrieve VMEntryScope's global object even if vm.topCallFrame is nullptr, fixing the test regression, and make JSCustomSetterFunction test more sophisticated.
Yusuke Suzuki
Comment 15 2021-07-20 03:55:51 PDT
Comment on attachment 432794 [details] Patch r=me
Alexey Shvayka
Comment 16 2021-07-22 19:39:04 PDT
Created attachment 434056 [details] Patch for landing
Alexey Shvayka
Comment 17 2021-07-23 10:58:48 PDT
Created attachment 434099 [details] Patch for landing svn add <missing LayoutTest files>.
Alexey Shvayka
Comment 18 2021-07-23 11:09:31 PDT
Comment on attachment 434099 [details] Patch for landing I'm putting r+ on my own patch (that was already reviewed by Yusuke (thanks!)) so the GitHub's WPT export bot mark my PR (https://github.com/web-platform-tests/wpt/pull/29767) as reviewed for me to land it.
Alexey Shvayka
Comment 19 2021-07-23 12:23:54 PDT
Created attachment 434110 [details] Patch for landing Remove trailing whitespace from wpt/WebIDL/ecmascript-binding/global-object-implicit-this-value-cross-realm.html.
EWS
Comment 20 2021-07-23 13:13:38 PDT
Committed r280256 (239923@main): <https://commits.webkit.org/239923@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 434110 [details].
Note You need to log in before you can comment on or make changes to this bug.