Modified: trunk/Tools/ChangeLog (130645 => 130646)
--- trunk/Tools/ChangeLog 2012-10-08 16:14:24 UTC (rev 130645)
+++ trunk/Tools/ChangeLog 2012-10-08 16:33:32 UTC (rev 130646)
@@ -1,3 +1,17 @@
+2012-10-08 Christophe Dumez <[email protected]>
+
+ [EFL][WK2] Add support for window.create in Minibrowser
+ https://bugs.webkit.org/show_bug.cgi?id=98649
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Calling window.create() from _javascript_ now creates a
+ new window in Minibrowser, as directed.
+
+ * MiniBrowser/efl/main.c:
+ (on_new_window):
+ (window_create):
+
2012-10-08 Andreas Kling <[email protected]>
Using float/double as WTF hash table key is unreliable.
Modified: trunk/Tools/MiniBrowser/efl/main.c (130645 => 130646)
--- trunk/Tools/MiniBrowser/efl/main.c 2012-10-08 16:14:24 UTC (rev 130645)
+++ trunk/Tools/MiniBrowser/efl/main.c 2012-10-08 16:33:32 UTC (rev 130646)
@@ -220,6 +220,15 @@
}
static void
+on_new_window(void *user_data, Evas_Object *webview, void *event_info)
+{
+ Evas_Object **new_view = (Evas_Object **)event_info;
+ Browser_Window *window = window_create(NULL, EINA_FALSE);
+ *new_view = window->webview;
+ windows = eina_list_append(windows, window);
+}
+
+static void
on_progress(void *user_data, Evas_Object *webview, void *event_info)
{
Browser_Window *window = (Browser_Window *)user_data;
@@ -328,6 +337,7 @@
Ewk_Settings *settings = ewk_view_settings_get(window->webview);
ewk_settings_file_access_from_file_urls_allowed_set(settings, EINA_TRUE);
+ evas_object_smart_callback_add(window->webview, "create,window", on_new_window, window);
evas_object_smart_callback_add(window->webview, "download,failed", on_download_failed, window);
evas_object_smart_callback_add(window->webview, "download,finished", on_download_finished, window);
evas_object_smart_callback_add(window->webview, "download,request", on_download_request, window);
@@ -347,7 +357,8 @@
window->url_bar = url_bar_add(window->webview, DEFAULT_WIDTH);
- ewk_view_url_set(window->webview, url);
+ if (url)
+ ewk_view_url_set(window->webview, url);
return window;
}