summaryrefslogtreecommitdiff
path: root/Libraries
AgeCommit message (Collapse)Author
2020-05-21LibGUI: Replace ColumnMetadata::sortable => Model::is_column_sortable()Andreas Kling
Now there's only one thing left in ColumnMetadata: the initial width.
2020-05-21LibGUI: Add Model::Role::TextAlignment and remove from ColumnMetadataAndreas Kling
2020-05-21LibGUI: Models should always specify font via Model::Role::FontAndreas Kling
This gets rid of one field in ColumnData. The goal is to get rid of all fields and lose ColumnData entirely.
2020-05-21LibJS: Add Array.prototype.everyLuke
2020-05-21LibGUI: Always paint the cursor visible when focusing a TextEditorAndreas Kling
If the cursor happened to be blinking in the invisible state, it would take 500ms before we actually see the cursor in a newly focused editor widget. This patch makes it show up right away.
2020-05-21LibGUI: Focus the first focusable widget added to a windowAndreas Kling
It feels really awkward if nothing is focused when opening a window.
2020-05-21LibJS: Make Interpreter::call() this_value a required argumentLinus Groh
Right now the default is an empty value, which we accidentally exposed in set{Interval,Timeout}() by not providing a custom this value, which should't happen at all. Let's just make it a required argument instead.
2020-05-21LibWeb: Set window object as this value in set{Interval,Timeout}()Linus Groh
2020-05-21LibWeb: Ignore non-finite args in CanvasRenderingContext2D.{scale,translate}()Linus Groh
2020-05-21LibWeb: Enforce set{Interval,Timeout}() min interval of 0Linus Groh
2020-05-21LibWeb: Allow setInterval() with no intervalLinus Groh
2020-05-21LibWeb: Let various functions throw if not enough argumentsLinus Groh
...instead of handing out null / undefined / empty values.
2020-05-21LibWeb: Embrace Interpreter::{argument_count(), argument(index)}Linus Groh
2020-05-21LibWeb: Update the CSS prefix to -libwebSergey Bugaev
2020-05-21LibGUI: Move AbstractTableView::keydown_event() down to TableViewAndreas Kling
We can't really share this stuff with TreeView anyway, since tables and trees have very different spatial relationships between indexes.
2020-05-21LibGUI: Allow expand/collapse subtrees in TreeView with Alt+Left/RightAndreas Kling
This makes TreeView a lot more keyboard friendly.
2020-05-21LibWeb: Send User-Agent in HTTP requestsAndreas Kling
Coming soon to a Browser Market Share graph near you! :^)
2020-05-21ProtocolServer: Support request headersAndreas Kling
You can now pass a dictionary of request headers when starting a new download in ProtocolServer. The HTTP and HTTPS protocol will include the headers in their requests.
2020-05-21LibWeb: Parse " into '"'Andreas Kling
2020-05-21LibLine: Correctly track the completion start and endAnotherTest
To achieve this, the API was tweaked a bit to allow for easier tracking of completions. This API change is non-disruptive to any application that does not use anchored styles.
2020-05-21LibLine: Support applying styles to suggestionsAnotherTest
This commit also adds the concept of "anchored" styles, which are applied to a specific part of the line, and are tracked to always stay applied to that specific part. Inserting text in the middle of an anchored style extends it, and removing the styled substring causes the style to be removed as well.
2020-05-21LibWeb: Add CanvasRenderingContext2D.canvasLinus Groh
2020-05-21LibWeb: Let HTMLCanvasElement.getContext() return null for unknown typesLinus Groh
Currently we would assert. Also make it case sensitive.
2020-05-21LibHTTP: Handle chunk sizes that start with zeros correctlyAnotherTest
Apparently that's allowed and the RFC is just unclear about it. Some servers seem to zero-pad the chunk size for whatever reason, and previously, we interpreted that as the last chunk.
2020-05-21LibTLS: Do not call on_tls_finished until the client has read app dataAnotherTest
2020-05-21LibGfx: Font, extend fonts to 384 character to support LatinExtendedAHüseyin ASLITÜRK
2020-05-21LibGfx: Painter, extend fonts to 384 character to support LatinExtendedAHüseyin ASLITÜRK
Replace codepoint variable type from char to u32.
2020-05-21LibWeb: HTML Parser, handle html escaped charactersHüseyin ASLITÜRK
Convert HTML escaped (&#XXX;) characters to string.
2020-05-21LibGUI: FileSystemModel, markdown file icon for .md files.Hüseyin ASLITÜRK
2020-05-20Revert "AK+LibC: Move non-placement new/delete into LibC"Andreas Kling
This reverts commit 2c823473930121aecbacf0422c8372a0912e581b.
2020-05-20Revert "LibC: Implement Itanium C++ ABI for static variable guards"Andreas Kling
This reverts commit cdbbe14062ea49f9a9d9b0e5627aba9efd07659a.
2020-05-20Revert "Build: Include headers from LibC, LibM, and LibPthread with -isystem"Andreas Kling
This reverts commit c1eb744ff0a82cf6c8e3470ac10e2f417c7d9de2.
2020-05-20LibC: Claim some copyright for stdioSergey Bugaev
I've written a large part of the new stdio, so I'm (partly) to blame for it now.
2020-05-20LibC: Handle fgets(size = 0)Sergey Bugaev
I accidentally broke this in the recent rewrite. This reinstantiates the behavior implemented in https://github.com/SerenityOS/serenity/commit/65714685259d1ea4ba9d32bc41aee6fc8c56a645.
2020-05-20LibGUI: Add MessageBox question iconHüseyin ASLITÜRK
2020-05-20LibLine: Unify completion hooks and adapt its usersAnotherTest
LibLine should ultimately not care about what a "token" means in the context of its user, so force the user to split the buffer itself. This also allows the users to pick up contextual clues as well, since they have to lex the line themselves. This commit pacthes Shell and the JS repl to better handle completions, so certain wrong behaviours are now corrected as well: - JS repl can now complete "Object . getOw<tab>" - Shell can now complete "echo | ca<tab>" and paths inside strings
2020-05-20LibGUI: Replace up and down arrows with emojiHüseyin ASLITÜRK
2020-05-20LibGUI: Update copyright character in about dialogHüseyin ASLITÜRK
2020-05-20Build: Include headers from LibC, LibM, and LibPthread with -isystemAndrew Kaster
Make sure that userspace is always referencing "system" headers in a way that would build on target :). This means removing the explicit include_directories of Libraries/LibC in favor of having it export its headers as SYSTEM. Also remove a redundant include_directories of Libraries in the 'serenity build' part of the build script. It's already set at the top. This causes issues for the Kernel, and for crt0.o. These special cases are handled individually.
2020-05-20LibC: Implement Itanium C++ ABI for static variable guardsAndrew Kaster
This is __cxa_guard_acquire, __cxa_guard_release, and __cxa_guard_abort. We put these symbols in a 'fake' libstdc++ to trick gcc into thinking it has libstdc++. These symbols are necessary for C++ programs and not C programs, so, seems file. There's no way to tell gcc that, for example, the standard lib it should use is libc++ or libc. So, this is what we have for now. When threaded code enters a block that is trying to call the constructor for a block-scope static, the compiler will emit calls to these methods to handle the "call_once" nature of block-scope statics. The compiler creates a 64-bit guard variable, which it checks the first byte of to determine if the variable should be intialized or not. If the compiler-generated code reads that byte as a 0, it will call __cxa_guard_acquire to try and be the thread to call the constructor for the static variable. If the first byte is 1, it will assume that the variable's constructor was called, and go on to access it. __cxa_guard_acquire uses one of the 7 implementation defined bytes of the guard variable as an atomic 8 bit variable. To control a state machine that lets each entering thread know if they gained 'initialization rights', someone is working on the varaible, someone is working on the varaible and there's at least one thread waiting for it to be intialized, or if the variable was initialized and it's time to access it. We only store a 1 to the byte the compiler looks at in __cxa_guard_release, and use a futex to handle waiting.
2020-05-20AK+LibC: Move non-placement new/delete into LibCAndrew Kaster
This allows operator new and operator delete to be available to anyone that links -lc (everyone) rather than just people that include kmalloc.h (almost no one).
2020-05-20LibC: Rewrite stdioSergey Bugaev
The new version uses buffering much more prominently, and hopefully performs better. It also uses something resembling C++ rather than plain C.
2020-05-20Kernel+LibC: Switch isatty() to use a fcntl()Sergey Bugaev
We would want it to work with only stdio pledged.
2020-05-20LibTLS: Flush some packets as soon as more packets are writtenAnotherTest
This seems like a better compromise between throughput and latency, and it doesn't _really_ affect the performance, so let's just compromise.
2020-05-20LibWeb: Make window.location.reload() enumerable onlyLinus Groh
2020-05-20LibWeb: Make window.location properties non-configurableLinus Groh
Technically the property descriptors for these should not have "writable: true" but "get" and "set" instead - but we don't support that yet.
2020-05-20LibWeb: Add leading "?" to window.location.search if not emptyLinus Groh
2020-05-20LibWeb: Add leading "#" to window.location.hash if not emptyLinus Groh
2020-05-19LibLine: Default to resolving Spans as byte offsetsAnotherTest
This allows all the unicode processing to be internal to the line editor.
2020-05-19LibTLS: Only try to flush data when neededAnotherTest
This patchset drops the write notifier, and schedules writes only when necessary. As a result, the CPU utilisation no longer spikes to the skies :^)