https://github.com/web-platform-tests/wpt
Raw File
Tip revision: 3dadc0c18b5224dae634f59f54f6025cc9cdc17e authored by PhistucK on 03 November 2018, 12:16:45 UTC
HTML/events/beforeunload - respect preventDefault().
Tip revision: 3dadc0c
referrer-checker.py
# Returns a valid response when request's |referrer| matches
# |expected_referrer|.
def main(request, response):
    # We want |referrer| to be the referrer header with no query params,
    # because |expected_referrer| will not contain any query params, and
    # thus cannot be compared with the actual referrer header if it were to
    # contain query params. This works fine if the actual referrer has no
    # query params too.
    referrer = request.headers.get("referer", "").split("?")[0]
    referrer_policy = request.GET.first("referrer_policy")
    expected_referrer = request.GET.first("expected_referrer", "")
    response_headers = [("Content-Type", "text/javascript"),
                        ("Access-Control-Allow-Origin", "*")]

    if referrer_policy == "no-referrer" or referrer_policy == "origin":
        if referrer == expected_referrer:
            return (200, response_headers, "")
        return (404, response_headers)

    if referrer_policy == "same-origin":
        if referrer == expected_referrer:
            return (200, response_headers, "")
        return (404, response_headers)
    return (404, response_headers)
back to top