-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22430 merge into master: Save a form submission's origin document before scheduled the navigation task -
git.io/JvSY9
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22431 merge into master: [FlexNG] Implement transferred size suggestion -
git.io/JvSOM
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22432 merge into master: Reland test for lost pointercapture in disconnected node in shadow dom -
git.io/JvS3z
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22409 by chromium-wpt-export-bot into master: [css-flexbox] Move anonymous-block.html test from css3/flexbox to WPT -
git.io/Jvyad
-
BitBot
(wpt) [PR] frivoal merged #21946 by frivoal into master: Added 6 hyphens tests and 4 references -
git.io/JvEPb
-
BitBot
(wpt) [PR] TalbotG merged #21951 by TalbotG into master: 3 basic white-space tests and 3 refs -
git.io/JvEDQ
-
BitBot
(wpt) [PR] TalbotG merged #21963 by TalbotG into master: break-spaces-05[1-2].html and its reference -
git.io/JvukN
-
BitBot
(wpt) [PR] frivoal merged #21965 by frivoal into master: 6 white-space tests with inline starting with a collapsible white space -
git.io/JvuIp
-
BitBot
(wpt) [PR] annevk merged #22384 by annevk into master: XPath: Add XPathNSResolver callback interface tests -
git.io/JvDKr
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22433 merge into master: [css-flexbox] Move canvas-dynamic-change.html test to WPT -
git.io/JvSCS
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22434 merge into master: [css-flexbox] Move flex-column-relayout-assert.html test from css3/flexbox to WPT -
git.io/JvSWs
-
annevk
I noticed another problem with the tactic used for the Python 3 rewrite
-
annevk
By only looking at differences in execution, the new code might not catch certain regressions in browsers because they're simply no longer tested for
-
BitBot
(wpt) [PR] frivoal merged #21969 by frivoal into master: 14 ws-break-spaces-applies-to-[001-015] tests and 4 references -
git.io/Jvuto
-
annevk
Has anyone else noticed this happening?
-
BitBot
(wpt) [PR] frivoal merged #21998 by frivoal into master: Added 4 white-space-pre-* tests and 2 references -
git.io/Jvujl
-
BitBot
(wpt) [PR] frivoal requested #22435 merge into master: Clean up test files -
git.io/JvSl8
-
BitBot
(wpt) [PR] frivoal merged #22435 by frivoal into master: Clean up test files -
git.io/JvSl8
-
BitBot
(wpt) [PR] frivoal merged #21935 by frivoal into master: Typo in reftest meant style wasn't matching -
git.io/JvElA
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22436 merge into master: [css-flexbox] Migrate change-column-flex-width.html test to WPT -
git.io/JvSBt
-
jgraham
annevk: I haven't, but I agree that I'm more worried about the handler changes given the recent PR
-
jgraham
I'm pretty concerned with Python and 3 requiring different data types for the HTTP headers
-
jgraham
*2 and 3
-
smcgruer_[EST]
Probably morning brain, but I don't follow 'new code might not catch certain regressions in browsers because they're simply no longer tested for'. Can someone rephrase to help me explain
-
smcgruer_[EST]
Re the headers, yeah I am similarly concerned that we're a bit out of our depth currently there. If we want, we can pause the work on header-related code and ask Ziran to look at other parts of the codebase for now. But that requires us to commit to doing *something* different to unblock the header related code :)
-
annevk
smcgruer_[EST]: we had some code that was testing specifics of header serialization on the server and afaict a PR simply made that code conditional on whether we were running as Python 2
-
annevk
smcgruer_[EST]: if no browser currently serializes incorrectly that obviously leads to no observable differences right now so things look in order, but if a browser were to change serialization in the future (or refactor that code, say to use Rust) it would also no longer be caught
-
smcgruer_[EST]
Oh, I have that PR on my to-look-at list and haven't got there yet. If it's removing testing coverage, it's an incorrect change and I hope that all our Py3 reviewers would request that that be fixed.
-
smcgruer_[EST]
Please feel free to request changes (or whatever the GitHub 'not-LGTM' lingo is) on anything like that, and rope me in if there's any difficulty communicating the reason.
-
smcgruer_[EST]
I have a mostly-finished Python3 doc I was going to send a pseudo-RFC about, I can also add some details about not reducing a tests coverage.
-
jgraham
I think the worry is we can end up sending different bytes over the wire in Py2 vs Py3 and there's no way to tell that we're doing that
-
jgraham
I feel like the principled solution here is to not use the stdlib BaseHTTPHandler class or the built-in headers classes. But I worry that recreating all the infra there is a lot of work
-
smcgruer_[EST]
Whilst we have Py2 and Py3 running, we can audit for concerns like that.
-
annevk
That's another worry
-
smcgruer_[EST]
The case that annevk points is a straight-forward 'if not PY3: # verification code here', concerns that the language is doing something different in its stdlib will be much more difficult to tease out (what if we'd always written/run the code in Py3? How would we have noticed these theoretical differences in that world?)
-
jgraham
smcgruer_[EST]: We can audit for concerns like that, but we don't have a concrete way to do it at the moment, and doing it well is hard
-
jgraham
Assuming you don't just mean "we can hope reviewers notice", which I don't think is sufficient.
-
smcgruer_[EST]
I do not, correct.
-
smcgruer_[EST]
We may not have a way today, but if we feel we need to develop one then we should (and again, can pause HTTP header work if we want to develop it before proceedidng)
-
smcgruer_[EST]
*proceeding
-
jgraham
I think pausing this work until we have some idea how to verify it is a good plan
-
smcgruer_[EST]
I agree in general; can we discuss specifics in our sync later today and then I'll take it from there? (Alternatively if we want to do a specific sync for this, e.g. if annevk wants to be involved, happy to do that too).
-
annevk
I trust y'all
-
jgraham
In general, not just for this part of the work, seeing "if PY3" in the code is a bit of a red flag. For the infra stuff I've been pushing to have an internal model where python 2 and 3 are using conceptally the same type everywhere and only interactions with the stdlib convert to different types
-
jgraham
("conceptually the same type" means either Text or Binary for stringish data i.e. either (unicode, str) or (str, bytes), for py2, py3 respectively)
-
jgraham
So ensure_str is also a worry unless it's just used to interact with the stdlib
-
jgraham
(because the stdlib almost always uses (str, str) for (py2, py3) which is… unfortunate)
-
smcgruer_[EST]
ensure_str hurts my head :(. I think I need to invest much more in understanding the Py2/Py3 representation differences.
-
smcgruer_[EST]
It does clearly hide potentially different input data types which is tricky
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22437 merge into master: [css-flexbox] Move floated-flexitem.html test from css3/flexbox to WPT -
git.io/JvSEc
-
gsnedders
jgraham: is just forked the stdlib stuff really that much work?
-
jgraham
gsnedders: Well if we literally just copy the code I expect it isn't too bad.
-
jgraham
But I feel like once you're down that path maybe you're not going to just copy the code
-
gsnedders
I mean it's a starting point, no?
-
jgraham
So I think this is a viable project. Maybe even a thing we should have done to start with. But I'm not convinced it's going to end up less than a few weeks of work
-
jgraham
(and I also don't know how copying the stdlib works from a license point of view)
-
gsnedders
should be fine, AFAIK; it's a BSDish license
-
smcgruer_[EST]
I am more concerned with the question of - why are we so special that we need to fork the stdlib? I'm not (yet!) convinced that that is the right trade off
-
jgraham
It looks like it's possible, but the license does impose terms like creating a summary of the changes you've made
-
jgraham
smcgruer_[EST]: I don't know it's the right trace off either, but it might be. We're special for the same reason we didn't originally use one of the many production-grade HTTP servers in Python; they are almost always concerned with keeping you on the straight and narrow wrt standards. But for tests we want low-level control over what goes on the wire
-
smcgruer_[EST]
I assume we would also have to fork two stdlibs, given Py2/Py3.
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22438 merge into master: [css-flexbox] Move inline-flexbox-wrap-vertically-width-calculation.html to WPT -
git.io/JvSuI
-
BitBot
(wpt) [PR] autofoolip requested #22439 merge into master: Update interfaces/wake-lock.idl -
git.io/JvSus
-
jgraham
The goal wouldn't be "fork the whole stdlib", but just the parts related to serving a HTTP request
-
jgraham
And just having one would be the point
-
smcgruer_[EST]
Right, so then we have to put in the effort to either make the Py2 one Py3-compatible, or the Py3 one Py2-compatible ;)
-
smcgruer_[EST]
Just making clear I think this is never a case of 'copy the code', even if you 'just' fork the stdlib without changes.
-
smcgruer_[EST]
*part of the stdlib
-
jgraham
Right, it wouldn't be "without changes". It would probably be about making the low-level parts accept bytes rather than text
-
jgraham
As I said I think this is at least a few weeks of work
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22416 by chromium-wpt-export-bot into master: Allow specifying variable font range descriptors in either direction -
git.io/Jvy9h
-
jgraham
smcgruer_[EST]: cgi.FieldStorage does conversion to Text e.g.
github.com/python/cpython/blob/3.8/Lib/cgi.py#L141-L146
-
smcgruer_[EST]
Does FieldStorage use parse?
-
gsnedders
smcgruer_[EST]: we've talked about forking the stdlib for years, partly to make it possible to hook into low-level bits of the request/response
-
jgraham
smcgruer_[EST]: It's also doing decode internally e.g.
github.com/python/cpython/blob/3.8/Lib/cgi.py#L583
-
smcgruer_[EST]
annevk: FYI James and I have agreed to pause work on any Py3 handler scripts for now. I'll be sending an email out about that today
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22440 merge into master: [css-flexbox] Migrate columns-height-set-via-top-bottom.html to WPT -
git.io/JvSVg
-
BitBot
(wpt) [PR] stephenmcgruer merged #22439 by stephenmcgruer into master: Update interfaces/wake-lock.idl -
git.io/JvSus
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22428 by chromium-wpt-export-bot into master: Land the 2 passing tests for pointer capture in shadow dom -
git.io/JvSqS
-
Hexcles
If you were discussing what I thought you were, then I have my fair share of gripe, too
-
Hexcles
-
Hexcles
search for http
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22440 by chromium-wpt-export-bot into master: [css-flexbox] Migrate columns-height-set-via-top-bottom.html to WPT -
git.io/JvSVg
-
Hexcles
unsurprisngly, this widely circulated post also covered this point
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22441 merge into master: Handle change to pending state when resolving the ready promise -
git.io/JvS6s
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22442 merge into master: [css-pseudo] Support animations and transitions in ::marker -
git.io/JvS6C
-
BitBot
(wpt) [PR] stephenmcgruer merged #22403 by stephenmcgruer into master: Simplify image-loading-subpixel-clip.html. -
git.io/Jvy8z
-
jgraham
I wonder if gps ever wrote a blog post where the first instruction for reading wasn't "search for the string …" ;)
-
jgraham
But yeah I saw that too; I'd forgotton it covered HTTP
-
smcgruer_[EST]
So Hexcles and I just had a sync on this, shared some knowledge. They are off to think on the problem more, and I'm off to take a dive through the WPT stack to try and better understand what the codeflow is like today.
-
smcgruer_[EST]
We're hoping to put together a proposal on how to move forward in the next few days
-
jgraham
Amazing, thanks
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22444 merge into master: De-flake image-loading-subpixel-clip.html -
git.io/JvS6p
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22445 merge into master: [css-flexbox] Migrate content-height-with-scrollbars.html to WPT -
git.io/JvS6h
-
Hexcles
-
Hexcles
You're welcome
-
Hexcles
(oh this is not linkifying correctly in my IRC client... sigh)
-
BitBot
(wpt) [PR] autofoolip requested #22446 merge into master: Update interfaces/webrtc-stats.idl -
git.io/JvSiZ
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22447 merge into master: [layout] Perform replaced aspect-ratio calculation in LayoutUnits. -
git.io/JvSiB
-
jgraham
Hexcles: Also that's a Chromeism :p
-
Hexcles
but isn't that a nice feature to have? ;)
-
jgraham
I mean I think it would be better if gps could write a blog post that doesn't lend itself to serialization in a periodical, Dickens-style :p
-
» Hexcles lol
-
Hexcles
but seriously though, I'm a bit suprised that this isn't a solved question
-
Hexcles
like I'd expect someone to write a wrapper for std http that takes the correct types
-
BitBot
(wpt) [PR] stephenmcgruer merged #22446 by stephenmcgruer into master: Update interfaces/webrtc-stats.idl -
git.io/JvSiZ
-
jgraham
But if the stdlib is calling encode() at the lowest levels it's not a wrapper but a reimplementation
-
jgraham
Because there's no non-lossy way to wrap
-
jgraham
Or I guess you could make some kind of object that looks like a string but contains bytes that encode() to themselves. But that probably doesn't work in some cases
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22422 by chromium-wpt-export-bot into master: Apply adjustments for 'text-anchor' after 'textLength' for <textPath> -
git.io/JvSfW
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22430 by chromium-wpt-export-bot into master: Save a form submission's origin document before scheduled the navigation task -
git.io/JvSY9
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22444 by chromium-wpt-export-bot into master: De-flake image-loading-subpixel-clip.html -
git.io/JvS6p
-
smcgruer_[EST]
As the stdlib, you could only do a deep internal encode() if you forced a specific encoding on all byte content you're handling surely jgraham ? (Or maybe I misunderstood). I can't imagine the http lib requiring that.
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22448 merge into master: SVG: Increase hit-testing precision on strokes -
git.io/JvSXb
-
smcgruer_[EST]
Oh, I got that the wrong way around (was thinking decode). I was assuming that http operated in bytes at the low level
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22212 by chromium-wpt-export-bot into master: NativeIO: Plumbing and minimal functionality. -
git.io/Jv6cO
-
BitBot
(wpt) [PR] moz-wptsync-bot requested #22449 merge into master: [Gecko
Bug 1240285] Forward focus only if label is not focusable -
git.io/JvS1D
-
BitBot
(wpt) [PR] moz-wptsync-bot merged #22407 by moz-wptsync-bot into master: [Gecko
Bug 1623476] Fix event targeting in a click_events_on_input.html. -
git.io/Jvy0l
-
Hexcles
The annoying part is that we know on the very low level (syscall for socket IO etc.) it must be all bytes, but some std APIs do not allow us to pass bytes all the way through and instead insist on text strings which they'd eventually encode and in some cases without an option to choose the encoding...
-
BitBot
(wpt) [PR] moz-wptsync-bot requested #22450 merge into master: [Gecko
Bug 1417955] Ensure we get the correct keyCode for a space character -
git.io/JvS1j
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22451 merge into master: Trust Tokens: Add an XMLHttpRequest interface -
git.io/JvSMM
-
BitBot
(wpt) [PR] chromium-wpt-export-bot requested #22452 merge into master: Make commitStyles use computed values instead of resolved values -
git.io/JvSDM
-
BitBot
(wpt) [PR] chromium-wpt-export-bot merged #22445 by chromium-wpt-export-bot into master: [css-flexbox] Migrate content-height-with-scrollbars.html to WPT -
git.io/JvS6h
-
BitBot
(wpt) [PR] Hexcles merged #22427 by Hexcles into master: Clarify CSS metadata requirements -
git.io/JvSqG