summaryrefslogtreecommitdiff
path: root/Userland/DevTools
AgeCommit message (Collapse)Author
2021-10-17LibX86: Add SSE supportHediadyoin1
This only adds the decodeing support for SSE, not SSE2, etc. may contain traces of SSE2.
2021-10-06UserspaceEmulator: Handle PerfEvent syscallsHediadyoin1
We only froward String setting and FlagPost creation for now, due to the other performance events being nonsensical to forward. We also record these signposts in the optionally generated profile.
2021-10-06UserspaceEmulator: Use only the base name for the profile nameHendiadyoin1
2021-10-06HackStudio: Save editor's font in configsMarco Cutecchia
2021-10-06HackStudio: Add option to change the editor's fontMarco Cutecchia
2021-10-06LibWeb: Make CSS layout lazierAndreas Kling
Instead of doing layout synchronously whenever something changes, we now use a basic event loop timer to defer and coalesce relayouts. If you did something that requires a relayout of the page, make sure to call Document::set_needs_layout() and it will get coalesced with all the other layout updates. There's lots of room for improvement here, but this already makes many web pages significantly snappier. :^) Also, note that this exposes a number of layout bugs where we have been relying on multiple relayouts to calculate the correct dimensions for things. Now that we only do a single layout in many cases, these kind of problems are much more noticeable. That should also make them easier to figure out and fix. :^)
2021-10-04Everywhere: Fix more Copyright header inconsistenciesTim Schumacher
2021-10-01Userland: Fix typosNico Weber
2021-09-29LibJS: Convert internal_set() to ThrowCompletionOrLinus Groh
2021-09-29LibJS: Convert internal_get() to ThrowCompletionOrLinus Groh
2021-09-27HackStudio: Support renaming files from the tree viewMarco Cutecchia
2021-09-22LibGUI: Rename CallOnChange => AllowCallback and implement elsewherethankyouverycool
This is a helpful option to prevent unwanted side effects, distinguish between user and programmatic input, etc. Sliders and SpinBoxes were implementing it idiosyncratically, so let's generalize the API and give Buttons and TextEditors the same ability.
2021-09-18HackStudio: Make sure Window is destroyed before Application objectItamar
We previously stored the Window object in a global RefPtr (for no apparent reason). This led to a use-after-free bug in the Window's destructor when HackStudio was exited via the Quit action (Exiting by closing the window did not trigger this bug).
2021-09-14Profiler: Make the ProfileModel searchableAli Mohammad Pur
Note that this only searches the items at the same level as the selected index.
2021-09-12HackStudio: Remove an old file from the vectors in 'Save as...' actionKarol Kosek
If you saved a file under a different name and then went back to the first file, then you had the same TextDocument buffer, and therefore the same changes to the file as in the new one.
2021-09-12HackStudio: Rename Project::get_file() to Project::create_file()Karol Kosek
The function no longer looks for the already opened files, so let's emphasize that by renaming it to `create_file`. :^)
2021-09-12HackStudio: Remove storing a vector of opened files in Project classKarol Kosek
It looks to me like this has the same purpose as m_open_files in the HackStudioWidget, so removing it shouldn't change anything.
2021-09-12Playground: Ask to save file contents on quit actionKarol Kosek
Prior this change, activating the action instantly closed the program.
2021-09-11AK: Replace the mutable String::replace API with an immutable versionIdan Horowitz
This removes the awkward String::replace API which was the only String API which mutated the String and replaces it with a new immutable version that returns a new String with the replacements applied. This also fixes a couple of UAFs that were caused by the use of this API. As an optimization an equivalent StringView::replace API was also added to remove an unnecessary String allocations in the format of: `String { view }.replace(...);`
2021-09-11UserspaceEmulator: Ignore perf_event and perf_register_string syscallsAndreas Kling
We can just fail these with ENOSYS pending a full implementation.
2021-09-10HackStudio: Reuse TextDocument::is_modified()Karol Kosek
Previously, the modification tag in the editor file label was unset only after a file was saved. This commit will also unset the tag if you undo the stack (for example by hitting Ctrl+Z) to the last saved state.
2021-09-09HackStudio: Preserve the untitled filename text on file modificationKarol Kosek
Previously, the title of an unnamed file would just disappear from the editor label if you started typing.
2021-09-07UserspaceEmulator: Handle SO_ERROR in getsockoptHendiadyoin1
This makes GUI applications work again
2021-09-07LibELF: Use StringView to carry temporary strings in auxiliary vectorAndreas Kling
Let's not force clients to provide a String.
2021-09-06Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safeAli Mohammad Pur
2021-09-05Userland: Switch static_assert of type sizes to AK::AssertSizeBrian Gianforcaro
2021-09-04HackStudio: Drop files to the selected editorKarol Kosek
Previously, the files were opened in the current editor, instead of one that received a drop event.
2021-09-03AK: Rename create<T> => make_ref_counted<T>Andreas Kling
And also try_create<T> => try_make_ref_counted<T>. A global "create" was a bit much. The new name matches make<T> better, which we've used for making single-owner objects since forever.
2021-09-02LibCore+Userland: Implement Core::deferred_invokesin-ack
Core::deferred_invoke is a way of executing an action after previously queued events have been processed. It removes the requirement of having/being a Core::Object subclass in order to defer invocation through Core::Object::deferred_invoke. Core::Object::deferred_invoke now delegates to Core::deferred_invoke. The version with the Object& argument is still present but will be removed in the following commits. This commit additionally fixes a new places where the DeferredInvocationEvent was dispatched to the event loop directly, and replaces them with the Core::deferred_invoke equivalent.
2021-09-01Profiler: Minor static code analysis issues in FlameGraphViewBrian Gianforcaro
2021-09-01Profiler: Use = default for empty destructorBrian Gianforcaro
2021-09-01HackStudio: Fix typo in C++ file extension mapping codeBrian Gianforcaro
This looks like a copy past bug where we were checking "cc" twice instead of checking for the equivalent header extension. Found by Sonar Cloud.
2021-08-31Profiler: Add a flamegraph view for the stackNicholas Hollett
The flamegraph makes it easier to quickly spot expensive functions, based on the width of their bar.
2021-08-30Everywhere: Pass AK::Format TypeErasedFormatParams by referenceBrian Gianforcaro
This silences a overeager warning in sonar cloud, warning that slicing could occur with `VariadicFormatParams` which derives from `TypeErasedFormatParams`. Reference: https://sonarcloud.io/project/issues?id=SerenityOS_serenity&issues=AXuVPBO_k92xXUF3qWsm&open=AXuVPBO_k92xXUF3qWsm
2021-08-30HackStudio: Add "Go Back" and "Go Forward" navigation actionsItamar
These actions allow the user to move backwards & forwards between previous project locations they were at.
2021-08-30HackStudio: Optionally pass line & column to open_fileItamar
This makes it easier to open a file at a specific location.
2021-08-28UserspaceEmulator: Profiles are now expected to have a `strings` arrayBrian Gianforcaro
The kernel profiles were recently changed to have a `strings` array as part of the profile objects. The `ProfileViewer` now checks for that during startup and declares the profile invalid if the array is not present. The UserspaceEmulator doesn't use the API which the kernel exposed the string array for, so just fake it by always adding an empty array to the generated profiles.
2021-08-28UserspaceEmulator: Make generated profiles debugable with cli toolsBrian Gianforcaro
The fact that profiles are json on one giant line makes them very difficult to debug when things go wrong. Instead make sure to wrap each event or sample on a newline so you can easily grep/heap/tail the profile files.
2021-08-28Everywhere: Move all host tools into the Lagom/Tools subdirectoryAndrew Kaster
This allows us to remove all the add_subdirectory calls from the top level CMakeLists.txt that referred to targets linking LagomCore. Segregating the host tools and Serenity targets helps us get to a place where the main Serenity build can simply use a CMake toolchain file rather than swapping all the compiler/sysroot variables after building host libraries and tools.
2021-08-28StateMachineGenerator: Don't move() return value from actions()Andrew Kaster
With the proper warnings enabled, this gives a Wpessimizing-move warning
2021-08-26Terminal+LibVT: Use LibConfig instead of Core::ConfigFileAndreas Kling
2021-08-25HackStudio: Update the tree view cursor on editor change and 'Save as'Karol Kosek
The more important thing here is to update the tree view on 'Save As..', as we want to drop every connection from an old file. Updating the tree view on current editor change is just a cool small bonus. :^)
2021-08-25HackStudio: Add "New File" actions for different file extensionsMarco Cutecchia
Currently this supports the following file types: cpp, header, gml, js, css, html and plain files
2021-08-22HackStudio: Update every editor with matching filename on 'Save as...'Karol Kosek
Prior this change, if user had more than two copies of one file opened in a split view, then only the active editor was renamed, when the others had the same file contents changed. This change will set a new file name for every file. The is_null() check is for uncreated files, as they shouldn't be treated as the same single file.
2021-08-22HackStudio: Convert selected path to a relative path on 'Save as...'Karol Kosek
This makes the editor title a bit more consistent with the other files and removes duplicating the file name in the file history when reopening that file.
2021-08-22HackStudio: Warn about unsaved changes on opening different projectLennon Donaghy
2021-08-22HackStudio: Fix editor not marking file with unsaved changes as dirtyLennon Donaghy
The editor's on_change callback was being overwritten in HackStudioWidget.cpp in order to call update_gml_preview on every change. This stopped the original callback from being called and marking files as dirty when changed. Now we call update_gml_preview in a new callback within the editor wrapper, which is then called within the original on_change callback in the editor.
2021-08-22HackStudio: Fix GitWidget issues with switching between projectsLennon Donaghy
GitWidget no longer crashes upon trying to create a repository for a new project, and it correctly updates after opening a different project. A new method, change_repo, has been added to make this work, which changes m_repo_root and resets most of the widget's state in order to make this work.
2021-08-22HackStudio: Moved code closing project from open_project to own methodLennon Donaghy
Take the code which closes the current project out of open_project method and move it into its own method.
2021-08-22HackStudio: Call update_gml_preview() to reset when opening new projectLennon Donaghy