Modified: trunk/Tools/ChangeLog (185404 => 185405)
--- trunk/Tools/ChangeLog 2015-06-10 06:26:57 UTC (rev 185404)
+++ trunk/Tools/ChangeLog 2015-06-10 07:29:36 UTC (rev 185405)
@@ -1,3 +1,18 @@
+2015-06-10 Hyungwook Lee <[email protected]>
+
+ [EFL] Execute _javascript_ method in mini browser address bar.
+ https://bugs.webkit.org/show_bug.cgi?id=145725
+
+ Reviewed by Gyuyoung Kim.
+
+ Support '_javascript_:' scheme in WebKit EFL Mini Browser.
+
+ * MiniBrowser/efl/main.c:
+ (url_from_user_input):
+ (url_load_from_user_input):
+ (on_url_bar_activated):
+ (elm_main):
+
2015-06-09 Hyungwook Lee <[email protected]>
Implement dumpProgressFinishedCallback() for Win layoutTestController.
Modified: trunk/Tools/MiniBrowser/efl/main.c (185404 => 185405)
--- trunk/Tools/MiniBrowser/efl/main.c 2015-06-10 06:26:57 UTC (rev 185404)
+++ trunk/Tools/MiniBrowser/efl/main.c 2015-06-10 07:29:36 UTC (rev 185405)
@@ -1038,7 +1038,7 @@
url_from_user_input(const char *arg)
{
/* If it is already a URL, return the argument as is. */
- if (has_scheme(arg) || !strcasecmp(arg, "about:blank"))
+ if (has_scheme(arg) || eina_str_has_prefix(arg, "_javascript_:") || !strcasecmp(arg, "about:blank"))
return strdup(arg);
Eina_Strbuf *buf = eina_strbuf_manage_new(eina_file_path_sanitize(arg));
@@ -1060,6 +1060,18 @@
return url;
}
+static Eina_Bool
+url_load_from_user_input(Evas_Object *ewk_view, const char *url)
+{
+ if (!ewk_view || !url)
+ return EINA_FALSE;
+
+ if (eina_str_has_prefix(url, "_javascript_:"))
+ return ewk_view_script_execute(ewk_view, strstr(url, "_javascript_:"), 0, 0);
+
+ return ewk_view_url_set(ewk_view, url);
+}
+
static void
on_url_bar_activated(void *user_data, Evas_Object *url_bar, void *event_info)
{
@@ -1068,7 +1080,7 @@
const char *markup_url = elm_entry_entry_get(url_bar);
char *user_url = elm_entry_markup_to_utf8(markup_url);
char *url = ""
- ewk_view_url_set(window->ewk_view, url);
+ url_load_from_user_input(window->ewk_view, url);
free(user_url);
free(url);
@@ -2461,7 +2473,7 @@
if (args < argc) {
char *url = ""
- ewk_view_url_set(window->ewk_view, url);
+ url_load_from_user_input(window->ewk_view, url);
free(url);
} else
ewk_view_url_set(window->ewk_view, DEFAULT_URL);