summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-05-04LibX86: Simplify "register index to string" functions a bitAndreas Kling
2020-05-04LibX86: Remove accidental camelCase in some namesAndreas Kling
2020-05-04LibWeb: Add basic support for redirectsLinus Groh
2020-05-03LibTextCodec: Start fleshing out a simple text codec libraryAndreas Kling
We're starting with a very basic decoding API and only ISO-8859-1 and UTF-8 decoding (and UTF-8 decoding is really a no-op since String is expected to be UTF-8.)
2020-05-03LibWeb: Handle iso-8859-1 web content a little bit betterAndreas Kling
We now look at the HTTP response headers for a Content-Type header and try to parse it if present to find the text encoding. If the text encoding is iso-8859-1, we turn all non-ASCII characters into question marks. This makes Swedish Google load on my machine! :^)
2020-05-03ProtocolServer: Pass HTTP response headers to the clientAndreas Kling
We now store the response headers in a download object on the protocol server side and pass it to the client when finishing up a download. Response headers are passed as an IPC::Dictionary. :^)
2020-05-03LibIPC: Add a simple IPC::Dictionary type (String key -> String value)Andreas Kling
2020-05-03LibCrypto: Manage vector sizing manually in performance-critical placesAndreas Kling
Use Vector::resize_and_keep_capacity() to resize BigInt vectors to just the right size without risking deallocation. Then do direct indexed accesses to the underlying words (or use memset/memcpy.) This gives a ~40% speed-up on the RSA tests in "test-crypto -t pk" :^)
2020-05-03LibTLS: Put some debug spam behind an #ifdefAndreas Kling
2020-05-03LibHTTP: Put some debug spam behind an #ifdefAndreas Kling
2020-05-03LibTLS: "Properly" handle the server dropping the connectionAnotherTest
Contrary to popular belief, not every implementation of TLS follows the specs. Some of them just drop the connection without sending a proper close_notify, and we should handle that gracefully.
2020-05-03LibCrypto: Added BigInteger 'division by u16' operatorDexesTTP
2020-05-03LibCrypto: Changed ModularFunctions to use non-allocating operationsDexesTTP
This change leads to between 10% and 35% performance improvement when executing the RSA decryption method. The main impact is to drastically reduce the number of allocations done in this method from around 50% of the profile hits to less than 2%.
2020-05-03LibCrypto: Added static non-allocating UnsignedBigInteger operatorsDexesTTP
This changes the plus, minus, etc... operators from UnsignedBigInteger to use a static helper method. The static methods do not allocate any variables, instead all the required BigInteger output and temporary variables are required on call as parameters. This change already optimizes the number of allocations in complex operations such as multiply or divide, by having a single allocation per call (instead of one per loop). This new API also provides a way to limit the number of allocations for complex computations in other parts of the code. This is done by using these helpers in any place that currently makes use of the standard operators.
2020-05-03LibCrypto: Small fixes in BigInteger & test-cryptoDexesTTP
2020-05-03ProtocolServer: Implement and handle download progressAnotherTest
Also updates `pro` to display download progress and speed on stderr
2020-05-03LibJS: Support empty statementsLinus Groh
We already skipped random semicolons in Parser::parse_program(), but now they are properly matched and parsed as empty statements - and thus recognized as a valid body of an if / else / while / ... statement.
2020-05-03LibCrypto: Correct RFC5246 un-padding behaviourAnotherTest
The decrypted data is legally allowed to have any amount of padding, so long as it is block-aligned, we should not assume that padding bytes fall inside the same block, or that an entire block cannot be padding. Fixes #2072
2020-05-03LibJS: Set name of anonymous functions during assignmentLinus Groh
2020-05-03LibJS: Add function default argumentsMatthew Olsson
Adds the ability for function arguments to have default values. This works for standard functions as well as arrow functions. Default values are not printed in a <function>.toString() call, as nodes cannot print their source string representation.
2020-05-02WindowServer+LibGUI: Support the 4th and 5th mouse buttonsAndreas Kling
We'll call the "Back" and "Forward" since that's what they are normally mapped to in some other systems.
2020-05-02LibJS: Fix build (GlobalObject::add_constructor not visible in LibWeb)Andreas Kling
2020-05-02LibJS: Add "name" property to functionsLinus Groh
2020-05-02LibJS: Set correct "length" of Object constructorLinus Groh
2020-05-02LibJS: Minor formatting changes in Function.cppLinus Groh
2020-05-02LibJS: Name functions created by "Function" "anonymous"Linus Groh
...as it is supposed to be.
2020-05-02LibGUI: Properly remove auto-destroyed child windows from reified_windows.Emilio Cobos Álvarez
I just spotted this while I saw you writing this code :-)
2020-05-02LibHTTP: Trim received data to Content-LengthAnotherTest
Apparently servers will feel free to pad their response if they send one that contains a content-length field. We should not assume that the entirety of the response is valid data.
2020-05-02LibIPC: Abort on connection failureSergey Bugaev
...instead of looping for (effectively) ever. Fixes https://github.com/SerenityOS/serenity/issues/1869
2020-05-02LibGUI: FilePicker: Set initial sort to name instead of undefinedBen Wiederhake
Well, technically the initial sort order is 'ascending inode'. However, that is unpredictable for the user. In the rare case it is desired, it can be re-enabled by revealing the inode column, and then sorting by it, in the TableView.
2020-05-02LibGUI: Fix off-by-one in ScrollableWidgetBen Wiederhake
This was most notable in the widgets TextBox and TextEditor (and therefore also ComboBox and ColorInput), because there the cursor regularly landed just one pixel outside the visible region when going to the right.
2020-05-02LibGUI: FilePicker: Make icon view button initially checkedBen Wiederhake
2020-05-02LibGUI: The UI calls it 'Icon view', fix the name in the codeBen Wiederhake
2020-05-02LibGUI: FilePicker: Populate location textboxBen Wiederhake
2020-05-02LibGUI: FilePicker: Fix position of location textboxBen Wiederhake
2020-05-02LibGUI: Display hidden columns as hiddenBen Wiederhake
Until now, hidden columns were displayed as visible in the context menu. An easy way to reproduce this is: - Open the TextEditor - Ctrl-O to open the file selector - Switch to table view - Right-click the header Expected behavior: Hidden columns like 'Owner' and 'Group' should not have a checkmark, because they are hidden. Actual behavior: They did have a checkmark. Clicking on it to 'hide' the already hidden column removed the checkmark, but was a no-op to the table view. This commit fixes this behavior, by correctly initializing the context menu, and properly updating the context menu if external code calls 'set_column_hidden' later.
2020-05-02LibGUI: Remove unneeded access rightsBen Wiederhake
2020-05-02LibC: added F_SETLK and SO_TYPE defsEd Rochenski
2020-05-02WindowServer+LibGUI+Taskbar: Don't include frameless windows in listsAndreas Kling
Frameless windows don't need to show up in the taskbar or the switcher.
2020-05-02LibCrypto: Make UnsignedBigInteger as fast as architecturally possibleAnotherTest
This commit attempts to make UnsignedBigInteger as fast as possible without changing the underlaying architecture. This effort involves - Preallocating space for vector operations - Avoiding calls to computationally expensive functions - Inlining or flattening functions (sensibly)
2020-05-02LibCrypto: Tweak ::prune_padding() to be more intuitive with loop boundsAnotherTest
2020-05-02LibTLS: Implement build_alert()AnotherTest
2020-05-02LibCrypto: Rename UnsignedBigInteger APIs to match their actionsAnotherTest
2020-05-02LibCrypto: Preallocate capacity and cache trimmed_length() in UnsignedBigIntegerAnotherTest
2020-05-02LibTLS: Split TLSv12 to sensible categorical filesAnotherTest
This commit splits the TLSv12 file into multiple files, and also removes some magic values, to make the code less horrible. :^)
2020-05-02LibTLS: Switch to Hash::Manager for hashing and add SHA1AnotherTest
Now we can talk to google.com
2020-05-02LibCrypto: Add a Hash::Manager that can act as any one of the hashesAnotherTest
2020-05-02LibCrypto: Implement SHA1 Hash FunctionAnotherTest
2020-05-02LibCrypto: Ensure that EME padding does not contain zerosAnotherTest
With this fix, we can now reliably open TLS connections!
2020-05-02LibCrypto+LibTLS: Reformat everythingAnotherTest
I have no idea how I'll squash _this_ one...