1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-31 05:32:44 +00:00
Commit graph

2494 commits

Author SHA1 Message Date
Liav A
5b3980b040 Userland: Utilize MS_NOREGULAR mount flag
For SystemServer, we simply ensure that the /dev mount is now mounted
with MS_NOREGULAR flag to ensure only non-regular files are created,
thus, achieving what DevTmpFS provided in its implementation, but in a
much more sane and clean way than how DevTmpFS did that.

For other userland applications, we simply make them being aware of this
flag so they can show an indication about this flag being used to the
user.
2022-10-22 19:18:15 +02:00
Smrtnyk
cb480fa3dc Browser: Show SameSite attribute in cookie storage inspector 2022-10-22 18:17:01 +02:00
Tobias Christiansen
a534e61b44 WebDriver: Implement GET /session/{id}/element/{id}/name endpoint 2022-10-22 13:44:49 +02:00
Tobias Christiansen
be6bbdaa3b WebContent+Friends: Add get_element_tag_name IPC and plumbing 2022-10-22 13:44:49 +02:00
Sam Atkins
851bece9fc Browser: Hide WebDriver debug messages behind WEBDRIVER_DEBUG 2022-10-21 19:59:03 +02:00
crpz1
87a9462b7f Magnifier: Increase window size
The help menu was not visible prior to this.
2022-10-21 17:16:01 +01:00
crpz1
466e0c4846 Magnifier: Add Always on Top 2022-10-21 17:16:01 +01:00
Sam Atkins
4d9c0c7b22 Browser: Add ability to delete cookies from Storage Inspector
Adds actions to delete either a single cookie, or all of them.

This looks weird, because the GUI doesn't update until you "Inspect >
Open Storage Inspector", but it does function. :^)
2022-10-20 21:52:44 +02:00
Tobias Christiansen
c11462f40e WebDriver: Introduce a WebDriverEndpoints class
This holds the Functions used by the WebDriver to not clutter up the
`Tab.h` file.
2022-10-20 21:48:12 +02:00
Tobias Christiansen
354a845d65 WebDriver: Implement GET /session/{id}/element/{id}/css/{name} 2022-10-20 21:26:10 +02:00
Tobias Christiansen
202b2be1f2 WebContent+Friends: Add IPC and plumbing for WebDriver endpoint
To use the `GET /session/{id}/element/{id}/css/{property name}`
WebDriver endpoint, two new IPC calls through the Browser are
implemented:
    - get_active_documents_type returns the type of the active document,
      which is either "xml" or "html"
    - get_computed_value_for_element returns the computed CSS value (as
      String) for the given element and CSS property name
2022-10-20 21:26:10 +02:00
Timothy Slater
038a833f0c PixelPaint: Add Polygonal Select Tool
Polygonal selection tool allows for the drawing of any arbitrary
polygonal shape. It tracks clicked points in a vector, upon double
clicking we finalize the polygon and generate the selection mask. The
user can press the escape key during selection to cancel.

The mask is generated as follows:

- First we calculate the size of the bounding rect needed to hold the
  polygon
- We add 2 pixels to height/width to allow us a 1 pixel border, the
  polygon will be centered in this bitmap
- Draw the polygon into the bitmap via Gfx::Painter, making sure to
  connect final polygon point to the first to ensure an enclosed shape
- Generate a selection mask the size of the bitmap, with all pixels
  initially selected
- Perform a flood fill from (0,0) which is guaranteed to be outside the
  polygon
- For every pixel reached by the flood fill, we clear the selected pixel
  from the selection mask
- Finally we merge the selection mask like other selection tools.
2022-10-19 23:04:07 +02:00
Timothy Slater
20f6485311 PixelPaint: Pass doubleclick events to tools 2022-10-19 23:04:07 +02:00
Timothy Slater
7b163573e6 PixelPaint: Ensure bitmap contains selected pixel before deleting
This fixes a bug which shows up when a layer is offset and the selection
range includes pixels that are outside the current layer bitmap rect. We
would still try to delete that pixel from the bitmap since there was no
contains() check.
2022-10-19 23:04:07 +02:00
Timothy Slater
53e4cc16ff PixelPaint: Make escape key clear selection for Wand Select Tool 2022-10-19 23:04:07 +02:00
Tobias Christiansen
e87456e38f WebDriver: Implement GET /session/{id}/element/{id}/property/{name} 2022-10-19 22:30:06 +02:00
Tobias Christiansen
3db92885cd WebContent+Friends: Add get_element_property IPC and plumbing 2022-10-19 22:30:06 +02:00
Tobias Christiansen
249350a7a3 WebDriver: Implement GET /session/{id}/element/{id}/attribute/{name} 2022-10-19 17:30:58 +02:00
Tobias Christiansen
3f5a620b5d WebContent+Friends: Add get_element_attribute IPC and plumbing 2022-10-19 17:30:58 +02:00
Tobias Christiansen
e6f71d5e05 WebDriver: Fix broken Optional<> returns through IPC 2022-10-19 15:32:31 +02:00
Tobias Christiansen
5d762bd448 WebDriver+Friends: Add IPC and plumbing for Element-getting
This extends the IPC calls `get_document_element` and
`query_selector_all` to be usable by the WebDriver. For this the
`WebDriverConnection` provides the same interfaces and takes care of
routing the data through the Browser.
2022-10-18 19:18:33 +02:00
snooze6214
d3353ee0e7 PixelPaint: Add action to invert selection 2022-10-18 18:57:12 +02:00
snooze6214
295fcd639f PixelPaint: Make Wand Select tool select correctly on moved layers
Before this commit, when the wand select tool was used on a layer that
was moved, it would make the selection relative to the image, and not
relative to the layer. This commit fixes that issue.
2022-10-18 18:56:33 +02:00
Tobias Christiansen
61dd7d5d86 WebDriver: Add/Expand some dbgln's
`update_cookie` was missing a dbgln and not all functions getting
arguments printed them.
2022-10-17 15:48:22 +02:00
Tobias Christiansen
122e2d2076 WebDriver: Implement POST /session/{id}/cookie endpoint
This allows the WebDriver to create a cookie.
We use a Web::Cookie::ParsedCookie to transport the data through IPC
to take advantage of the RFC6265 Section 5.3 implementation in the
CookieJar.
2022-10-17 15:48:22 +02:00
Tobias Christiansen
c710780852 Browser: Add update_cookie WebDriver IPC endpoint
Through this the WebDriver will be able to change cookies. Needed for
deleting cookies.
2022-10-17 11:31:30 +02:00
Tobias Christiansen
30360918d4 Browser: Allow changing of existing Cookies in the CookieJar
And attach all the plumbing through to Tab over BrowserWindow.
2022-10-17 11:31:30 +02:00
Fausto Tommasi
813ca5ebbe PixelPaint: Make Alt-Clicking with all tool act like the PickerTool
Refactored PickerTool functionality to the ImageEditor level and added a
flag to Tool Base Class to allow for tools to override Alt+Click
ColorPicker functionality
2022-10-17 09:39:57 +02:00
Chun Ngai Au
5bccb16e61 WindowServer: Add wallpaper backing bitmap
Fixes inconsistencies in redrawing the wallpaper when in stretch mode by
first drawing to a backing bitmap. To reduce unnecessary allocations,
the backing bitmap is only used for stretch mode.
2022-10-17 01:12:51 +02:00
Tobias Christiansen
a34f8c444b WebDriver: Implement GET /session/{id}/cookie/{name} endpoint 2022-10-16 16:32:59 +02:00
Tobias Christiansen
001699f2d6 WebDriver: Implement GET /session/{id}/cookie endpoint 2022-10-15 22:28:34 +02:00
Moustafa Raafat
a4fa604bde WebDriver: Implement POST /session/{id}/forward endpoint 2022-10-15 21:01:59 +02:00
Moustafa Raafat
9132656856 WebDriver: Implement POST /session/{id}/back endpoint 2022-10-15 21:01:59 +02:00
Tobias Christiansen
1179d951f6 WebDriver: Implement POST /session/{id}/refresh endpoint 2022-10-15 15:43:42 +01:00
ne0ndrag0n
323c403d43 NetworkSettings+SpiceAgent: Update and add required unveil paths 2022-10-15 05:59:39 +00:00
Lucas CHOLLET
2d6124049a LibAudio: Get rid of unused method Loader::file()
`aplay` and two files of `SoundPlayer` were relying on the include of
`LibCore/File.h` by `Loader.h`.
2022-10-14 23:11:23 +02:00
Mart G
7394316818 HexEditor: Render selection background without gaps between rows
The selected region in HexEditor is indicated by rendering a different
background color for the selected bytes.

Previously this background was rendered so that the background
rectangles were not contigous between different rows. This caused a high
contrast pattern that interfered with the readability of the hexadecimal
digits.

Now the background is rendered as a single contiguous block.
2022-10-14 16:24:51 +01:00
snooze6214
2b9cf5a7b4 PixelPaint: Unveil clipboard using the right path
Commit #3197c17 introduced a session based clipboard portal.
This made pixel-paint fail to launch, because it had an unveil that
used the old path to the clipboard. This commit fixes that and now
unveils the new session based clipboard portal.
2022-10-14 15:42:07 +02:00
kleines Filmröllchen
cb0b82ec46 Userland+LibCore: Remove legacy SERENITY_VERSION from Core::Version
This was being used as a default version argument in a couple of APIs,
so those need to change signature and the caller always needs to provide
a version.
2022-10-14 13:45:33 +02:00
Timothy Slater
92c203bba2 PixelPaint: Change BucketTool and WandTool to use new Bitmap flood fill
This updates the Bucket and Wand tools to leverage the new flood fill
algorithm added to Gfx::Bitmap instead of implementing it in each tool.
2022-10-14 13:39:33 +02:00
Gunnar Beutner
31bd5b1a02 AK+Userland: Stub out code that isn't currently implemented on AARCH64
Even though this almost certainly wouldn't run properly even if we had
a working kernel for AARCH64 this at least lets us build all the
userland binaries.
2022-10-14 13:01:13 +02:00
ne0ndrag0n
2affe67c75 Settings: Support for launching settings apps as root 2022-10-14 11:23:06 +02:00
ne0ndrag0n
b4456ecdbb Escalator: Add new method to privilege escalate within GUI 2022-10-14 11:23:06 +02:00
Linus Groh
5681115744 Browser: Set 'webdriver-active flag' when creating a new Tab 2022-10-13 11:14:45 +02:00
Sam Atkins
8c0f1da9f7 Browser: Add a basic WebDriver API
This adds a new option "--webdriver" that opens a local unix socket
in /tmp/browser_{pid} which the WebDriver server can use to send
commands to the Browser instance.

Co-authored-by: Florent Castelli <florent.castelli@gmail.com>
2022-10-12 23:07:42 +02:00
Mart G
279121fa10 HexEditor: Fix two off-by-one errors
The 'select all' feature now also selects the last byte of the document.
The find function now also selects the last byte of a match.
2022-10-12 18:15:44 +02:00
Ali Mohammad Pur
166a905951 Userland: Properly populate GENERATED_SOURCES
We previously put the generated headers in SOURCES, which did not mark
them as GENERATED (and did not produce a proper dependency).
This commit moves all generated headers into GENERATED_SOURCES, and
removes useless header SOURCES.
2022-10-12 15:55:15 +01:00
Mart G
c88058cea2 PixelPaint: Call update after clearing guides 2022-10-12 15:25:18 +01:00
Gunnar Beutner
344ca73930 TextEditor: Set window title before showing the main window
Previously TextEditor updated its window title after the window was
already visible. This causes the default title ("GUI::Window") to be
shown for a short period of time which was especially noticeable when
opening files.
2022-10-12 14:47:27 +02:00
MacDue
fef19aa589 PixelPaint: Add Hue/Saturation filter
This filter mimics the functionality from Photoshop and other image
editors, allowing you to adjust the hue, saturation, and lightness of
an image. I always found this a very handy feature :^)
2022-10-10 11:02:10 +01:00