All pastes #461016 Raw Edit

gdklauncher-urlparsing-0.3.patch

public text v1 · immutable
#461016 ·published 2007-04-27 13:49 UTC
rendered paste body
Index: WebKitTools/GdkLauncher/main.cpp
===================================================================
--- WebKitTools/GdkLauncher/main.cpp	(revision 21144)
+++ WebKitTools/GdkLauncher/main.cpp	(working copy)
@@ -42,13 +42,23 @@ static void handleGdkEvent(GtkWidget* wi
     gFrame->handleGdkEvent(event);
 }
 
+static KURL autocorrectURL(const gchar* url)
+{
+    KURL parseURL;
+    if (!g_strncasecmp(url, "http://", 7) || !g_strncasecmp(url, "ftp://", 6))
+        parseURL = KURL(url);
+    else
+        parseURL = KURL(DeprecatedString("http://") + url);
+    assert(parseURL.isValid());
+    return parseURL;
+}
+
 static void goToUrlBarText(GtkWidget* urlBarEntry)
 {
     const gchar* url = gtk_entry_get_text(GTK_ENTRY(urlBarEntry));
     if (strEmpty(url))
         return;
-    // FIXME: append "http://" if doesn't have a scheme
-    gFrame->loader()->load(url, 0);
+    gFrame->loader()->load(ResourceRequest(autocorrectURL(url)));
 }
 
 static void goButtonClickedCb(GtkWidget* widget, GtkWidget* entry)
@@ -114,7 +124,7 @@ int main(int argc, char* argv[]) 
 {
     gtk_init(&argc, &argv);
 
-    const char* url = "http://www.google.com";
+    KURL url("http://www.google.com");
     bool exitAfterLoading = false;
     bool dumpRenderTree = false;
     for (int argPos = 1; argPos < argc; ++argPos) {
@@ -134,7 +144,7 @@ int main(int argc, char* argv[]) 
         else if (strEq(currArg, "-dumprendertree"))
             dumpRenderTree = true;
         else
-            url = currArg;
+            url = autocorrectURL(currArg);
     }
 
     GtkWidget* menuMain = gtk_menu_new();
@@ -202,8 +212,7 @@ int main(int argc, char* argv[]) 
     gFrame->setView(frameView);
     frameView->ScrollView::setDrawable(frameWindow->window);
 
-    printf("OPENING URL == %s \n", url);
-    gFrame->loader()->load(ResourceRequest(KURL(url)));
+    gFrame->loader()->load(ResourceRequest(url));
     gtk_main();
 #if 0 // FIXME: this crashes at the moment. needs to provide DragClient
     delete page;