mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-26 22:38:51 +00:00
Used by Google seemingly almost all around account sign in and management. The modern sign in page has this near the beginning: ```html <base href="https://accounts.google.com"> ``` All of the XHRs performed by sign in are relative URLs to this base URL. Previously we ignored this and did it relative to the current URL, causing the XHRs to 404 and sign in to fall apart. I presume they do this because you can access the sign in page from multiple endpoints, such as `/ServiceLogin` and `/o/oauth2/auth/identifier`
33 lines
880 B
C++
33 lines
880 B
C++
/*
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibWeb/HTML/HTMLElement.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
class HTMLBaseElement final : public HTMLElement {
|
|
public:
|
|
using WrapperType = Bindings::HTMLBaseElementWrapper;
|
|
|
|
HTMLBaseElement(DOM::Document&, DOM::QualifiedName);
|
|
virtual ~HTMLBaseElement() override;
|
|
|
|
AK::URL const& frozen_base_url() const { return m_frozen_base_url; }
|
|
|
|
virtual void inserted() override;
|
|
virtual void parse_attribute(FlyString const& name, String const& value) override;
|
|
|
|
private:
|
|
// https://html.spec.whatwg.org/multipage/semantics.html#frozen-base-url
|
|
// A base element that is the first base element with an href content attribute in a document tree has a frozen base URL.
|
|
AK::URL m_frozen_base_url;
|
|
|
|
void set_the_frozen_base_url();
|
|
};
|
|
|
|
}
|