LibWeb+UI: Add internals API to set browser zoom

This commit is contained in:
InvalidUsernameException 2024-12-23 22:15:06 +01:00 committed by Alexander Kalenik
commit 5cc9a5802d
Notes: github-actions[bot] 2025-01-21 15:12:32 +00:00
17 changed files with 78 additions and 3 deletions

View file

@ -140,6 +140,7 @@ void run_dump_test(HeadlessWebView& view, Test& test, URL::URL const& url, int t
view.on_load_finish = {};
view.on_text_test_finish = {};
view.on_set_test_timeout = {};
view.reset_zoom();
view.on_test_complete({ test, TestResult::Timeout });
});
@ -199,6 +200,7 @@ void run_dump_test(HeadlessWebView& view, Test& test, URL::URL const& url, int t
};
auto on_test_complete = [&view, &test, timer, handle_completed_test]() {
view.reset_zoom();
clear_test_callbacks(view);
timer->stop();
@ -268,6 +270,10 @@ void run_dump_test(HeadlessWebView& view, Test& test, URL::URL const& url, int t
timer->start(milliseconds);
};
view.on_set_browser_zoom = [&view](double factor) {
view.set_zoom(factor);
};
view.load(url);
timer->start();
}
@ -278,6 +284,7 @@ static void run_ref_test(HeadlessWebView& view, Test& test, URL::URL const& url,
view.on_load_finish = {};
view.on_text_test_finish = {};
view.on_set_test_timeout = {};
view.reset_zoom();
view.on_test_complete({ test, TestResult::Timeout });
});
@ -335,13 +342,15 @@ static void run_ref_test(HeadlessWebView& view, Test& test, URL::URL const& url,
} else {
test.ref_test_expectation_type = RefTestExpectationType::Match;
}
view.take_screenshot()->when_resolved([&test, on_test_complete = move(on_test_complete)](RefPtr<Gfx::Bitmap> screenshot) {
view.take_screenshot()->when_resolved([&view, &test, on_test_complete = move(on_test_complete)](RefPtr<Gfx::Bitmap> screenshot) {
test.expectation_screenshot = move(screenshot);
view.reset_zoom();
on_test_complete();
});
} else {
view.take_screenshot()->when_resolved([&view, &test](RefPtr<Gfx::Bitmap> screenshot) {
test.actual_screenshot = move(screenshot);
view.reset_zoom();
view.debug_request("load-reference-page");
});
}
@ -358,6 +367,10 @@ static void run_ref_test(HeadlessWebView& view, Test& test, URL::URL const& url,
timer->start(milliseconds);
};
view.on_set_browser_zoom = [&view](double factor) {
view.set_zoom(factor);
};
view.load(url);
timer->start();
}