10:01
<sideshowbarker>
annevk: About https://github.com/WebKit/WebKit/pull/19093, I hope to add a spec citation to the code comment and commit message — citing whatever spec statement requires setting the Referer of a request initiated by a location.replace() call on an iframe
14:14
<annevk>
sideshowbarker: I'm pretty sure it's derived from sourceDocument. I've done an initial review and provided a pointer.
14:30
<sideshowbarker>
annevk: In the WebKit sources, the first parameter to all the public Location member functions is named incumbentWindowexcept in the case of assign() and replace() and reload(), where for some reason it’s instead named activeWindow. But in all cases — for all those Location member functions —  it seems to be the same LocalDOMWindow that’s getting passed in.
14:31
<sideshowbarker>
…and that gets passed on to setLocation() (in the cases of the functions that cases that lead to the location getting set)
14:31
<annevk>
sideshowbarker: that would suggest it's not the parent either, but it's the document itself that's the referrer, no?
14:32
<annevk>
sideshowbarker: matching that seems like a reasonable MVP, figuring out incumbent some unattainable v2 :p
14:35
<sideshowbarker>
Yeah the Location code overall doesn’t seem to map directly to the spec — it doesn’t clearly use the same abstractions as defined in the spec — so it’s it a bit hard to understand sometimes what exactly it’s operating in, in terms of the spec.
14:37
<sideshowbarker>
And until recently the code was not even getting the location from a Window but instead from a Frame — which appears to be what the code uses for representing a browsing context.
15:09
<sideshowbarker>

annevk: Now I begin to wonder if the parameters in all those Location member functions are misnamed — flipped. Specifically, the first parameter should rightly be named activeWindow (or something) and the second one should be named incumbentWindow (rather than firstWindow).

Does the code seem to make more sense to if it used those names?

Regardless, I can see now that I need to just do firstWindow.document()->urlForBindings() to get the right URL — rather than frame->tree().parent())->document()->urlForBindings(). So I’ll make that change, and push an update.