summaryrefslogtreecommitdiff
path: root/Userland/Applications/Browser
AgeCommit message (Collapse)Author
2021-07-08Everywhere: Remove unused local variables and lambda capturesDaniel Bertalan
2021-07-07Browser: Show an example url placeholder in the search engine InputBoxnetworkException
This makes it more clear what the format for a search engine url is :^)
2021-07-02AK+Everywhere: Remove StringView::find_{first,last}_of(char) methodsMax Wipfli
This removes StringView::find_first_of(char) and find_last_of(char) and replaces all its usages with find and find_last respectively. This is because those two methods are functionally equivalent. find_{first,last}_of should only be used if searching for multiple different characters, which is never the case with the char argument. This also adds the [[nodiscard]] to the remaining find_{first,last}_of methods.
2021-06-29LibWeb+Browser: Support DOM Inspector for OutOfProcessWebViewAdam Hodgen
This introduces a new DOMTreeJSONModel, which provides the Model for the InspectorWidget when the Browser is running using the OutOfProcessWebView. This Model is constructed with a JSON object received via IPC from the WebContentServer.
2021-06-25Browser: Add alternate shortcut F6 for focusing the location boxAatos Majava
2021-06-24AK: Rename downcast<T> => verify_cast<T>Andreas Kling
This makes it much clearer what this cast actually does: it will VERIFY that the thing we're casting is a T (using is<T>()).
2021-06-20Browser: Enable close button on tabsMarcus Nilsson
2021-06-18Browser: Add setting to change homepage URLMarco Cutecchia
2021-06-17Everywhere: Add component declarationsGunnar Beutner
This adds component declarations so that users can select to not build certain parts of the OS.
2021-06-15LibGUI: Allow tweaking each edge of TabWidget's content marginsAndreas Kling
Instead of having a single uniform margin around the child content of a TabWidget, use a GUI::Margins to allow individual per-edge margins.
2021-06-13Browser: Fix build breakage from 29cce65Andreas Kling
2021-06-13Browser: Add download finished graphics to download widgetMarcus Nilsson
Not the prettiest, but visually indicates that the download has finished successfully.
2021-06-13Browser: Add close on finished checkbox to download widgetMarcus Nilsson
Let the user choose if they want the download widget to close when finished, also save the users choice for future downloads.
2021-06-09Browser: Fix crash on downloadTimothy
This will unveil the portal for RequestServer which is used to download files in the Browser.
2021-06-08Everywhere: Replace Vector<T*> with nonnull entries with Vector<T&>Ali Mohammad Pur
2021-06-06LibProtocol: Use URL class in RequestClient::start_request argumentMax Wipfli
This changes the RequestClient::start_request() method to take a URL object instead of a URL string as argument. All callers of the method already had a URL object anyway, and start_request() in turn parses the URL string back into a URL object. This removes this unnecessary conversion.
2021-06-01AK+Everywhere: Replace usages of URLParser::urlencode() and urldecode()Max Wipfli
This replaces all occurrences of those functions with the newly implemented functions URL::percent_encode() and URL::percent_decode(). The old functions will be removed in a further commit.
2021-05-30LibWeb: Rename Web::Frame to Web::BrowsingContextAndreas Kling
Our "frame" concept very closely matches what the web specs call a "browsing context", so let's rename it to that. :^) The "main frame" becomes the "top-level browsing context", and "sub-frames" are now "nested browsing contexts".
2021-05-29Browser: Add title to go back/forward context menuMarcus Nilsson
Adds page title to the context menu for go back/forward.
2021-05-29Browser: Pass Tab::on_title_change title argument as const referenceLinus Groh
2021-05-29Browser: Remove redundant parameter names from Tab::on_{g,s}et_cookieLinus Groh
2021-05-26LibGUI/AbstractView: Remove `on_selection`Jelle Raaijmakers
Since the introduction of multi-select, we have had both `on_selection` and `on_selection_change`, the latter of which was only invoked when a change in selection came in through the model. This removes `AbstractView::on_selection` and replaces it usage with the more explicit `on_selection_change` everywhere.
2021-05-23Browser: Add context menu with history for back/forward buttonMarcus Nilsson
Right clicking on back or forward will now show a context menu with URLs to navigate to. Also added an optional argument for the number of steps in go_back() and go_forward().
2021-05-21Applications: Use titlecase and distinct underlined characters in menusMax Wipfli
This changes (context) menus across the system to conform to titlecase capitalization and to not underline the same character twice (for accessing actions with Alt).
2021-05-21Browser: Stop leaking popup windowsAndreas Kling
We were leaking the "view source" and "downloading file" windows for some reason, presumably it was necessary when these were first added. Since they are owned by the spawning browser window, there's no need to leak them.
2021-05-21Revert "Userland: static vs non-static constexpr variables"Linus Groh
This reverts commit 800ea8ea969835297dc7e7da345a45b9dc5e751a. Booting the system no longer worked after these changes.
2021-05-21Userland: static vs non-static constexpr variablesLenny Maiorani
Problem: - `static` variables consume memory and sometimes are less optimizable. - `static const` variables can be `constexpr`, usually. - `static` function-local variables require an initialization check every time the function is run. Solution: - If a global `static` variable is only used in a single function then move it into the function and make it non-`static` and `constexpr`. - Make all global `static` variables `constexpr` instead of `const`. - Change function-local `static const[expr]` variables to be just `constexpr`.
2021-05-20TextEditor+Browser: Enable HTML syntax highlighting on HTML documentsAli Mohammad Pur
2021-05-19Browser: Do not use AK::Format for search engine formattingMaciej Zygmanowski
It is too complex because it supports many options that are not used by the search engine. It just makes format validation more complicated. Additionaly, now it's possible to have { } characters in search engine URL (although they are not valid URL characters) :)
2021-05-19Browser: Add support for custom search enginesMaciej Zygmanowski
2021-05-18Browser: Don't add multiple page reloads to historyMarcus Nilsson
When reloading a page multiple times, it was also added multiple times to the history. This commit prohibits an url to be added twice in a row. Fixes #7264 Co-authored-by: Linus Groh <mail@linusgroh.de>
2021-05-18Browser: Move actions from Tab to BrowserWindowAndreas Kling
Navigation actions (back/forward/home/reload) now live in BrowserWindow instead of being duplicated in every new Tab instance.
2021-05-18Browser: Move menu management from Tab to BrowserWindowAndreas Kling
It was very confusing for every Tab to have their own GUI::Menubar that got dynamically swapped in/out when switching tabs. This change moves us to a single menubar per window, and BrowserWindow is the owner of its own menubar.
2021-05-17Browser: Move main browser window logic into a BrowserWindow classAndreas Kling
Having so much the logic and lambdas in main() was getting unwieldy. Moving it into a class simplifies this, and also opens up a path towards supporting "Open in New Window" :^)
2021-05-14Browser: Don't spawn RequestServer and WebSocket in multi-process modeAndreas Kling
Single-process Browser forces a connection to these services early on, to avoid having to unveil their paths. I'm suspicious of the benefits of this (and the comment about it wasn't even accurate) but let's keep it for now. In multi-process mode, there's no need to do this, and in fact it was causing us to spawn two extra totally unused processes.
2021-05-13Userland: Tighten a *lot* of pledges! :^)Andreas Kling
Since applications using Core::EventLoop no longer need to create a socket in /tmp/rpc/, and also don't need to listen for incoming connections on this socket, we can remove a whole bunch of pledges!
2021-05-12Browser: Use URL for window title if tab title is emptyLinus Groh
Seeing " - Browser" for loading pages is annoying, so let's do something more sensible instead for empty tab document titles: "<URL> - Browser". Also consolidate the two places where this code is used into a lambda to make any future changes easier.
2021-05-12LibCore+Everywhere: Move OpenMode out of IODeviceAli Mohammad Pur
...and make it an enum class so people don't omit "OpenMode".
2021-05-10Browser: Apply some polish to menus and actionsAndreas Kling
2021-05-03LibGUI: Rename ScrollableWidget => AbstractScrollableWidgetAndreas Kling
2021-05-01Everywhere: Rename app_menu to file_menu or game_menuAndreas Kling
2021-04-30Browser: Add FrogFind search engineMaciej Zygmanowski
FrogFind is a search engine for very old computers and can be loaded and rendered correctly by Serenity Browser :^)
2021-04-29Browser: Display search engine format in statusbarMaciej Zygmanowski
2021-04-29Browser: Save search engine setting to preferencesMaciej Zygmanowski
2021-04-29Browser: Add GitHub and Yandex to search enginesPanagiotis Vasilopoulos
2021-04-26Browser: Add basic support for search enginessppmacd
If you start a URL with a '?' character, the Browser will use the user-selected search engine (none by default). For now, there are several engines hardcoded and there is no support for custom search engines.
2021-04-25Services: Rename ProtocolServer to RequestServerDexesTTP
The current ProtocolServer was really only used for requests, and with the recent introduction of the WebSocket service, long-lasting connections with another server are not part of it. To better reflect this, this commit renames it to RequestServer. This commit also changes the existing 'protocol' portal to 'request', the existing 'protocol' user and group to 'request', and most mentions of the 'download' aspect of the request to 'request' when relevant, to make everything consistent across the system. Note that LibProtocol still exists as-is, but the more generic Client class and the more specific Download class have both been renamed to a more accurate RequestClient and Request to match the new names. This commit only change names, not behaviors.
2021-04-25LibWeb: Add WebSocket bindingsDexesTTP
The WebSocket bindings match the original specification from the WHATWG living standard, but do not match the later update of the standard that involves FETCH. The FETCH update will be handled later since the changes would also affect XMLHttpRequest.
2021-04-23AK: Rename adopt() to adopt_ref()Andreas Kling
This makes it more symmetrical with adopt_own() (which is used to create a NonnullOwnPtr from the result of a naked new.)
2021-04-22Everything: Move to SPDX license identifiers in all files.Brian Gianforcaro
SPDX License Identifiers are a more compact / standardized way of representing file license information. See: https://spdx.dev/resources/use/#identifiers This was done with the `ambr` search and replace tool. ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *