Age | Commit message (Collapse) | Author |
|
|
|
|
|
This is enough to parse the Google front page! (Note: I did have to
hack the tokenizer while parsing Google, in order to avoid named
character references screwing everything up. We'll fix that too soon
enough!)
|
|
|
|
We can now parse self-closing "<img>" tags correctly! :^)
|
|
While we're still supporting both the old and the new parser, we have
to deal with the way they load inline stylesheet (and scripts) a bit
differently.
The old parser loads all the text content up front, and then notifies
the containing element. The new parser creates the containing element
up front and appends text inside it afterwards.
For now, we simply do an empty "children_changed" notification when
first inserting a text node inside an element. This at least prevents
the CSS parser from choking on a single-character stylesheet.
|
|
Seems like SOMEONE forgot to put a <!DOCTYPE html> on serenityos.org..
No matter, now we can handle it in the new parser! :^)
|
|
This doesn't do anything yet, but it will sooner or later. :^)
|
|
With this change, we can finally load and render welcome.html :^)
|
|
The AAA is a somewhat daunting algorithm you have to run for certain
tag when inserted inside the <body> element. The purpose of it is to
resolve issues with mismatched tags.
This patch implements the first half of the AAA. We also move the
"list of active formatting elements" to its own class, since it kept
accumulating little behaviors. "Marker" entries are now signified by
null Element pointers in the list.
|
|
This only works in some narrow cases, but should be enough for our own
welcome.html at least. :^)
|
|
You can now pass "-n" to the browser to use the new HTML parser.
It's not turned on by default since it's still very immature, but this
is a huge step towards bringing it into maturity. :^)
|
|
The console has now enabled history in its input text box. Pretty
nice to not have to retype things all the time :^)
|
|
This patch adds the ability to enable "input history" on a textbox,
allowing to navigate between the history with the arrow keys.
Also removes a custom TextBox subclass from HackStudio that added
the exact same hooks, and moves it to use the now standard ones.
|
|
I can now see Swedish letters when opening Google in the browser. :^)
|
|
|
|
Add a deferral counter and defer reflowing the visual lines until the
counter is at zero. Use this to defer reflow when inserting text.
This fixes glacial slowdown while paste large amounts of text.
|
|
This feels a lot nicer than moving the cursor to the document end.
|
|
|
|
One little step at a time towards parsing the monster blob of HTML we
get from twitter.com :^)
|
|
|
|
|
|
Stopping means the client no longer cares about the download, so we
should just forget about it in the server.
|
|
|
|
Previously, the Object class had many different types of functions for
each action. For example: get_by_index, get(PropertyName),
get(FlyString). This is a bit verbose, so these methods have been
shortened to simply use the PropertyName structure. The methods then
internally call _by_index if necessary. Note that the _by_index
have been made private to enforce this change.
Secondly, a clear distinction has been made between "putting" and
"defining" an object property. "Putting" should mean modifying a
(potentially) already existing property. This is akin to doing "a.b =
'foo'".
This implies two things about put operations:
- They will search the prototype chain for setters and call them, if
necessary.
- If no property exists with a particular key, the put operation
should create a new property with the default attributes
(configurable, writable, and enumerable).
In contrast, "defining" a property should completely overwrite any
existing value without calling setters (if that property is
configurable, of course).
Thus, all of the many JS objects have had any "put" calls changed to
"define_property" calls. Additionally, "put_native_function" and
"put_native_property" have had their "put" replaced with "define".
Finally, "put_own_property" has been made private, as all necessary
functionality should be exposed with the put and define_property
methods.
|
|
|
|
|
|
This makes it possible to build both of these on Linux.
|
|
This can be used in code that builds on non-Serenity platforms.
|
|
The new About dialog reads version information from /res/version.ini,
which is generated at build time.
|
|
We are compiling with `-std=c++2a` and we are using some C++20 features,
e.g. in Kernel/VM/Region.h
bool m_shared : 1 { false };
bool m_user_accessible : 1 { false };
bool m_cacheable : 1 { false };
bool m_stack : 1 { false };
bool m_mmap : 1 { false };
|
|
Now that we have SystemServer that can (re)spawn the Shell, we don't need a
separate server just for that.
The two shells (on tty0 and tty1) are configured to only be started when booting
in text mode. This means you can now simply say boot_mode=text on the kernel
command line, and SystemServer will set up the system and spawn a comfy root
shell for you :^)
|
|
SystemServer will now look at the boot mode, as specified on the kernel command
line, and only launch the services configured for that boot mode.
|
|
Together, they replace the old text_debug option.
* boot_mode should be either "graphical" (the default) or "text". We could
potentially support other values here in the future.
* init specifies which userspace process the kernel should spawn to bootstrap
userspace. By default, this is SystemServer, but you can specify e.g.
init=/bin/Shell to run system diagnostics.
|
|
Unfortunately this drops the feature of preserving VGA buffer contents.
Resolves https://github.com/SerenityOS/serenity/issues/2399
|
|
This will let us share it between the userspace (TerminalWidget) and the Kernel.
|
|
...instead of a plain int. Yay for some type safety.
|
|
|
|
Since the last job need not have an ID of size()-1, we need to find the
max job id and give that+1 out
|
|
|
|
|
|
|
|
|
|
This commit changes LibLine's internal structure to work in an event
loop, and as a result, also switches it to being a Core::Object.
|
|
Adds more TLS 1.2 error descriptions according to the specification:
https://tools.ietf.org/html/rfc5246#section-7.2.2
This changes the DecryptionFailed description, as the specification
says that this alert should NEVER be sent by a compliant server.
|
|
|
|
|
|
|
|
|
|
|