1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 21:08:12 +00:00
serenity/Userland/Applications/Spreadsheet
Karol Kosek eb41f0144b AK: Decode data URLs to separate class (and parse like every other URL)
Parsing 'data:' URLs took it's own route. It never set standard URL
fields like path, query or fragment (except for scheme) and instead
gave us separate methods called `data_payload()`, `data_mime_type()`,
and `data_payload_is_base64()`.

Because parsing 'data:' didn't use standard fields, running the
following JS code:

    new URL('#a', 'data:text/plain,hello').toString()

not only cleared the path as URLParser doesn't check for data from
data_payload() function (making the result be 'data:#a'), but it also
crashes the program because we forbid having an empty MIME type when we
serialize to string.

With this change, 'data:' URLs will be parsed like every other URLs.
To decode the 'data:' URL contents, one needs to call process_data_url()
on a URL, which will return a struct containing MIME type with already
decoded data! :^)
2023-08-01 14:19:05 +02:00
..
CellType AK: Remove StringBuilder::build() in favor of to_deprecated_string() 2023-01-27 20:38:49 +00:00
Readers LibCore: Rename File to DeprecatedFile 2023-02-13 00:50:07 +00:00
Tests Spreadsheet: Throw if lookup value doesn't exist and no default is given 2022-06-26 22:21:17 +01:00
Writers AK: Rename Stream::write_entire_buffer to Stream::write_until_depleted 2023-03-13 15:16:20 +00:00
Cell.cpp Spreadsheet: Add CellChange constructor for changes in type metadata 2023-04-29 12:09:08 +01:00
Cell.h Spreadsheet: Add CellChange constructor for changes in type metadata 2023-04-29 12:09:08 +01:00
CellSyntaxHighlighter.cpp LibJS: Make Error stack traces lazier 2023-05-28 10:03:11 +02:00
CellSyntaxHighlighter.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
CellTypeDialog.cpp LibGUI+Userland: Port Labels to String 2023-04-30 05:48:14 +02:00
CellTypeDialog.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
CMakeLists.txt Spreadsheet: Add list of recently-opened files 2023-04-03 21:16:26 +02:00
CondFormatting.gml Spreadsheet: Make conditional-formatting condition-list scrollable 2022-06-30 11:53:50 +02:00
ConditionalFormatting.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
CondView.gml Spreadsheet: Use new layout system 2022-06-30 11:51:25 +02:00
csv_export.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
csv_import.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
ExportDialog.cpp Applications+Demos+LibGUI: Migrate to fallible WizardDialogs and Pages 2023-06-09 17:21:43 +02:00
ExportDialog.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
HelpWindow.cpp AK: Decode data URLs to separate class (and parse like every other URL) 2023-08-01 14:19:05 +02:00
HelpWindow.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ImportDialog.cpp Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
ImportDialog.h Everywhere: Stop using NonnullRefPtrVector 2023-03-06 23:46:35 +01:00
JSIntegration.cpp LibJS: Make Object::internal_get() reveal the used property offset 2023-07-09 12:54:06 +02:00
JSIntegration.h LibJS: Make Object::internal_get() reveal the used property offset 2023-07-09 12:54:06 +02:00
main.cpp LibGUI: Make Application's construction fallible 2023-05-05 16:41:21 +01:00
Position.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
select_format_page.gml Userland: Replace empty GUI::Widgets in GML with GUI::Layout::Spacer 2022-09-29 08:31:15 -04:00
Spreadsheet.cpp AK: Serialize URL hosts with 'concept-host-serializer' 2023-07-31 05:18:51 +02:00
Spreadsheet.h Spreadsheet: Add CellChange constructor for changes in type metadata 2023-04-29 12:09:08 +01:00
SpreadsheetModel.cpp LibGUI+Userland: Propagate errors in Model::column_name() 2023-06-14 17:53:59 +02:00
SpreadsheetModel.h LibGUI+Userland: Propagate errors in Model::column_name() 2023-06-14 17:53:59 +02:00
SpreadsheetView.cpp Base+Userland: Apply Human Interface Guidelines to Object text 2023-05-23 05:59:49 +02:00
SpreadsheetView.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
SpreadsheetWidget.cpp Spreadsheet: Update cell colors interactively while picking 2023-07-24 11:30:54 +03:30
SpreadsheetWidget.h Spreadsheet: Propagate errors from SpreadsheetWidget::initialize_menubar 2023-04-03 21:16:26 +02:00
Workbook.cpp LibJS: Propagate errors from VM creation 2023-03-17 16:39:08 +00:00
Workbook.h Spreadsheet: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00