mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 07:02:44 +00:00 
			
		
		
		
	LibWeb: Add the Web::URL namespace and move URLEncoder to it
This namespace will be used for all interfaces defined in the URL specification, like URL and URLSearchParams. This has the unfortunate side-effect of requiring us to use the fully qualified AK::URL name whenever we want to refer to the AK class, so this commit also fixes all such references.
This commit is contained in:
		
							parent
							
								
									2b78e227f2
								
							
						
					
					
						commit
						4629f2e4ad
					
				
					 54 changed files with 236 additions and 225 deletions
				
			
		|  | @ -437,7 +437,7 @@ int main(int argc, char** argv) | |||
|         return 1; | ||||
|     } | ||||
| 
 | ||||
|     if (namespace_.is_one_of("CSS", "DOM", "HTML", "UIEvents", "HighResolutionTime", "NavigationTiming", "SVG", "XHR")) { | ||||
|     if (namespace_.is_one_of("CSS", "DOM", "HTML", "UIEvents", "HighResolutionTime", "NavigationTiming", "SVG", "XHR", "URL")) { | ||||
|         StringBuilder builder; | ||||
|         builder.append(namespace_); | ||||
|         builder.append("::"); | ||||
|  | @ -968,6 +968,8 @@ static void generate_header(IDL::Interface const& interface) | |||
| #    include <LibWeb/SVG/@name@.h> | ||||
| #elif __has_include(<LibWeb/XHR/@name@.h>) | ||||
| #    include <LibWeb/XHR/@name@.h> | ||||
| #elif __has_include(<LibWeb/URL/@name@.h>) | ||||
| #    include <LibWeb/URL/@name@.h> | ||||
| #endif | ||||
| )~~~"); | ||||
| 
 | ||||
|  | @ -1235,6 +1237,8 @@ void generate_constructor_implementation(IDL::Interface const& interface) | |||
| #    include <LibWeb/SVG/@name@.h> | ||||
| #elif __has_include(<LibWeb/XHR/@name@.h>) | ||||
| #    include <LibWeb/XHR/@name@.h> | ||||
| #elif __has_include(<LibWeb/URL/@name@.h>) | ||||
| #    include <LibWeb/URL/@name@.h> | ||||
| #endif | ||||
| 
 | ||||
| // FIXME: This is a total hack until we can figure out the namespace for a given type somehow.
 | ||||
|  | @ -1504,6 +1508,8 @@ void generate_prototype_implementation(IDL::Interface const& interface) | |||
| #    include <LibWeb/SVG/@name@.h> | ||||
| #elif __has_include(<LibWeb/XHR/@name@.h>) | ||||
| #    include <LibWeb/XHR/@name@.h> | ||||
| #elif __has_include(<LibWeb/URL/@name@.h>) | ||||
| #    include <LibWeb/URL/@name@.h> | ||||
| #endif | ||||
| 
 | ||||
| // FIXME: This is a total hack until we can figure out the namespace for a given type somehow.
 | ||||
|  | @ -1512,6 +1518,7 @@ using namespace Web::DOM; | |||
| using namespace Web::HTML; | ||||
| using namespace Web::NavigationTiming; | ||||
| using namespace Web::XHR; | ||||
| using namespace Web::URL; | ||||
| 
 | ||||
| namespace Web::Bindings { | ||||
| 
 | ||||
|  |  | |||
|  | @ -230,7 +230,7 @@ set(SOURCES | |||
|     StylePropertiesModel.cpp | ||||
|     UIEvents/EventNames.cpp | ||||
|     UIEvents/MouseEvent.cpp | ||||
|     URLEncoder.cpp | ||||
|     URL/URL.cpp | ||||
|     WebAssembly/WebAssemblyInstanceConstructor.cpp | ||||
|     WebAssembly/WebAssemblyInstanceObject.cpp | ||||
|     WebAssembly/WebAssemblyInstanceObjectPrototype.cpp | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| 
 | ||||
| namespace Web::CSS { | ||||
| 
 | ||||
| CSSImportRule::CSSImportRule(URL url) | ||||
| CSSImportRule::CSSImportRule(AK::URL url) | ||||
|     : m_url(move(url)) | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -16,14 +16,14 @@ class CSSImportRule : public CSSRule { | |||
|     AK_MAKE_NONMOVABLE(CSSImportRule); | ||||
| 
 | ||||
| public: | ||||
|     static NonnullRefPtr<CSSImportRule> create(URL url) | ||||
|     static NonnullRefPtr<CSSImportRule> create(AK::URL url) | ||||
|     { | ||||
|         return adopt_ref(*new CSSImportRule(move(url))); | ||||
|     } | ||||
| 
 | ||||
|     ~CSSImportRule(); | ||||
| 
 | ||||
|     const URL& url() const { return m_url; } | ||||
|     const AK::URL& url() const { return m_url; } | ||||
| 
 | ||||
|     bool has_import_result() const { return !m_style_sheet.is_null(); } | ||||
|     RefPtr<CSSStyleSheet> loaded_style_sheet() { return m_style_sheet; } | ||||
|  | @ -34,9 +34,9 @@ public: | |||
|     virtual Type type() const { return Type::Import; }; | ||||
| 
 | ||||
| private: | ||||
|     explicit CSSImportRule(URL); | ||||
|     explicit CSSImportRule(AK::URL); | ||||
| 
 | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
|     RefPtr<CSSStyleSheet> m_style_sheet; | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -50,9 +50,9 @@ bool ParsingContext::in_quirks_mode() const | |||
|     return m_document ? m_document->in_quirks_mode() : false; | ||||
| } | ||||
| 
 | ||||
| URL ParsingContext::complete_url(String const& addr) const | ||||
| AK::URL ParsingContext::complete_url(String const& addr) const | ||||
| { | ||||
|     return m_document ? m_document->url().complete_url(addr) : URL::create_with_url_or_path(addr); | ||||
|     return m_document ? m_document->url().complete_url(addr) : AK::URL::create_with_url_or_path(addr); | ||||
| } | ||||
| 
 | ||||
| template<typename T> | ||||
|  | @ -1159,7 +1159,7 @@ Vector<Vector<StyleComponentValueRule>> Parser::parse_a_comma_separated_list_of_ | |||
|     return lists; | ||||
| } | ||||
| 
 | ||||
| Optional<URL> Parser::parse_url_function(ParsingContext const& context, StyleComponentValueRule const& component_value) | ||||
| Optional<AK::URL> Parser::parse_url_function(ParsingContext const& context, StyleComponentValueRule const& component_value) | ||||
| { | ||||
|     // FIXME: Handle list of media queries. https://www.w3.org/TR/css-cascade-3/#conditional-import
 | ||||
|     // FIXME: Handle data: urls (RFC2397)
 | ||||
|  | @ -1201,7 +1201,7 @@ RefPtr<CSSRule> Parser::convert_to_rule(NonnullRefPtr<StyleRule> rule) | |||
|             return {}; | ||||
|         } else if (rule->m_name.equals_ignoring_case("import"sv) && !rule->prelude().is_empty()) { | ||||
| 
 | ||||
|             Optional<URL> url; | ||||
|             Optional<AK::URL> url; | ||||
|             for (auto& token : rule->prelude()) { | ||||
|                 if (token.is(Token::Type::Whitespace)) | ||||
|                     continue; | ||||
|  |  | |||
|  | @ -38,7 +38,7 @@ public: | |||
| 
 | ||||
|     bool in_quirks_mode() const; | ||||
|     DOM::Document* document() const { return m_document; } | ||||
|     URL complete_url(String const&) const; | ||||
|     AK::URL complete_url(String const&) const; | ||||
| 
 | ||||
|     PropertyID current_property_id() const { return m_current_property_id; } | ||||
|     void set_current_property_id(PropertyID property_id) { m_current_property_id = property_id; } | ||||
|  | @ -172,7 +172,7 @@ private: | |||
|     static Optional<float> try_parse_float(StringView string); | ||||
|     static Optional<Color> parse_color(ParsingContext const&, StyleComponentValueRule const&); | ||||
|     static Optional<Length> parse_length(ParsingContext const&, StyleComponentValueRule const&); | ||||
|     static Optional<URL> parse_url_function(ParsingContext const&, StyleComponentValueRule const&); | ||||
|     static Optional<AK::URL> parse_url_function(ParsingContext const&, StyleComponentValueRule const&); | ||||
| 
 | ||||
|     Result<NonnullRefPtr<StyleValue>, ParsingResult> parse_css_value(PropertyID, TokenStream<StyleComponentValueRule>&); | ||||
|     static RefPtr<StyleValue> parse_css_value(ParsingContext const&, StyleComponentValueRule const&); | ||||
|  |  | |||
|  | @ -152,7 +152,7 @@ Color IdentifierStyleValue::to_color(const DOM::Document& document) const | |||
|     } | ||||
| } | ||||
| 
 | ||||
| ImageStyleValue::ImageStyleValue(const URL& url, DOM::Document& document) | ||||
| ImageStyleValue::ImageStyleValue(const AK::URL& url, DOM::Document& document) | ||||
|     : StyleValue(Type::Image) | ||||
|     , m_url(url) | ||||
|     , m_document(document) | ||||
|  |  | |||
|  | @ -651,7 +651,7 @@ class ImageStyleValue final | |||
|     : public StyleValue | ||||
|     , public ImageResourceClient { | ||||
| public: | ||||
|     static NonnullRefPtr<ImageStyleValue> create(const URL& url, DOM::Document& document) { return adopt_ref(*new ImageStyleValue(url, document)); } | ||||
|     static NonnullRefPtr<ImageStyleValue> create(const AK::URL& url, DOM::Document& document) { return adopt_ref(*new ImageStyleValue(url, document)); } | ||||
|     virtual ~ImageStyleValue() override { } | ||||
| 
 | ||||
|     String to_string() const override { return String::formatted("Image({})", m_url.to_string()); } | ||||
|  | @ -659,12 +659,12 @@ public: | |||
|     const Gfx::Bitmap* bitmap() const { return m_bitmap; } | ||||
| 
 | ||||
| private: | ||||
|     ImageStyleValue(const URL&, DOM::Document&); | ||||
|     ImageStyleValue(const AK::URL&, DOM::Document&); | ||||
| 
 | ||||
|     // ^ResourceClient
 | ||||
|     virtual void resource_did_load() override; | ||||
| 
 | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
|     WeakPtr<DOM::Document> m_document; | ||||
|     RefPtr<Gfx::Bitmap> m_bitmap; | ||||
| }; | ||||
|  |  | |||
|  | @ -57,7 +57,7 @@ | |||
| 
 | ||||
| namespace Web::DOM { | ||||
| 
 | ||||
| Document::Document(const URL& url) | ||||
| Document::Document(const AK::URL& url) | ||||
|     : ParentNode(*this, NodeType::DOCUMENT_NODE) | ||||
|     , m_style_resolver(make<CSS::StyleResolver>(*this)) | ||||
|     , m_style_sheets(CSS::StyleSheetList::create(*this)) | ||||
|  | @ -383,7 +383,7 @@ CSS::Repeat Document::background_repeat_y() const | |||
| } | ||||
| 
 | ||||
| // https://html.spec.whatwg.org/multipage/urls-and-fetching.html#parse-a-url
 | ||||
| URL Document::parse_url(String const& url) const | ||||
| AK::URL Document::parse_url(String const& url) const | ||||
| { | ||||
|     // FIXME: Make sure we do this according to spec.
 | ||||
|     return m_url.complete_url(url); | ||||
|  |  | |||
|  | @ -45,7 +45,7 @@ class Document | |||
| public: | ||||
|     using WrapperType = Bindings::DocumentWrapper; | ||||
| 
 | ||||
|     static NonnullRefPtr<Document> create(const URL& url = "about:blank") | ||||
|     static NonnullRefPtr<Document> create(const AK::URL& url = "about:blank") | ||||
|     { | ||||
|         return adopt_ref(*new Document(url)); | ||||
|     } | ||||
|  | @ -64,15 +64,15 @@ public: | |||
|     bool should_invalidate_styles_on_attribute_changes() const { return m_should_invalidate_styles_on_attribute_changes; } | ||||
|     void set_should_invalidate_styles_on_attribute_changes(bool b) { m_should_invalidate_styles_on_attribute_changes = b; } | ||||
| 
 | ||||
|     void set_url(const URL& url) { m_url = url; } | ||||
|     URL url() const { return m_url; } | ||||
|     void set_url(const AK::URL& url) { m_url = url; } | ||||
|     AK::URL url() const { return m_url; } | ||||
| 
 | ||||
|     Origin origin() const; | ||||
|     void set_origin(const Origin& origin); | ||||
| 
 | ||||
|     bool is_scripting_enabled() const { return true; } | ||||
| 
 | ||||
|     URL parse_url(String const&) const; | ||||
|     AK::URL parse_url(String const&) const; | ||||
| 
 | ||||
|     CSS::StyleResolver& style_resolver() { return *m_style_resolver; } | ||||
|     const CSS::StyleResolver& style_resolver() const { return *m_style_resolver; } | ||||
|  | @ -282,7 +282,7 @@ public: | |||
|     Bindings::LocationObject* location(); | ||||
| 
 | ||||
| private: | ||||
|     explicit Document(const URL&); | ||||
|     explicit Document(const AK::URL&); | ||||
| 
 | ||||
|     // ^DOM::Node
 | ||||
|     virtual RefPtr<Layout::Node> create_layout_node() override; | ||||
|  | @ -316,7 +316,7 @@ private: | |||
|     RefPtr<Node> m_hovered_node; | ||||
|     RefPtr<Node> m_inspected_node; | ||||
|     WeakPtr<BrowsingContext> m_browsing_context; | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
| 
 | ||||
|     RefPtr<Window> m_window; | ||||
| 
 | ||||
|  |  | |||
|  | @ -138,7 +138,7 @@ void Window::cancel_animation_frame(i32 id) | |||
|     GUI::DisplayLink::unregister_callback(id); | ||||
| } | ||||
| 
 | ||||
| void Window::did_set_location_href(Badge<Bindings::LocationObject>, URL const& new_href) | ||||
| void Window::did_set_location_href(Badge<Bindings::LocationObject>, AK::URL const& new_href) | ||||
| { | ||||
|     auto* frame = associated_document().browsing_context(); | ||||
|     if (!frame) | ||||
|  |  | |||
|  | @ -54,7 +54,7 @@ public: | |||
|     int inner_width() const; | ||||
|     int inner_height() const; | ||||
| 
 | ||||
|     void did_set_location_href(Badge<Bindings::LocationObject>, URL const& new_href); | ||||
|     void did_set_location_href(Badge<Bindings::LocationObject>, AK::URL const& new_href); | ||||
|     void did_call_location_reload(Badge<Bindings::LocationObject>); | ||||
| 
 | ||||
|     Bindings::WindowObject* wrapper() { return m_wrapper; } | ||||
|  |  | |||
|  | @ -205,6 +205,9 @@ class XMLHttpRequest; | |||
| class XMLHttpRequestEventTarget; | ||||
| } | ||||
| 
 | ||||
| namespace Web::URL { | ||||
| } | ||||
| 
 | ||||
| namespace Web::Bindings { | ||||
| class AbortControllerWrapper; | ||||
| class AbortSignalWrapper; | ||||
|  |  | |||
|  | @ -92,7 +92,7 @@ String HTMLCanvasElement::to_data_url(const String& type, [[maybe_unused]] Optio | |||
|     if (type != "image/png") | ||||
|         return {}; | ||||
|     auto encoded_bitmap = Gfx::PNGWriter::encode(*m_bitmap); | ||||
|     return URL::create_with_data(type, encode_base64(encoded_bitmap), true).to_string(); | ||||
|     return AK::URL::create_with_data(type, encode_base64(encoded_bitmap), true).to_string(); | ||||
| } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -12,7 +12,7 @@ | |||
| #include <LibWeb/HTML/SubmitEvent.h> | ||||
| #include <LibWeb/Page/BrowsingContext.h> | ||||
| #include <LibWeb/Page/Page.h> | ||||
| #include <LibWeb/URLEncoder.h> | ||||
| #include <LibWeb/URL/URL.h> | ||||
| 
 | ||||
| namespace Web::HTML { | ||||
| 
 | ||||
|  | @ -75,7 +75,7 @@ void HTMLFormElement::submit_form(RefPtr<HTMLElement> submitter, bool from_submi | |||
|             return; | ||||
|     } | ||||
| 
 | ||||
|     URL url(document().parse_url(action())); | ||||
|     AK::URL url(document().parse_url(action())); | ||||
| 
 | ||||
|     if (!url.is_valid()) { | ||||
|         dbgln("Failed to submit form: Invalid URL: {}", action()); | ||||
|  | @ -96,7 +96,7 @@ void HTMLFormElement::submit_form(RefPtr<HTMLElement> submitter, bool from_submi | |||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     Vector<URLQueryParam> parameters; | ||||
|     Vector<URL::QueryParam> parameters; | ||||
| 
 | ||||
|     for_each_in_inclusive_subtree_of_type<HTMLInputElement>([&](auto& input) { | ||||
|         if (!input.name().is_null() && (input.type() != "submit" || &input == submitter)) | ||||
|  | @ -105,14 +105,14 @@ void HTMLFormElement::submit_form(RefPtr<HTMLElement> submitter, bool from_submi | |||
|     }); | ||||
| 
 | ||||
|     if (effective_method == "get") { | ||||
|         url.set_query(urlencode(parameters, URL::PercentEncodeSet::ApplicationXWWWFormUrlencoded)); | ||||
|         url.set_query(url_encode(parameters, AK::URL::PercentEncodeSet::ApplicationXWWWFormUrlencoded)); | ||||
|     } | ||||
| 
 | ||||
|     LoadRequest request; | ||||
|     request.set_url(url); | ||||
| 
 | ||||
|     if (effective_method == "post") { | ||||
|         auto body = urlencode(parameters, URL::PercentEncodeSet::ApplicationXWWWFormUrlencoded).to_byte_buffer(); | ||||
|         auto body = url_encode(parameters, AK::URL::PercentEncodeSet::ApplicationXWWWFormUrlencoded).to_byte_buffer(); | ||||
|         request.set_method("POST"); | ||||
|         request.set_header("Content-Type", "application/x-www-form-urlencoded"); | ||||
|         request.set_header("Content-Length", String::number(body.size())); | ||||
|  |  | |||
|  | @ -304,7 +304,7 @@ void HTMLScriptElement::prepare_script() | |||
|                     document().interpreter(); | ||||
| 
 | ||||
|                     // FIXME: This is all ad-hoc and needs work.
 | ||||
|                     auto script = ClassicScript::create(url.to_string(), data, document().interpreter().realm(), URL()); | ||||
|                     auto script = ClassicScript::create(url.to_string(), data, document().interpreter().realm(), AK::URL()); | ||||
| 
 | ||||
|                     // When the chosen algorithm asynchronously completes, set the script's script to the result. At that time, the script is ready.
 | ||||
|                     m_script = script; | ||||
|  | @ -331,7 +331,7 @@ void HTMLScriptElement::prepare_script() | |||
|             document().interpreter(); | ||||
| 
 | ||||
|             // FIXME: Pass settings, base URL and options.
 | ||||
|             auto script = ClassicScript::create(m_document->url().to_string(), source_text, document().interpreter().realm(), URL()); | ||||
|             auto script = ClassicScript::create(m_document->url().to_string(), source_text, document().interpreter().realm(), AK::URL()); | ||||
| 
 | ||||
|             // 2. Set the script's script to script.
 | ||||
|             m_script = script; | ||||
|  |  | |||
|  | @ -93,7 +93,7 @@ static Vector<FlyString> s_quirks_public_ids = { | |||
|     "-//WebTechs//DTD Mozilla HTML//" | ||||
| }; | ||||
| 
 | ||||
| RefPtr<DOM::Document> parse_html_document(const StringView& data, const URL& url, const String& encoding) | ||||
| RefPtr<DOM::Document> parse_html_document(const StringView& data, const AK::URL& url, const String& encoding) | ||||
| { | ||||
|     auto document = DOM::Document::create(url); | ||||
|     HTMLDocumentParser parser(document, data, encoding); | ||||
|  | @ -116,7 +116,7 @@ HTMLDocumentParser::~HTMLDocumentParser() | |||
|     m_document->set_should_invalidate_styles_on_attribute_changes(true); | ||||
| } | ||||
| 
 | ||||
| void HTMLDocumentParser::run(const URL& url) | ||||
| void HTMLDocumentParser::run(const AK::URL& url) | ||||
| { | ||||
|     m_document->set_url(url); | ||||
|     m_document->set_source(m_tokenizer.source()); | ||||
|  |  | |||
|  | @ -39,7 +39,7 @@ namespace Web::HTML { | |||
|     __ENUMERATE_INSERTION_MODE(AfterAfterBody)  \ | ||||
|     __ENUMERATE_INSERTION_MODE(AfterAfterFrameset) | ||||
| 
 | ||||
| RefPtr<DOM::Document> parse_html_document(const StringView&, const URL&, const String& encoding); | ||||
| RefPtr<DOM::Document> parse_html_document(const StringView&, const AK::URL&, const String& encoding); | ||||
| 
 | ||||
| class HTMLDocumentParser { | ||||
| public: | ||||
|  | @ -48,7 +48,7 @@ public: | |||
| 
 | ||||
|     static NonnullOwnPtr<HTMLDocumentParser> create_with_uncertain_encoding(DOM::Document&, const ByteBuffer& input); | ||||
| 
 | ||||
|     void run(const URL&); | ||||
|     void run(const AK::URL&); | ||||
| 
 | ||||
|     DOM::Document& document(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -11,7 +11,7 @@ | |||
| namespace Web::HTML { | ||||
| 
 | ||||
| // https://html.spec.whatwg.org/multipage/webappapis.html#creating-a-classic-script
 | ||||
| NonnullRefPtr<ClassicScript> ClassicScript::create(String filename, StringView source, JS::Realm& realm, URL base_url, MutedErrors muted_errors) | ||||
| NonnullRefPtr<ClassicScript> ClassicScript::create(String filename, StringView source, JS::Realm& realm, AK::URL base_url, MutedErrors muted_errors) | ||||
| { | ||||
|     // 1. If muted errors was not provided, let it be false. (NOTE: This is taken care of by the default argument.)
 | ||||
| 
 | ||||
|  | @ -65,7 +65,7 @@ JS::Value ClassicScript::run(RethrowErrors rethrow_errors) | |||
|     return vm.last_value(); | ||||
| } | ||||
| 
 | ||||
| ClassicScript::ClassicScript(URL base_url, String filename) | ||||
| ClassicScript::ClassicScript(AK::URL base_url, String filename) | ||||
|     : Script(move(base_url), move(filename)) | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ public: | |||
|         No, | ||||
|         Yes, | ||||
|     }; | ||||
|     static NonnullRefPtr<ClassicScript> create(String filename, StringView source, JS::Realm&, URL base_url, MutedErrors = MutedErrors::No); | ||||
|     static NonnullRefPtr<ClassicScript> create(String filename, StringView source, JS::Realm&, AK::URL base_url, MutedErrors = MutedErrors::No); | ||||
| 
 | ||||
|     JS::Script* script_record() { return m_script_record; } | ||||
|     JS::Script const* script_record() const { return m_script_record; } | ||||
|  | @ -32,7 +32,7 @@ public: | |||
|     JS::Value run(RethrowErrors = RethrowErrors::No); | ||||
| 
 | ||||
| private: | ||||
|     ClassicScript(URL base_url, String filename); | ||||
|     ClassicScript(AK::URL base_url, String filename); | ||||
| 
 | ||||
|     RefPtr<JS::Script> m_script_record; | ||||
|     MutedErrors m_muted_errors { MutedErrors::No }; | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
| 
 | ||||
| namespace Web::HTML { | ||||
| 
 | ||||
| Script::Script(URL base_url, String filename) | ||||
| Script::Script(AK::URL base_url, String filename) | ||||
|     : m_base_url(move(base_url)) | ||||
|     , m_filename(move(filename)) | ||||
| { | ||||
|  |  | |||
|  | @ -16,14 +16,14 @@ class Script : public RefCounted<Script> { | |||
| public: | ||||
|     virtual ~Script(); | ||||
| 
 | ||||
|     URL const& base_url() const { return m_base_url; } | ||||
|     AK::URL const& base_url() const { return m_base_url; } | ||||
|     String const& filename() const { return m_filename; } | ||||
| 
 | ||||
| protected: | ||||
|     Script(URL base_url, String filename); | ||||
|     Script(AK::URL base_url, String filename); | ||||
| 
 | ||||
| private: | ||||
|     URL m_base_url; | ||||
|     AK::URL m_base_url; | ||||
|     String m_filename; | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,7 +41,7 @@ WebSocketClientManager::WebSocketClientManager() | |||
| { | ||||
| } | ||||
| 
 | ||||
| RefPtr<Protocol::WebSocket> WebSocketClientManager::connect(const URL& url) | ||||
| RefPtr<Protocol::WebSocket> WebSocketClientManager::connect(const AK::URL& url) | ||||
| { | ||||
|     return m_websocket_client->connect(url); | ||||
| } | ||||
|  | @ -49,7 +49,7 @@ RefPtr<Protocol::WebSocket> WebSocketClientManager::connect(const URL& url) | |||
| // https://html.spec.whatwg.org/multipage/web-sockets.html#the-websocket-interface
 | ||||
| DOM::ExceptionOr<NonnullRefPtr<WebSocket>> WebSocket::create_with_global_object(Bindings::WindowObject& window, const String& url) | ||||
| { | ||||
|     URL url_record(url); | ||||
|     AK::URL url_record(url); | ||||
|     if (!url_record.is_valid()) | ||||
|         return DOM::SyntaxError::create("Invalid URL"); | ||||
|     if (!url_record.protocol().is_one_of("ws", "wss")) | ||||
|  | @ -61,7 +61,7 @@ DOM::ExceptionOr<NonnullRefPtr<WebSocket>> WebSocket::create_with_global_object( | |||
|     return WebSocket::create(window.impl(), url_record); | ||||
| } | ||||
| 
 | ||||
| WebSocket::WebSocket(DOM::Window& window, URL& url) | ||||
| WebSocket::WebSocket(DOM::Window& window, AK::URL& url) | ||||
|     : EventTarget(static_cast<Bindings::ScriptExecutionContext&>(window.associated_document())) | ||||
|     , m_window(window) | ||||
| { | ||||
|  |  | |||
|  | @ -35,7 +35,7 @@ class WebSocketClientManager : public Core::Object { | |||
| public: | ||||
|     static WebSocketClientManager& the(); | ||||
| 
 | ||||
|     RefPtr<Protocol::WebSocket> connect(const URL&); | ||||
|     RefPtr<Protocol::WebSocket> connect(const AK::URL&); | ||||
| 
 | ||||
| private: | ||||
|     WebSocketClientManager(); | ||||
|  | @ -57,7 +57,7 @@ public: | |||
| 
 | ||||
|     using WrapperType = Bindings::WebSocketWrapper; | ||||
| 
 | ||||
|     static NonnullRefPtr<WebSocket> create(DOM::Window& window, URL& url) | ||||
|     static NonnullRefPtr<WebSocket> create(DOM::Window& window, AK::URL& url) | ||||
|     { | ||||
|         return adopt_ref(*new WebSocket(window, url)); | ||||
|     } | ||||
|  | @ -102,11 +102,11 @@ private: | |||
|     void on_error(); | ||||
|     void on_close(u16 code, String reason, bool was_clean); | ||||
| 
 | ||||
|     explicit WebSocket(DOM::Window&, URL&); | ||||
|     explicit WebSocket(DOM::Window&, AK::URL&); | ||||
| 
 | ||||
|     NonnullRefPtr<DOM::Window> m_window; | ||||
| 
 | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
|     String m_binary_type { "blob" }; | ||||
|     RefPtr<Protocol::WebSocket> m_websocket; | ||||
| }; | ||||
|  |  | |||
|  | @ -72,13 +72,13 @@ void InProcessWebView::page_did_set_document_in_top_level_browsing_context(DOM:: | |||
|     update(); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_start_loading(const URL& url) | ||||
| void InProcessWebView::page_did_start_loading(const AK::URL& url) | ||||
| { | ||||
|     if (on_load_start) | ||||
|         on_load_start(url); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_finish_loading(const URL& url) | ||||
| void InProcessWebView::page_did_finish_loading(const AK::URL& url) | ||||
| { | ||||
|     if (on_load_finish) | ||||
|         on_load_finish(url); | ||||
|  | @ -100,13 +100,13 @@ void InProcessWebView::page_did_request_context_menu(const Gfx::IntPoint& conten | |||
|         on_context_menu_request(screen_relative_rect().location().translated(to_widget_position(content_position))); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_request_link_context_menu(const Gfx::IntPoint& content_position, const URL& url, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) | ||||
| void InProcessWebView::page_did_request_link_context_menu(const Gfx::IntPoint& content_position, const AK::URL& url, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) | ||||
| { | ||||
|     if (on_link_context_menu_request) | ||||
|         on_link_context_menu_request(url, screen_relative_rect().location().translated(to_widget_position(content_position))); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_request_image_context_menu(const Gfx::IntPoint& content_position, const URL& url, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers, const Gfx::Bitmap* bitmap) | ||||
| void InProcessWebView::page_did_request_image_context_menu(const Gfx::IntPoint& content_position, const AK::URL& url, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers, const Gfx::Bitmap* bitmap) | ||||
| { | ||||
|     if (!on_image_context_menu_request) | ||||
|         return; | ||||
|  | @ -116,13 +116,13 @@ void InProcessWebView::page_did_request_image_context_menu(const Gfx::IntPoint& | |||
|     on_image_context_menu_request(url, screen_relative_rect().location().translated(to_widget_position(content_position)), shareable_bitmap); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_click_link(const URL& url, const String& target, unsigned modifiers) | ||||
| void InProcessWebView::page_did_click_link(const AK::URL& url, const String& target, unsigned modifiers) | ||||
| { | ||||
|     if (on_link_click) | ||||
|         on_link_click(url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_middle_click_link(const URL& url, const String& target, unsigned modifiers) | ||||
| void InProcessWebView::page_did_middle_click_link(const AK::URL& url, const String& target, unsigned modifiers) | ||||
| { | ||||
|     if (on_link_middle_click) | ||||
|         on_link_middle_click(url, target, modifiers); | ||||
|  | @ -138,7 +138,7 @@ void InProcessWebView::page_did_leave_tooltip_area() | |||
|     GUI::Application::the()->hide_tooltip(); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_hover_link(const URL& url) | ||||
| void InProcessWebView::page_did_hover_link(const AK::URL& url) | ||||
| { | ||||
|     if (on_link_hover) | ||||
|         on_link_hover(url); | ||||
|  | @ -276,7 +276,7 @@ void InProcessWebView::keydown_event(GUI::KeyEvent& event) | |||
|     event.accept(); | ||||
| } | ||||
| 
 | ||||
| URL InProcessWebView::url() const | ||||
| AK::URL InProcessWebView::url() const | ||||
| { | ||||
|     if (!page().top_level_browsing_context().active_document()) | ||||
|         return {}; | ||||
|  | @ -288,12 +288,12 @@ void InProcessWebView::reload() | |||
|     load(url()); | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::load_html(const StringView& html, const URL& url) | ||||
| void InProcessWebView::load_html(const StringView& html, const AK::URL& url) | ||||
| { | ||||
|     page().top_level_browsing_context().loader().load_html(html, url); | ||||
| } | ||||
| 
 | ||||
| bool InProcessWebView::load(const URL& url) | ||||
| bool InProcessWebView::load(const AK::URL& url) | ||||
| { | ||||
|     set_override_cursor(Gfx::StandardCursor::None); | ||||
|     return page().top_level_browsing_context().loader().load(url, FrameLoader::Type::Navigation); | ||||
|  | @ -372,14 +372,14 @@ String InProcessWebView::page_did_request_prompt(const String& message, const St | |||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| String InProcessWebView::page_did_request_cookie(const URL& url, Cookie::Source source) | ||||
| String InProcessWebView::page_did_request_cookie(const AK::URL& url, Cookie::Source source) | ||||
| { | ||||
|     if (on_get_cookie) | ||||
|         return on_get_cookie(url, source); | ||||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| void InProcessWebView::page_did_set_cookie(const URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source) | ||||
| void InProcessWebView::page_did_set_cookie(const AK::URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source) | ||||
| { | ||||
|     if (on_set_cookie) | ||||
|         on_set_cookie(url, cookie, source); | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ class InProcessWebView final | |||
| public: | ||||
|     virtual ~InProcessWebView() override; | ||||
| 
 | ||||
|     void load_html(const StringView&, const URL&); | ||||
|     void load_html(const StringView&, const AK::URL&); | ||||
|     void load_empty_document(); | ||||
| 
 | ||||
|     DOM::Document* document(); | ||||
|  | @ -36,9 +36,9 @@ public: | |||
|     Layout::InitialContainingBlock* layout_root(); | ||||
| 
 | ||||
|     void reload(); | ||||
|     bool load(const URL&); | ||||
|     bool load(const AK::URL&); | ||||
| 
 | ||||
|     URL url() const; | ||||
|     AK::URL url() const; | ||||
| 
 | ||||
|     void set_should_show_line_box_borders(bool value) { m_should_show_line_box_borders = value; } | ||||
| 
 | ||||
|  | @ -67,18 +67,18 @@ private: | |||
|     virtual Gfx::IntRect screen_rect() const override { return GUI::Desktop::the().rect(); } | ||||
|     virtual void page_did_change_title(const String&) override; | ||||
|     virtual void page_did_set_document_in_top_level_browsing_context(DOM::Document*) override; | ||||
|     virtual void page_did_start_loading(const URL&) override; | ||||
|     virtual void page_did_finish_loading(const URL&) override; | ||||
|     virtual void page_did_start_loading(const AK::URL&) override; | ||||
|     virtual void page_did_finish_loading(const AK::URL&) override; | ||||
|     virtual void page_did_change_selection() override; | ||||
|     virtual void page_did_request_cursor_change(Gfx::StandardCursor) override; | ||||
|     virtual void page_did_request_context_menu(const Gfx::IntPoint&) override; | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_request_image_context_menu(const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers, const Gfx::Bitmap*) override; | ||||
|     virtual void page_did_click_link(const URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_middle_click_link(const URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const AK::URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_request_image_context_menu(const Gfx::IntPoint&, const AK::URL&, const String& target, unsigned modifiers, const Gfx::Bitmap*) override; | ||||
|     virtual void page_did_click_link(const AK::URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_middle_click_link(const AK::URL&, const String& target, unsigned modifiers) override; | ||||
|     virtual void page_did_enter_tooltip_area(const Gfx::IntPoint&, const String&) override; | ||||
|     virtual void page_did_leave_tooltip_area() override; | ||||
|     virtual void page_did_hover_link(const URL&) override; | ||||
|     virtual void page_did_hover_link(const AK::URL&) override; | ||||
|     virtual void page_did_unhover_link() override; | ||||
|     virtual void page_did_invalidate(const Gfx::IntRect&) override; | ||||
|     virtual void page_did_change_favicon(const Gfx::Bitmap&) override; | ||||
|  | @ -87,8 +87,8 @@ private: | |||
|     virtual void page_did_request_alert(const String&) override; | ||||
|     virtual bool page_did_request_confirm(const String&) override; | ||||
|     virtual String page_did_request_prompt(const String&, const String&) override; | ||||
|     virtual String page_did_request_cookie(const URL&, Cookie::Source) override; | ||||
|     virtual void page_did_set_cookie(const URL&, const Cookie::ParsedCookie&, Cookie::Source) override; | ||||
|     virtual String page_did_request_cookie(const AK::URL&, Cookie::Source) override; | ||||
|     virtual void page_did_set_cookie(const AK::URL&, const Cookie::ParsedCookie&, Cookie::Source) override; | ||||
| 
 | ||||
|     void layout_and_sync_size(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ void CSSLoader::load_from_text(const String& text) | |||
|     load_next_import_if_needed(); | ||||
| } | ||||
| 
 | ||||
| void CSSLoader::load_from_url(const URL& url) | ||||
| void CSSLoader::load_from_url(const AK::URL& url) | ||||
| { | ||||
|     m_style_sheet = CSS::CSSStyleSheet::create({}); | ||||
|     m_style_sheet->set_owner_node(&m_owner_element); | ||||
|  |  | |||
|  | @ -17,7 +17,7 @@ public: | |||
|     explicit CSSLoader(DOM::Element& owner_element); | ||||
| 
 | ||||
|     void load_from_text(const String&); | ||||
|     void load_from_url(const URL&); | ||||
|     void load_from_url(const AK::URL&); | ||||
| 
 | ||||
|     void load_next_import_if_needed(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ ContentFilter::~ContentFilter() | |||
| { | ||||
| } | ||||
| 
 | ||||
| bool ContentFilter::is_filtered(const URL& url) const | ||||
| bool ContentFilter::is_filtered(const AK::URL& url) const | ||||
| { | ||||
|     auto url_string = url.to_string(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ class ContentFilter { | |||
| public: | ||||
|     static ContentFilter& the(); | ||||
| 
 | ||||
|     bool is_filtered(const URL&) const; | ||||
|     bool is_filtered(const AK::URL&) const; | ||||
|     void add_pattern(const String&); | ||||
| 
 | ||||
| private: | ||||
|  |  | |||
|  | @ -162,7 +162,7 @@ bool FrameLoader::load(LoadRequest& request, Type type) | |||
|         return true; | ||||
| 
 | ||||
|     if (url.protocol() == "http" || url.protocol() == "https") { | ||||
|         URL favicon_url; | ||||
|         AK::URL favicon_url; | ||||
|         favicon_url.set_protocol(url.protocol()); | ||||
|         favicon_url.set_host(url.host()); | ||||
|         favicon_url.set_port(url.port()); | ||||
|  | @ -195,7 +195,7 @@ bool FrameLoader::load(LoadRequest& request, Type type) | |||
|     return true; | ||||
| } | ||||
| 
 | ||||
| bool FrameLoader::load(const URL& url, Type type) | ||||
| bool FrameLoader::load(const AK::URL& url, Type type) | ||||
| { | ||||
|     dbgln_if(SPAM_DEBUG, "FrameLoader::load: {}", url); | ||||
| 
 | ||||
|  | @ -208,7 +208,7 @@ bool FrameLoader::load(const URL& url, Type type) | |||
|     return load(request, type); | ||||
| } | ||||
| 
 | ||||
| void FrameLoader::load_html(const StringView& html, const URL& url) | ||||
| void FrameLoader::load_html(const StringView& html, const AK::URL& url) | ||||
| { | ||||
|     auto document = DOM::Document::create(url); | ||||
|     HTML::HTMLDocumentParser parser(document, html, "utf-8"); | ||||
|  | @ -219,7 +219,7 @@ void FrameLoader::load_html(const StringView& html, const URL& url) | |||
| // FIXME: Use an actual templating engine (our own one when it's built, preferably
 | ||||
| // with a way to check these usages at compile time)
 | ||||
| 
 | ||||
| void FrameLoader::load_error_page(const URL& failed_url, const String& error) | ||||
| void FrameLoader::load_error_page(const AK::URL& failed_url, const String& error) | ||||
| { | ||||
|     auto error_page_url = "file:///res/html/error.html"; | ||||
|     ResourceLoader::the().load( | ||||
|  |  | |||
|  | @ -26,10 +26,10 @@ public: | |||
|     explicit FrameLoader(BrowsingContext&); | ||||
|     ~FrameLoader(); | ||||
| 
 | ||||
|     bool load(const URL&, Type); | ||||
|     bool load(const AK::URL&, Type); | ||||
|     bool load(LoadRequest&, Type); | ||||
| 
 | ||||
|     void load_html(const StringView&, const URL&); | ||||
|     void load_html(const StringView&, const AK::URL&); | ||||
| 
 | ||||
|     BrowsingContext& browsing_context() { return m_browsing_context; } | ||||
|     const BrowsingContext& browsing_context() const { return m_browsing_context; } | ||||
|  | @ -39,7 +39,7 @@ private: | |||
|     virtual void resource_did_load() override; | ||||
|     virtual void resource_did_fail() override; | ||||
| 
 | ||||
|     void load_error_page(const URL& failed_url, const String& error_message); | ||||
|     void load_error_page(const AK::URL& failed_url, const String& error_message); | ||||
|     void load_favicon(RefPtr<Gfx::Bitmap> bitmap = nullptr); | ||||
|     bool parse_document(DOM::Document&, const ByteBuffer& data); | ||||
| 
 | ||||
|  |  | |||
|  | @ -20,7 +20,7 @@ ImageLoader::ImageLoader(DOM::Element& owner_element) | |||
| { | ||||
| } | ||||
| 
 | ||||
| void ImageLoader::load(const URL& url) | ||||
| void ImageLoader::load(const AK::URL& url) | ||||
| { | ||||
|     m_loading_state = LoadingState::Loading; | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ class ImageLoader : public ImageResourceClient { | |||
| public: | ||||
|     ImageLoader(DOM::Element& owner_element); | ||||
| 
 | ||||
|     void load(const URL&); | ||||
|     void load(const AK::URL&); | ||||
| 
 | ||||
|     const Gfx::Bitmap* bitmap(size_t index) const; | ||||
|     size_t current_frame_index() const { return m_current_frame_index; } | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| 
 | ||||
| namespace Web { | ||||
| 
 | ||||
| LoadRequest LoadRequest::create_for_url_on_page(const URL& url, Page* page) | ||||
| LoadRequest LoadRequest::create_for_url_on_page(const AK::URL& url, Page* page) | ||||
| { | ||||
|     LoadRequest request; | ||||
|     request.set_url(url); | ||||
|  |  | |||
|  | @ -21,12 +21,12 @@ public: | |||
|     { | ||||
|     } | ||||
| 
 | ||||
|     static LoadRequest create_for_url_on_page(const URL& url, Page* page); | ||||
|     static LoadRequest create_for_url_on_page(const AK::URL& url, Page* page); | ||||
| 
 | ||||
|     bool is_valid() const { return m_url.is_valid(); } | ||||
| 
 | ||||
|     const URL& url() const { return m_url; } | ||||
|     void set_url(const URL& url) { m_url = url; } | ||||
|     const AK::URL& url() const { return m_url; } | ||||
|     void set_url(const AK::URL& url) { m_url = url; } | ||||
| 
 | ||||
|     const String& method() const { return m_method; } | ||||
|     void set_method(const String& method) { m_method = method; } | ||||
|  | @ -65,7 +65,7 @@ public: | |||
|     const HashMap<String, String>& headers() const { return m_headers; } | ||||
| 
 | ||||
| private: | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
|     String m_method { "GET" }; | ||||
|     HashMap<String, String> m_headers; | ||||
|     ByteBuffer m_body; | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ public: | |||
| 
 | ||||
|     bool has_encoded_data() const { return !m_encoded_data.is_empty(); } | ||||
| 
 | ||||
|     const URL& url() const { return m_request.url(); } | ||||
|     const AK::URL& url() const { return m_request.url(); } | ||||
|     const ByteBuffer& encoded_data() const { return m_encoded_data; } | ||||
| 
 | ||||
|     const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers() const { return m_response_headers; } | ||||
|  |  | |||
|  | @ -218,7 +218,7 @@ void ResourceLoader::load(LoadRequest& request, Function<void(ReadonlyBytes, con | |||
|         error_callback(not_implemented_error, {}); | ||||
| } | ||||
| 
 | ||||
| void ResourceLoader::load(const URL& url, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback) | ||||
| void ResourceLoader::load(const AK::URL& url, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback) | ||||
| { | ||||
|     LoadRequest request; | ||||
|     request.set_url(url); | ||||
|  |  | |||
|  | @ -33,7 +33,7 @@ public: | |||
|     RefPtr<Resource> load_resource(Resource::Type, LoadRequest&); | ||||
| 
 | ||||
|     void load(LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr); | ||||
|     void load(const URL&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr); | ||||
|     void load(const AK::URL&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr); | ||||
|     void load_sync(LoadRequest&, Function<void(ReadonlyBytes, const HashMap<String, String, CaseInsensitiveStringTraits>& response_headers, Optional<u32> status_code)> success_callback, Function<void(const String&, Optional<u32> status_code)> error_callback = nullptr); | ||||
| 
 | ||||
|     Function<void()> on_load_counter_change; | ||||
|  |  | |||
|  | @ -74,13 +74,13 @@ void OutOfProcessWebView::create_client() | |||
|     client().async_update_screen_rects(GUI::Desktop::the().rects(), GUI::Desktop::the().main_screen_index()); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::load(const URL& url) | ||||
| void OutOfProcessWebView::load(const AK::URL& url) | ||||
| { | ||||
|     m_url = url; | ||||
|     client().async_load_url(url); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::load_html(const StringView& html, const URL& url) | ||||
| void OutOfProcessWebView::load_html(const StringView& html, const AK::URL& url) | ||||
| { | ||||
|     m_url = url; | ||||
|     client().async_load_html(html, url); | ||||
|  | @ -262,7 +262,7 @@ void OutOfProcessWebView::notify_server_did_leave_tooltip_area(Badge<WebContentC | |||
|     GUI::Application::the()->hide_tooltip(); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_hover_link(Badge<WebContentClient>, const URL& url) | ||||
| void OutOfProcessWebView::notify_server_did_hover_link(Badge<WebContentClient>, const AK::URL& url) | ||||
| { | ||||
|     if (on_link_hover) | ||||
|         on_link_hover(url); | ||||
|  | @ -275,25 +275,25 @@ void OutOfProcessWebView::notify_server_did_unhover_link(Badge<WebContentClient> | |||
|         on_link_hover({}); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_click_link(Badge<WebContentClient>, const URL& url, const String& target, unsigned int modifiers) | ||||
| void OutOfProcessWebView::notify_server_did_click_link(Badge<WebContentClient>, const AK::URL& url, const String& target, unsigned int modifiers) | ||||
| { | ||||
|     if (on_link_click) | ||||
|         on_link_click(url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_middle_click_link(Badge<WebContentClient>, const URL& url, const String& target, unsigned int modifiers) | ||||
| void OutOfProcessWebView::notify_server_did_middle_click_link(Badge<WebContentClient>, const AK::URL& url, const String& target, unsigned int modifiers) | ||||
| { | ||||
|     if (on_link_middle_click) | ||||
|         on_link_middle_click(url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_start_loading(Badge<WebContentClient>, const URL& url) | ||||
| void OutOfProcessWebView::notify_server_did_start_loading(Badge<WebContentClient>, const AK::URL& url) | ||||
| { | ||||
|     if (on_load_start) | ||||
|         on_load_start(url); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_finish_loading(Badge<WebContentClient>, const URL& url) | ||||
| void OutOfProcessWebView::notify_server_did_finish_loading(Badge<WebContentClient>, const AK::URL& url) | ||||
| { | ||||
|     if (on_load_finish) | ||||
|         on_load_finish(url); | ||||
|  | @ -305,13 +305,13 @@ void OutOfProcessWebView::notify_server_did_request_context_menu(Badge<WebConten | |||
|         on_context_menu_request(screen_relative_rect().location().translated(to_widget_position(content_position))); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position, const URL& url, const String&, unsigned) | ||||
| void OutOfProcessWebView::notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position, const AK::URL& url, const String&, unsigned) | ||||
| { | ||||
|     if (on_link_context_menu_request) | ||||
|         on_link_context_menu_request(url, screen_relative_rect().location().translated(to_widget_position(content_position))); | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_request_image_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position, const URL& url, const String&, unsigned, const Gfx::ShareableBitmap& bitmap) | ||||
| void OutOfProcessWebView::notify_server_did_request_image_context_menu(Badge<WebContentClient>, const Gfx::IntPoint& content_position, const AK::URL& url, const String&, unsigned, const Gfx::ShareableBitmap& bitmap) | ||||
| { | ||||
|     if (on_image_context_menu_request) | ||||
|         on_image_context_menu_request(url, screen_relative_rect().location().translated(to_widget_position(content_position)), bitmap); | ||||
|  | @ -336,7 +336,7 @@ String OutOfProcessWebView::notify_server_did_request_prompt(Badge<WebContentCli | |||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_get_source(const URL& url, const String& source) | ||||
| void OutOfProcessWebView::notify_server_did_get_source(const AK::URL& url, const String& source) | ||||
| { | ||||
|     if (on_get_source) | ||||
|         on_get_source(url, source); | ||||
|  | @ -372,14 +372,14 @@ void OutOfProcessWebView::notify_server_did_change_favicon(const Gfx::Bitmap& fa | |||
|         on_favicon_change(favicon); | ||||
| } | ||||
| 
 | ||||
| String OutOfProcessWebView::notify_server_did_request_cookie(Badge<WebContentClient>, const URL& url, Cookie::Source source) | ||||
| String OutOfProcessWebView::notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Cookie::Source source) | ||||
| { | ||||
|     if (on_get_cookie) | ||||
|         return on_get_cookie(url, source); | ||||
|     return {}; | ||||
| } | ||||
| 
 | ||||
| void OutOfProcessWebView::notify_server_did_set_cookie(Badge<WebContentClient>, const URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source) | ||||
| void OutOfProcessWebView::notify_server_did_set_cookie(Badge<WebContentClient>, const AK::URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source) | ||||
| { | ||||
|     if (on_set_cookie) | ||||
|         on_set_cookie(url, cookie, source); | ||||
|  |  | |||
|  | @ -23,10 +23,10 @@ class OutOfProcessWebView final | |||
| public: | ||||
|     virtual ~OutOfProcessWebView() override; | ||||
| 
 | ||||
|     URL url() const { return m_url; } | ||||
|     void load(const URL&); | ||||
|     AK::URL url() const { return m_url; } | ||||
|     void load(const AK::URL&); | ||||
| 
 | ||||
|     void load_html(const StringView&, const URL&); | ||||
|     void load_html(const StringView&, const AK::URL&); | ||||
|     void load_empty_document(); | ||||
| 
 | ||||
|     void debug_request(const String& request, const String& argument = {}); | ||||
|  | @ -62,26 +62,26 @@ public: | |||
|     void notify_server_did_request_scroll_into_view(Badge<WebContentClient>, const Gfx::IntRect&); | ||||
|     void notify_server_did_enter_tooltip_area(Badge<WebContentClient>, const Gfx::IntPoint&, const String&); | ||||
|     void notify_server_did_leave_tooltip_area(Badge<WebContentClient>); | ||||
|     void notify_server_did_hover_link(Badge<WebContentClient>, const URL&); | ||||
|     void notify_server_did_hover_link(Badge<WebContentClient>, const AK::URL&); | ||||
|     void notify_server_did_unhover_link(Badge<WebContentClient>); | ||||
|     void notify_server_did_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_middle_click_link(Badge<WebContentClient>, const URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_start_loading(Badge<WebContentClient>, const URL&); | ||||
|     void notify_server_did_finish_loading(Badge<WebContentClient>, const URL&); | ||||
|     void notify_server_did_click_link(Badge<WebContentClient>, const AK::URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_middle_click_link(Badge<WebContentClient>, const AK::URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_start_loading(Badge<WebContentClient>, const AK::URL&); | ||||
|     void notify_server_did_finish_loading(Badge<WebContentClient>, const AK::URL&); | ||||
|     void notify_server_did_request_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&); | ||||
|     void notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_request_image_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&, const URL&, const String& target, unsigned modifiers, const Gfx::ShareableBitmap&); | ||||
|     void notify_server_did_request_link_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&, const AK::URL&, const String& target, unsigned modifiers); | ||||
|     void notify_server_did_request_image_context_menu(Badge<WebContentClient>, const Gfx::IntPoint&, const AK::URL&, const String& target, unsigned modifiers, const Gfx::ShareableBitmap&); | ||||
|     void notify_server_did_request_alert(Badge<WebContentClient>, const String& message); | ||||
|     bool notify_server_did_request_confirm(Badge<WebContentClient>, const String& message); | ||||
|     String notify_server_did_request_prompt(Badge<WebContentClient>, const String& message, const String& default_); | ||||
|     void notify_server_did_get_source(const URL& url, const String& source); | ||||
|     void notify_server_did_get_source(const AK::URL& url, const String& source); | ||||
|     void notify_server_did_get_dom_tree(const String& dom_tree); | ||||
|     void notify_server_did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style); | ||||
|     void notify_server_did_output_js_console_message(i32 message_index); | ||||
|     void notify_server_did_get_js_console_messages(i32 start_index, Vector<String> const& message_types, Vector<String> const& messages); | ||||
|     void notify_server_did_change_favicon(const Gfx::Bitmap& favicon); | ||||
|     String notify_server_did_request_cookie(Badge<WebContentClient>, const URL& url, Cookie::Source source); | ||||
|     void notify_server_did_set_cookie(Badge<WebContentClient>, const URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source); | ||||
|     String notify_server_did_request_cookie(Badge<WebContentClient>, const AK::URL& url, Cookie::Source source); | ||||
|     void notify_server_did_set_cookie(Badge<WebContentClient>, const AK::URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source); | ||||
| 
 | ||||
| private: | ||||
|     OutOfProcessWebView(); | ||||
|  | @ -108,7 +108,7 @@ private: | |||
| 
 | ||||
|     void handle_web_content_process_crash(); | ||||
| 
 | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
| 
 | ||||
|     struct ClientState { | ||||
|         RefPtr<WebContentClient> client; | ||||
|  |  | |||
|  | @ -311,12 +311,12 @@ void BrowsingContext::unregister_viewport_client(ViewportClient& client) | |||
|     VERIFY(was_removed); | ||||
| } | ||||
| 
 | ||||
| void BrowsingContext::register_frame_nesting(URL const& url) | ||||
| void BrowsingContext::register_frame_nesting(AK::URL const& url) | ||||
| { | ||||
|     m_frame_nesting_levels.ensure(url)++; | ||||
| } | ||||
| 
 | ||||
| bool BrowsingContext::is_frame_nesting_allowed(URL const& url) const | ||||
| bool BrowsingContext::is_frame_nesting_allowed(AK::URL const& url) const | ||||
| { | ||||
|     return m_frame_nesting_levels.get(url).value_or(0) < 3; | ||||
| } | ||||
|  |  | |||
|  | @ -93,11 +93,11 @@ public: | |||
| 
 | ||||
|     void did_edit(Badge<EditEventHandler>); | ||||
| 
 | ||||
|     void register_frame_nesting(URL const&); | ||||
|     bool is_frame_nesting_allowed(URL const&) const; | ||||
|     void register_frame_nesting(AK::URL const&); | ||||
|     bool is_frame_nesting_allowed(AK::URL const&) const; | ||||
| 
 | ||||
|     void set_frame_nesting_levels(HashMap<URL, size_t> frame_nesting_levels) { m_frame_nesting_levels = move(frame_nesting_levels); }; | ||||
|     HashMap<URL, size_t> const& frame_nesting_levels() const { return m_frame_nesting_levels; } | ||||
|     void set_frame_nesting_levels(HashMap<AK::URL, size_t> frame_nesting_levels) { m_frame_nesting_levels = move(frame_nesting_levels); }; | ||||
|     HashMap<AK::URL, size_t> const& frame_nesting_levels() const { return m_frame_nesting_levels; } | ||||
| 
 | ||||
|     DOM::Document* container_document(); | ||||
|     DOM::Document const* container_document() const; | ||||
|  | @ -123,7 +123,7 @@ private: | |||
| 
 | ||||
|     HashTable<ViewportClient*> m_viewport_clients; | ||||
| 
 | ||||
|     HashMap<URL, size_t> m_frame_nesting_levels; | ||||
|     HashMap<AK::URL, size_t> m_frame_nesting_levels; | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -31,7 +31,7 @@ void Page::set_focused_browsing_context(Badge<EventHandler>, BrowsingContext& br | |||
|     m_focused_context = browsing_context.make_weak_ptr(); | ||||
| } | ||||
| 
 | ||||
| void Page::load(const URL& url) | ||||
| void Page::load(const AK::URL& url) | ||||
| { | ||||
|     top_level_browsing_context().loader().load(url, FrameLoader::Type::Navigation); | ||||
| } | ||||
|  | @ -41,7 +41,7 @@ void Page::load(LoadRequest& request) | |||
|     top_level_browsing_context().loader().load(request, FrameLoader::Type::Navigation); | ||||
| } | ||||
| 
 | ||||
| void Page::load_html(const StringView& html, const URL& url) | ||||
| void Page::load_html(const StringView& html, const AK::URL& url) | ||||
| { | ||||
|     top_level_browsing_context().loader().load_html(html, url); | ||||
| } | ||||
|  |  | |||
|  | @ -41,10 +41,10 @@ public: | |||
| 
 | ||||
|     void set_focused_browsing_context(Badge<EventHandler>, BrowsingContext&); | ||||
| 
 | ||||
|     void load(const URL&); | ||||
|     void load(const AK::URL&); | ||||
|     void load(LoadRequest&); | ||||
| 
 | ||||
|     void load_html(const StringView&, const URL&); | ||||
|     void load_html(const StringView&, const AK::URL&); | ||||
| 
 | ||||
|     bool handle_mouseup(const Gfx::IntPoint&, unsigned button, unsigned modifiers); | ||||
|     bool handle_mousedown(const Gfx::IntPoint&, unsigned button, unsigned modifiers); | ||||
|  | @ -74,18 +74,18 @@ public: | |||
|     virtual Gfx::IntRect screen_rect() const = 0; | ||||
|     virtual void page_did_set_document_in_top_level_browsing_context(DOM::Document*) { } | ||||
|     virtual void page_did_change_title(const String&) { } | ||||
|     virtual void page_did_start_loading(const URL&) { } | ||||
|     virtual void page_did_finish_loading(const URL&) { } | ||||
|     virtual void page_did_start_loading(const AK::URL&) { } | ||||
|     virtual void page_did_finish_loading(const AK::URL&) { } | ||||
|     virtual void page_did_change_selection() { } | ||||
|     virtual void page_did_request_cursor_change(Gfx::StandardCursor) { } | ||||
|     virtual void page_did_request_context_menu(const Gfx::IntPoint&) { } | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_request_image_context_menu(const Gfx::IntPoint&, const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers, const Gfx::Bitmap*) { } | ||||
|     virtual void page_did_click_link(const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_middle_click_link(const URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_request_link_context_menu(const Gfx::IntPoint&, const AK::URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_request_image_context_menu(const Gfx::IntPoint&, const AK::URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers, const Gfx::Bitmap*) { } | ||||
|     virtual void page_did_click_link(const AK::URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_middle_click_link(const AK::URL&, [[maybe_unused]] const String& target, [[maybe_unused]] unsigned modifiers) { } | ||||
|     virtual void page_did_enter_tooltip_area(const Gfx::IntPoint&, const String&) { } | ||||
|     virtual void page_did_leave_tooltip_area() { } | ||||
|     virtual void page_did_hover_link(const URL&) { } | ||||
|     virtual void page_did_hover_link(const AK::URL&) { } | ||||
|     virtual void page_did_unhover_link() { } | ||||
|     virtual void page_did_invalidate(const Gfx::IntRect&) { } | ||||
|     virtual void page_did_change_favicon(const Gfx::Bitmap&) { } | ||||
|  | @ -96,8 +96,8 @@ public: | |||
|     virtual void page_did_request_alert(const String&) { } | ||||
|     virtual bool page_did_request_confirm(const String&) { return false; } | ||||
|     virtual String page_did_request_prompt(const String&, const String&) { return {}; } | ||||
|     virtual String page_did_request_cookie(const URL&, Cookie::Source) { return {}; } | ||||
|     virtual void page_did_set_cookie(const URL&, const Cookie::ParsedCookie&, Cookie::Source) { } | ||||
|     virtual String page_did_request_cookie(const AK::URL&, Cookie::Source) { return {}; } | ||||
|     virtual void page_did_set_cookie(const AK::URL&, const Cookie::ParsedCookie&, Cookie::Source) { } | ||||
| 
 | ||||
| protected: | ||||
|     virtual ~PageClient() = default; | ||||
|  |  | |||
							
								
								
									
										27
									
								
								Userland/Libraries/LibWeb/URL/URL.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								Userland/Libraries/LibWeb/URL/URL.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,27 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org> | ||||
|  * Copyright (c) 2021, the SerenityOS developers. | ||||
|  * | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  */ | ||||
| 
 | ||||
| #include <AK/StringBuilder.h> | ||||
| #include <AK/URL.h> | ||||
| #include <LibWeb/URL/URL.h> | ||||
| 
 | ||||
| namespace Web::URL { | ||||
| 
 | ||||
| String url_encode(const Vector<QueryParam>& pairs, AK::URL::PercentEncodeSet percent_encode_set) | ||||
| { | ||||
|     StringBuilder builder; | ||||
|     for (size_t i = 0; i < pairs.size(); ++i) { | ||||
|         builder.append(AK::URL::percent_encode(pairs[i].name, percent_encode_set)); | ||||
|         builder.append('='); | ||||
|         builder.append(AK::URL::percent_encode(pairs[i].value, percent_encode_set)); | ||||
|         if (i != pairs.size() - 1) | ||||
|             builder.append('&'); | ||||
|     } | ||||
|     return builder.to_string(); | ||||
| } | ||||
| 
 | ||||
| } | ||||
							
								
								
									
										21
									
								
								Userland/Libraries/LibWeb/URL/URL.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								Userland/Libraries/LibWeb/URL/URL.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2021, Idan Horowitz <idan.horowitz@serenityos.org> | ||||
|  * Copyright (c) 2021, the SerenityOS developers. | ||||
|  * | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <AK/String.h> | ||||
| #include <AK/Vector.h> | ||||
| 
 | ||||
| namespace Web::URL { | ||||
| 
 | ||||
| struct QueryParam { | ||||
|     String name; | ||||
|     String value; | ||||
| }; | ||||
| String url_encode(const Vector<QueryParam>&, AK::URL::PercentEncodeSet); | ||||
| 
 | ||||
| } | ||||
|  | @ -1,26 +0,0 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2020, the SerenityOS developers. | ||||
|  * | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  */ | ||||
| 
 | ||||
| #include <AK/StringBuilder.h> | ||||
| #include <AK/URL.h> | ||||
| #include <LibWeb/URLEncoder.h> | ||||
| 
 | ||||
| namespace Web { | ||||
| 
 | ||||
| String urlencode(const Vector<URLQueryParam>& pairs, URL::PercentEncodeSet percent_encode_set) | ||||
| { | ||||
|     StringBuilder builder; | ||||
|     for (size_t i = 0; i < pairs.size(); ++i) { | ||||
|         builder.append(URL::percent_encode(pairs[i].name, percent_encode_set)); | ||||
|         builder.append('='); | ||||
|         builder.append(URL::percent_encode(pairs[i].value, percent_encode_set)); | ||||
|         if (i != pairs.size() - 1) | ||||
|             builder.append('&'); | ||||
|     } | ||||
|     return builder.to_string(); | ||||
| } | ||||
| 
 | ||||
| } | ||||
|  | @ -1,21 +0,0 @@ | |||
| /*
 | ||||
|  * Copyright (c) 2020, the SerenityOS developers. | ||||
|  * | ||||
|  * SPDX-License-Identifier: BSD-2-Clause | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| #include <AK/String.h> | ||||
| #include <AK/Vector.h> | ||||
| 
 | ||||
| namespace Web { | ||||
| 
 | ||||
| struct URLQueryParam { | ||||
|     String name; | ||||
|     String value; | ||||
| }; | ||||
| 
 | ||||
| String urlencode(const Vector<URLQueryParam>&, URL::PercentEncodeSet); | ||||
| 
 | ||||
| } | ||||
|  | @ -28,7 +28,7 @@ void WebContentClient::did_paint(const Gfx::IntRect&, i32 bitmap_id) | |||
|     m_view.notify_server_did_paint({}, bitmap_id); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_finish_loading(URL const& url) | ||||
| void WebContentClient::did_finish_loading(AK::URL const& url) | ||||
| { | ||||
|     m_view.notify_server_did_finish_loading({}, url); | ||||
| } | ||||
|  | @ -94,7 +94,7 @@ void WebContentClient::did_leave_tooltip_area() | |||
|     m_view.notify_server_did_leave_tooltip_area({}); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_hover_link(URL const& url) | ||||
| void WebContentClient::did_hover_link(AK::URL const& url) | ||||
| { | ||||
|     dbgln_if(SPAM_DEBUG, "handle: WebContentClient::DidHoverLink! url={}", url); | ||||
|     m_view.notify_server_did_hover_link({}, url); | ||||
|  | @ -106,17 +106,17 @@ void WebContentClient::did_unhover_link() | |||
|     m_view.notify_server_did_unhover_link({}); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_click_link(URL const& url, String const& target, unsigned modifiers) | ||||
| void WebContentClient::did_click_link(AK::URL const& url, String const& target, unsigned modifiers) | ||||
| { | ||||
|     m_view.notify_server_did_click_link({}, url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_middle_click_link(URL const& url, String const& target, unsigned modifiers) | ||||
| void WebContentClient::did_middle_click_link(AK::URL const& url, String const& target, unsigned modifiers) | ||||
| { | ||||
|     m_view.notify_server_did_middle_click_link({}, url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_start_loading(URL const& url) | ||||
| void WebContentClient::did_start_loading(AK::URL const& url) | ||||
| { | ||||
|     m_view.notify_server_did_start_loading({}, url); | ||||
| } | ||||
|  | @ -126,17 +126,17 @@ void WebContentClient::did_request_context_menu(Gfx::IntPoint const& content_pos | |||
|     m_view.notify_server_did_request_context_menu({}, content_position); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_request_link_context_menu(Gfx::IntPoint const& content_position, URL const& url, String const& target, unsigned modifiers) | ||||
| void WebContentClient::did_request_link_context_menu(Gfx::IntPoint const& content_position, AK::URL const& url, String const& target, unsigned modifiers) | ||||
| { | ||||
|     m_view.notify_server_did_request_link_context_menu({}, content_position, url, target, modifiers); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_request_image_context_menu(Gfx::IntPoint const& content_position, URL const& url, String const& target, unsigned modifiers, Gfx::ShareableBitmap const& bitmap) | ||||
| void WebContentClient::did_request_image_context_menu(Gfx::IntPoint const& content_position, AK::URL const& url, String const& target, unsigned modifiers, Gfx::ShareableBitmap const& bitmap) | ||||
| { | ||||
|     m_view.notify_server_did_request_image_context_menu({}, content_position, url, target, modifiers, bitmap); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_get_source(URL const& url, String const& source) | ||||
| void WebContentClient::did_get_source(AK::URL const& url, String const& source) | ||||
| { | ||||
|     m_view.notify_server_did_get_source(url, source); | ||||
| } | ||||
|  | @ -185,12 +185,12 @@ void WebContentClient::did_change_favicon(Gfx::ShareableBitmap const& favicon) | |||
|     m_view.notify_server_did_change_favicon(*favicon.bitmap()); | ||||
| } | ||||
| 
 | ||||
| Messages::WebContentClient::DidRequestCookieResponse WebContentClient::did_request_cookie(URL const& url, u8 source) | ||||
| Messages::WebContentClient::DidRequestCookieResponse WebContentClient::did_request_cookie(AK::URL const& url, u8 source) | ||||
| { | ||||
|     return m_view.notify_server_did_request_cookie({}, url, static_cast<Cookie::Source>(source)); | ||||
| } | ||||
| 
 | ||||
| void WebContentClient::did_set_cookie(URL const& url, Web::Cookie::ParsedCookie const& cookie, u8 source) | ||||
| void WebContentClient::did_set_cookie(AK::URL const& url, Web::Cookie::ParsedCookie const& cookie, u8 source) | ||||
| { | ||||
|     m_view.notify_server_did_set_cookie({}, url, cookie, static_cast<Cookie::Source>(source)); | ||||
| } | ||||
|  |  | |||
|  | @ -30,7 +30,7 @@ private: | |||
|     virtual void die() override; | ||||
| 
 | ||||
|     virtual void did_paint(Gfx::IntRect const&, i32) override; | ||||
|     virtual void did_finish_loading(URL const&) override; | ||||
|     virtual void did_finish_loading(AK::URL const&) override; | ||||
|     virtual void did_invalidate_content_rect(Gfx::IntRect const&) override; | ||||
|     virtual void did_change_selection() override; | ||||
|     virtual void did_request_cursor_change(i32) override; | ||||
|  | @ -41,15 +41,15 @@ private: | |||
|     virtual void did_request_scroll_into_view(Gfx::IntRect const&) override; | ||||
|     virtual void did_enter_tooltip_area(Gfx::IntPoint const&, String const&) override; | ||||
|     virtual void did_leave_tooltip_area() override; | ||||
|     virtual void did_hover_link(URL const&) override; | ||||
|     virtual void did_hover_link(AK::URL const&) override; | ||||
|     virtual void did_unhover_link() override; | ||||
|     virtual void did_click_link(URL const&, String const&, unsigned) override; | ||||
|     virtual void did_middle_click_link(URL const&, String const&, unsigned) override; | ||||
|     virtual void did_start_loading(URL const&) override; | ||||
|     virtual void did_click_link(AK::URL const&, String const&, unsigned) override; | ||||
|     virtual void did_middle_click_link(AK::URL const&, String const&, unsigned) override; | ||||
|     virtual void did_start_loading(AK::URL const&) override; | ||||
|     virtual void did_request_context_menu(Gfx::IntPoint const&) override; | ||||
|     virtual void did_request_link_context_menu(Gfx::IntPoint const&, URL const&, String const&, unsigned) override; | ||||
|     virtual void did_request_image_context_menu(Gfx::IntPoint const&, URL const&, String const&, unsigned, Gfx::ShareableBitmap const&) override; | ||||
|     virtual void did_get_source(URL const&, String const&) override; | ||||
|     virtual void did_request_link_context_menu(Gfx::IntPoint const&, AK::URL const&, String const&, unsigned) override; | ||||
|     virtual void did_request_image_context_menu(Gfx::IntPoint const&, AK::URL const&, String const&, unsigned, Gfx::ShareableBitmap const&) override; | ||||
|     virtual void did_get_source(AK::URL const&, String const&) override; | ||||
|     virtual void did_get_dom_tree(String const&) override; | ||||
|     virtual void did_get_dom_node_properties(i32 node_id, String const& specified_style, String const& computed_style) override; | ||||
|     virtual void did_output_js_console_message(i32 message_index) override; | ||||
|  | @ -58,8 +58,8 @@ private: | |||
|     virtual void did_request_alert(String const&) override; | ||||
|     virtual Messages::WebContentClient::DidRequestConfirmResponse did_request_confirm(String const&) override; | ||||
|     virtual Messages::WebContentClient::DidRequestPromptResponse did_request_prompt(String const&, String const&) override; | ||||
|     virtual Messages::WebContentClient::DidRequestCookieResponse did_request_cookie(URL const&, u8) override; | ||||
|     virtual void did_set_cookie(URL const&, Web::Cookie::ParsedCookie const&, u8) override; | ||||
|     virtual Messages::WebContentClient::DidRequestCookieResponse did_request_cookie(AK::URL const&, u8) override; | ||||
|     virtual void did_set_cookie(AK::URL const&, Web::Cookie::ParsedCookie const&, u8) override; | ||||
| 
 | ||||
|     OutOfProcessWebView& m_view; | ||||
| }; | ||||
|  |  | |||
|  | @ -15,24 +15,24 @@ namespace Web { | |||
| class WebViewHooks { | ||||
| public: | ||||
|     Function<void(const Gfx::IntPoint& screen_position)> on_context_menu_request; | ||||
|     Function<void(const URL&, const String& target, unsigned modifiers)> on_link_click; | ||||
|     Function<void(const URL&, const Gfx::IntPoint& screen_position)> on_link_context_menu_request; | ||||
|     Function<void(const URL&, const Gfx::IntPoint& screen_position, const Gfx::ShareableBitmap&)> on_image_context_menu_request; | ||||
|     Function<void(const URL&, const String& target, unsigned modifiers)> on_link_middle_click; | ||||
|     Function<void(const URL&)> on_link_hover; | ||||
|     Function<void(const AK::URL&, const String& target, unsigned modifiers)> on_link_click; | ||||
|     Function<void(const AK::URL&, const Gfx::IntPoint& screen_position)> on_link_context_menu_request; | ||||
|     Function<void(const AK::URL&, const Gfx::IntPoint& screen_position, const Gfx::ShareableBitmap&)> on_image_context_menu_request; | ||||
|     Function<void(const AK::URL&, const String& target, unsigned modifiers)> on_link_middle_click; | ||||
|     Function<void(const AK::URL&)> on_link_hover; | ||||
|     Function<void(const String&)> on_title_change; | ||||
|     Function<void(const URL&)> on_load_start; | ||||
|     Function<void(const URL&)> on_load_finish; | ||||
|     Function<void(const AK::URL&)> on_load_start; | ||||
|     Function<void(const AK::URL&)> on_load_finish; | ||||
|     Function<void(const Gfx::Bitmap&)> on_favicon_change; | ||||
|     Function<void(const URL&)> on_url_drop; | ||||
|     Function<void(const AK::URL&)> on_url_drop; | ||||
|     Function<void(DOM::Document*)> on_set_document; | ||||
|     Function<void(const URL&, const String&)> on_get_source; | ||||
|     Function<void(const AK::URL&, const String&)> on_get_source; | ||||
|     Function<void(const String&)> on_get_dom_tree; | ||||
|     Function<void(i32 node_id, String const& specified_style, String const& computed_style)> on_get_dom_node_properties; | ||||
|     Function<void(i32 message_id)> on_js_console_new_message; | ||||
|     Function<void(i32 start_index, Vector<String> const& message_types, Vector<String> const& messages)> on_get_js_console_messages; | ||||
|     Function<String(const URL& url, Cookie::Source source)> on_get_cookie; | ||||
|     Function<void(const URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source)> on_set_cookie; | ||||
|     Function<String(const AK::URL& url, Cookie::Source source)> on_get_cookie; | ||||
|     Function<void(const AK::URL& url, const Cookie::ParsedCookie& cookie, Cookie::Source source)> on_set_cookie; | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -167,7 +167,7 @@ DOM::ExceptionOr<void> XMLHttpRequest::send() | |||
| 
 | ||||
|     // FIXME: If body is not null, then:
 | ||||
| 
 | ||||
|     URL request_url = m_window->associated_document().parse_url(m_url.to_string()); | ||||
|     AK::URL request_url = m_window->associated_document().parse_url(m_url.to_string()); | ||||
|     dbgln("XHR send from {} to {}", m_window->associated_document().url(), request_url); | ||||
| 
 | ||||
|     // TODO: Add support for preflight requests to support CORS requests
 | ||||
|  |  | |||
|  | @ -77,7 +77,7 @@ private: | |||
|     bool m_send { false }; | ||||
| 
 | ||||
|     String m_method; | ||||
|     URL m_url; | ||||
|     AK::URL m_url; | ||||
| 
 | ||||
|     HashMap<String, String, CaseInsensitiveStringTraits> m_request_headers; | ||||
|     HashMap<String, String, CaseInsensitiveStringTraits> m_response_headers; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Idan Horowitz
						Idan Horowitz