1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 10:38:13 +00:00
Commit graph

47061 commits

Author SHA1 Message Date
Ali Mohammad Pur
6da438e992 Shell: Clear expansions after committing a word in the POSIX parser 2023-02-18 06:55:46 +03:30
Ali Mohammad Pur
2881bb4c3a Shell: Add support for heredocs to the POSIX parser 2023-02-18 06:55:46 +03:30
Ali Mohammad Pur
a5e4bc4faf Shell: Add a '--posix' mode to the 'dump' builtin 2023-02-18 06:55:46 +03:30
Ali Mohammad Pur
4efc632e15 Shell: Allow the heredoc node to act as a redirection too
This will be used in a future commit to implement POSIX sh heredocs.
2023-02-18 06:55:46 +03:30
Ali Mohammad Pur
9c61fed37c AK: Add an input() accessor to GenericLexer
It's sometimes useful to get the input from the lexer instead of wiring
it all the way down to where it's needed.
2023-02-18 06:55:46 +03:30
Nico Weber
7880e11690 icc: Add flags for writing and dumping profiles
This adds three flags to icc:

* --reencode-to=<file> re-serializes a profile to a given file,
  using Gfx::ICC::encode(). This is mainly useful for testing that
  code.

* --dump-to=<file> dumps the raw ICC profile bytes read from the
  input to disk. This is useful for extracting ICC profiles from
  images, and for comparing the raw profile bytes to the profile
  bytes written by --reencode-to=.

If either of these flags is passed, icc by default no longer dumps
the icc data to stdout. To force priting of the data even if either
of these flags is present, this also adds:

* --print, which forces printing ICC contents, even if either or
  both of the icc-data writing flags are present.
2023-02-17 20:05:50 -07:00
Nico Weber
8b8b7b232e LibGfx: Add start of an ICC profile writer
For now, this can write the profile header.

`icc` refuses to dump its contents since the required copyrightTag,
profileDescriptionTag, and required per-device-class tags are missing,
but it looks ok in a hex editor.
2023-02-17 20:05:50 -07:00
Nico Weber
e8a2c17f8f LibGfx: Add an accessor for the raw ICC Version minor_and_bugfix byte
This is makes it easier to write this value back out.
2023-02-17 20:05:50 -07:00
Nico Weber
0ab3f45135 LibGfx: Add a XYZ->XYZNumber conversion constructor
This is useful for converting XYZs back to the on-disk format.
2023-02-17 20:05:50 -07:00
Nico Weber
0ca620a286 LibGfx: Move ICC ProfileFileSignature into a constant in BinaryFormat.h
...so that it can be used by ICC writing code too.
2023-02-17 20:05:50 -07:00
Nico Weber
78d849bce2 LibGfx: Make ICCHeader use RenderingIntent enum
No behavior change.
2023-02-17 20:05:50 -07:00
Nico Weber
429467f46c LibGfx: Move ICC on-disk structs to new BinaryFormat.h
Removes some existing code duplication and allows future files to use
these structs too.
2023-02-17 20:05:50 -07:00
Nico Weber
2a1cd84155 LibGfx: Minorly simplify BMPLoader's decode_bmp_dib()
header_size is already set to 0 if context.is_included_in_ico is true
and to bmp_header_size else, so we can remove some redundant checks
for context.is_included_in_ico.

No behavior change.
2023-02-18 01:45:12 +01:00
Jelle Raaijmakers
62285e0569 LibSoftGPU: Use multiplication instead of division for linear fog
Sampling profiling shows a reduction of nearly 60% for the linear fog
calculation case.
2023-02-18 01:45:00 +01:00
Jelle Raaijmakers
f54d9c0a61 LibSoftGPU: Use AK::SIMD::exp_approximate instead of ::exp
The approximate version is properly vectorized and results in fewer
stalls than the `::exp` version.
2023-02-18 01:45:00 +01:00
Jelle Raaijmakers
f4342c9118 AK: Add AK::SIMD::exp_approximate
This approximation tries to generate values within 0.1% of their actual
expected value. Microbenchmarks indicate that this iterative SIMD
version can be up to 60x faster than `AK::SIMD::exp`.
2023-02-18 01:45:00 +01:00
Luke Wilde
3275d659bf LibWeb: Convert FormData to String and Vector storage
This makes use of the new [UseNewAKString] extended attribute. Using
Vector storage will make it easier to make this interface into an IDL
iterable. It seems the reason it didn't use Vector originally was due
to awkward DeprecatedString -> String conversions.
2023-02-18 01:23:36 +01:00
Luke Wilde
c0f22065ab LibWeb: Add an extended attribute that makes interfaces use AK::String
Adding the [UseNewAKString] extended attribute to an interface will
cause all IDL string types to use String instead of DeprecatedString.
This is done on an per interface level instead of per type/parameter
because:

- It's much simpler to implement, as the generators can already access
  the interface's extended attributes. Doing it per type/parameter
  would mean parsing and piping extended attributes for each type that
  doesn't already take extended attributes, such as unions.

- Allows more incremental adoption of AK::String. For example, adding
  [UseNewAKString] to BodyInit would require refactoring Request,
  Response and XMLHttpRequest to AK::String in one swoop. Doing it on
  the interface allows you to convert just XHR and its dependencies at
  once, for example.

- Simple string return types (i.e. not parameterised or not in a union)
  already accept any of the string types JS::PrimitiveString::create
  accepts. For example, you can add [UseNewAKString] to DOMStringMap to
  convert Element attributes to AK::String and still return AK::String
  from get_attribute, without adding [UseNewAKString] to Element.

- Adding [UseNewAKString] to one function typically means adding it to
  a bunch of other functions, if not the rest of them. For example,
  adding [UseNewAKString] to the parameters FormData.append would
  either mean converting AK::String to AK::DeprecatedString or storing
  the AK::String as-is, making the other functions of FormData have to
  convert back from AK::String or also support AK::String.
2023-02-18 01:23:36 +01:00
Kenneth Myhra
84c7af4dcb LibWeb: Make factory method of XHR::ProgressEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
35622606c1 LibWeb: Make factory method of URL::URLSearchParams fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
71316614b8 LibWeb: Make factory method of SVG::SVGLength fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
bfc8cbcf3b LibWeb: Make factory method of HTML::ModuleScript fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
3e834636a6 LibWeb: Make factory method of HTML::Window fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
b41401bab2 LibWeb: Make factory method of HTML::Storage fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
d7ee378018 LibWeb: Make factory method of HTML::Navigator fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
2f4db60c08 LibWeb: Make factory method of HTML::History fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
3941e64fde LibWeb: Make factory method of HTML::PromiseRejectionEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
193de231e0 LibWeb: Make factory method of HTML::WorkerNavigator fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
86b7f148b9 LibWeb: Make factory method of HTML::Path2D fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
2b391ea622 LibWeb: Make factory method of HTML::HTMLOptionsCollection fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
b604bbaf29 LibWeb: Make factory method of HTML::DOMStringMap fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
809206f50e LibWeb: Make factory method of HTML::SubmitEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
c5de2c3348 LibWeb: Make factory method of HTML::TextMetrics fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
d9845bb24b LibWeb: Make factory method of HTML::PageTransitionEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
97b5aa56da LibWeb: Make factory method of HTML::ErrorEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
2ed7f64c73 LibWeb: Make factory method of HTML::CloseEvent fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
b7c488e51e LibWeb: Make factory method of HTML::CanvasRenderingContext2D fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
2506666991 LibWeb: Make factory methods of HTML::CanvasGradient fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
63b69f3672 LibWeb: Make factory method of SVG::SVGAnimatedLength fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
200d22c650 LibWeb: Make factory method of DOM::Text fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
2411dadc35 LibWeb: Make factory method of DOM::StaticNodeList fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
d94b59263e LibWeb: Make factory method of DOM::NodeIterator fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
0791195843 LibWeb: Make factory methods of DOM::Range fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
e3e281addd LibWeb: Make factory method of DOM::NamedNodeMap fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
ce18dfc417 LibWeb: Make factory method of DOM::MutationRecord fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
7852915dd3 LibWeb: Make factory method of DOM::MutationObserver fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
24d7e688fc LibWeb: Make factory method of DOM::LiveNodeList fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
ff875d353b LibWeb: Make factory method of DOM::HTMLCollection fallible 2023-02-18 00:52:47 +01:00
Kenneth Myhra
c120c46acc LibWeb: Make factory methods of DOM::Event fallible
Because of interdependencies between DOM::Event and UIEvents::MouseEvent
to template function fire_an_event() in WebDriverConnection.cpp, the
commit: 'LibWeb: Make factory methods of UIEvents::MouseEvent fallible'
have been squashed into this commit.
2023-02-18 00:52:47 +01:00
Kenneth Myhra
0d9076c9f5 LibWeb: Make factory methods of DOM::Document fallible 2023-02-18 00:52:47 +01:00