Tests that cross-origin iframe storage access is granted if the iframe is sandboxed, has the allow token, the iframe origin is a prevalent resource, the iframe origin has had user interaction, the user opts in, and the frame is the one with access.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS Storage access was granted. document.cookie == firstPartyCookie=value, cookies seen server-side == {"firstPartyCookie":"value"}
Did navigate iframe same-site and will now check that it still has storage access.
PASS document.cookie == firstPartyCookie=value, cookies seen server-side == {"firstPartyCookie":"value"}
PASS successfullyParsed is true

TEST COMPLETE


--------
Frame: '<!--frame1-->'
--------
Should receive first-party cookie.
Received cookie named 'firstPartyCookie'.
Did not receive cookie named 'partitionedCookie'.
Client-side document.cookie: firstPartyCookie=value

--------
Frame: '<!--frame2-->'
--------
Should not receive cookies.
Did not receive cookie named 'firstPartyCookie'.
Did not receive cookie named 'partitionedCookie'.
Client-side document.cookie:

--------
Frame: '<!--frame3-->'
--------



--------
Frame: '<!--frame4-->'
--------
Should not receive cookies.
Did not receive cookie named 'firstPartyCookie'.
Did not receive cookie named 'partitionedCookie'.
Client-side document.cookie:

--------
Frame: '<!--frame5-->'
--------
After the top frame navigates the sub frame cross-site and back, the sub frame should no longer have access to cookies.
Did not receive cookie named 'firstPartyCookie'.
Did not receive cookie named 'partitionedCookie'.
Client-side document.cookie:
