ladybird/Userland/Libraries/LibWebView/DumpLayoutTree/main.cpp
Sam Atkins 0c24522635 LibGUI+Everywhere: Use fallible Window::set_main_widget() everywhere :^)
Rip that bandaid off!

This does the following, in one big, awkward jump:
- Replace all uses of `set_main_widget<Foo>()` with the `try` version.
- Remove `set_main_widget<Foo>()`.
- Rename the `try` version to just be `set_main_widget` because it's now
  the only one.

The majority of places that call `set_main_widget<Foo>()` are inside
constructors, so this unfortunately gives us a big batch of new
`release_value_but_fixme_should_propagate_errors()` calls.
2023-01-06 13:36:02 -07:00

27 lines
860 B
C++

/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibGUI/Application.h>
#include <LibGUI/Window.h>
#include <LibWebView/OutOfProcessWebView.h>
#include <unistd.h>
int main(int argc, char** argv)
{
auto app = GUI::Application::construct(argc, argv);
auto window = GUI::Window::construct();
window->set_title("DumpLayoutTree");
window->resize(800, 600);
window->show();
auto web_view = window->set_main_widget<WebView::OutOfProcessWebView>().release_value_but_fixme_should_propagate_errors();
web_view->load(URL::create_with_file_scheme(argv[1]));
web_view->on_load_finish = [&](auto&) {
auto dump = web_view->dump_layout_tree();
write(STDOUT_FILENO, dump.characters(), dump.length() + 1);
_exit(0);
};
return app->exec();
}