1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:27:44 +00:00
serenity/Userland/Libraries/LibWeb
Max Wipfli f808279769 LibWeb: Implement encoding sniffing algorithm
This patch implements the HTML specification's "encoding sniffing
algorithm", which is used when no encoding can be obtained from the
Content-Type header (either because it doesn't contain a charset=...)
value or the file has not been opened via HTTP (as with local files).

It also modifies the creator of the HTMLDocumentParser to use the new
HTMLDocumentParser::create_with_uncertain_encoding static method, which
runs the encoding sniffing algorithm before instantiating the parser.

This now allows us to load local HTML pages (or remote pages without a
charset specified in the 'Content-Type' header) with a non-UTF-8
encoding such as 'windows-1252'. This would previously crash the
browser. :^)
2021-05-18 21:02:07 +02:00
..
Bindings LibWeb: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
CodeGenerators LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
Cookie Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CSS LibWeb: Resolve 2-part and 3-part border-color values 2021-05-17 23:24:32 +02:00
DOM LibWeb: Change Document's m_encoding to Optional<String> 2021-05-18 21:02:07 +02:00
DumpLayoutTree Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
HighResolutionTime Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
HTML LibWeb: Implement encoding sniffing algorithm 2021-05-18 21:02:07 +02:00
Layout LibWeb: Propagate body background properties to root HTML element 2021-05-13 16:16:25 +02:00
Loader LibWeb: Implement encoding sniffing algorithm 2021-05-18 21:02:07 +02:00
NavigationTiming Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Page LibWeb: Make frames nesting-aware and disallow deep nesting 2021-05-07 22:34:34 +02:00
Painting LibWeb: Paint an element's foreground before painting its children 2021-05-11 18:03:21 +02:00
Scripts Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
SVG Userland: Move non-standard math constants from math.h 2021-04-27 23:06:16 +02:00
Tests LibWeb: Implement test-web in terms of LibTest/JavaScriptTestRunner 2021-05-18 18:48:15 +01:00
UIEvents AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
XHR AK+Userland: Remove nullability feature for the ByteBuffer type 2021-05-16 17:49:42 +02:00
CMakeLists.txt LibWeb: Implement encoding sniffing algorithm 2021-05-18 21:02:07 +02:00
DOMTreeModel.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DOMTreeModel.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
Dump.cpp LibWeb: Implement :nth-last-child pseudo-class 2021-05-11 21:17:16 +01:00
Dump.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FontCache.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FontCache.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibWeb: Add WebSocket bindings 2021-04-25 19:04:34 +02:00
InProcessWebView.cpp LibGUI: Rename ScrollableWidget => AbstractScrollableWidget 2021-05-03 21:03:13 +02:00
InProcessWebView.h LibGUI: Rename ScrollableWidget => AbstractScrollableWidget 2021-05-03 21:03:13 +02:00
LayoutTreeModel.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LayoutTreeModel.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
Namespace.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Namespace.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Origin.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
OutOfProcessWebView.cpp Userland: Use snake case names in .ipc files 2021-05-03 21:14:40 +02:00
OutOfProcessWebView.h LibGUI: Rename ScrollableWidget => AbstractScrollableWidget 2021-05-03 21:03:13 +02:00
QualifiedName.h LibWeb: Use HTML-uppercased qualified name for the Element node name 2021-05-04 23:24:03 +01:00
StylePropertiesModel.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StylePropertiesModel.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
TreeNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
URLEncoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
URLEncoder.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WebContentClient.cpp Userland: Use snake case names in .ipc files 2021-05-03 21:14:40 +02:00
WebContentClient.h Userland: Use snake case names in .ipc files 2021-05-03 21:14:40 +02:00
WebViewHooks.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00