From bdaea37070f420bea13a34081e56db1ee792d040 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Mon, 9 May 2016 11:01:18 +0200 Subject: [Simplebrowser] Fix command line option parsing. Passing just command line options to Chromium prevents loading of the initial startup url. This happens because the startup url is overridden by the last command line argument, which happens to be a Chromium option, thus an invalid URL. Fix consists in using the last command line argument as the loading url only if it can be parsed as valid url. Change-Id: I3615ef57b6eddc5098de79cba1b1ba6b6af193ef Reviewed-by: Allan Sandfeld Jensen --- examples/webenginewidgets/simplebrowser/main.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'examples') diff --git a/examples/webenginewidgets/simplebrowser/main.cpp b/examples/webenginewidgets/simplebrowser/main.cpp index 761403fb5..750e7ae43 100644 --- a/examples/webenginewidgets/simplebrowser/main.cpp +++ b/examples/webenginewidgets/simplebrowser/main.cpp @@ -42,6 +42,18 @@ #include "browserwindow.h" #include +QString getCommandLineUrlArgument() +{ + const QStringList args = QCoreApplication::arguments(); + if (args.count() > 1) { + const QString lastArg = args.last(); + const bool isValidUrl = QUrl::fromUserInput(lastArg).isValid(); + if (isValidUrl) + return lastArg; + } + return QString(); +} + int main(int argc, char **argv) { QApplication app(argc, argv); @@ -50,9 +62,9 @@ int main(int argc, char **argv) BrowserWindow *window = new BrowserWindow(); Browser::instance().addWindow(window); - QStringList args = QCoreApplication::arguments(); - if (args.count() > 1) - window->loadPage(args.last()); + const QString url = getCommandLineUrlArgument(); + if (!url.isEmpty()) + window->loadPage(url); else window->loadHomePage(); -- cgit v1.2.3