Преглед на файлове

LibWeb: Make `LoadRequest` headers case insensitive

leeight преди 2 години
родител
ревизия
1167fdb17a
променени са 2 файла, в които са добавени 3 реда и са изтрити 4 реда
  1. 0 1
      Userland/Libraries/LibWeb/Loader/FrameLoader.cpp
  2. 3 3
      Userland/Libraries/LibWeb/Loader/LoadRequest.h

+ 0 - 1
Userland/Libraries/LibWeb/Loader/FrameLoader.cpp

@@ -229,7 +229,6 @@ bool FrameLoader::load(LoadRequest& request, Type type)
     //              -> "frame"
     //              -> "frame"
     //              -> "iframe"
     //              -> "iframe"
     //                   `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`
     //                   `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8`
-    // FIXME: This should be case-insensitive.
     if (!request.headers().contains("Accept"))
     if (!request.headers().contains("Accept"))
         request.set_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
         request.set_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
 
 

+ 3 - 3
Userland/Libraries/LibWeb/Loader/LoadRequest.h

@@ -53,7 +53,7 @@ public:
     {
     {
         if (m_headers.size() != other.m_headers.size())
         if (m_headers.size() != other.m_headers.size())
             return false;
             return false;
-        for (auto& it : m_headers) {
+        for (auto const& it : m_headers) {
             auto jt = other.m_headers.find(it.key);
             auto jt = other.m_headers.find(it.key);
             if (jt == other.m_headers.end())
             if (jt == other.m_headers.end())
                 return false;
                 return false;
@@ -66,12 +66,12 @@ public:
     void set_header(String const& name, String const& value) { m_headers.set(name, value); }
     void set_header(String const& name, String const& value) { m_headers.set(name, value); }
     String header(String const& name) const { return m_headers.get(name).value_or({}); }
     String header(String const& name) const { return m_headers.get(name).value_or({}); }
 
 
-    HashMap<String, String> const& headers() const { return m_headers; }
+    HashMap<String, String, CaseInsensitiveStringTraits> const& headers() const { return m_headers; }
 
 
 private:
 private:
     AK::URL m_url;
     AK::URL m_url;
     String m_method { "GET" };
     String m_method { "GET" };
-    HashMap<String, String> m_headers;
+    HashMap<String, String, CaseInsensitiveStringTraits> m_headers;
     ByteBuffer m_body;
     ByteBuffer m_body;
     Core::ElapsedTimer m_load_timer;
     Core::ElapsedTimer m_load_timer;
     Optional<Page&> m_page;
     Optional<Page&> m_page;