Commit 9c96261a authored by arthursonzogni's avatar arthursonzogni Committed by Commit Bot

[COOP] Access reporting. Fix the python server.

A python server is used has a communication channel in between documents
from different browsing context group and potentially cross-origin.

There are two methods:
- one for writing a message.
- one for reading the message.

I initially supposed we won't need to store more than one message in the
stash. It turns out there are tests doing two write in a row without any
read in the middle. It was throwing an exception when this
happened.

This patch makes the server to maintain a queue of messages instead. It
doesn't throw errors anymore.

Bug: chromium:1109194
Change-Id: I25f8dc2c2a032781a4527a0994e94e46f85e12c9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2317865Reviewed-by: default avatarPâris Meuleman <pmeuleman@chromium.org>
Commit-Queue: Arthur Sonzogni <arthursonzogni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#791901}
parent e3564580
......@@ -9,12 +9,17 @@ def main(request, response):
return b''
uuid = request.GET[b'uuid']
stashed = request.server.stash.take(uuid)
if stashed is None:
stashed = []
if request.method == u'POST':
return request.server.stash.put(uuid, request.body)
stashed.append(request.body)
ret = b'done'
else:
body = request.server.stash.take(uuid)
if body is None:
return b'not ready'
if len(stashed) == 0:
ret = b'not ready'
else:
return body
ret = stashed.pop(0)
request.server.stash.put(uuid, stashed)
return ret;
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment