Modified: trunk/Tools/ChangeLog (130659 => 130660)
--- trunk/Tools/ChangeLog 2012-10-08 18:35:35 UTC (rev 130659)
+++ trunk/Tools/ChangeLog 2012-10-08 18:37:40 UTC (rev 130660)
@@ -1,3 +1,19 @@
+2012-10-08 Christophe Dumez <christophe.du...@intel.com>
+
+ [EFL][WK2] Add support for window.close in Minibrowser
+ https://bugs.webkit.org/show_bug.cgi?id=98667
+
+ Reviewed by Laszlo Gombos.
+
+ When calling window.close() from _javascript_, MiniBrowser
+ now closes the given window.
+
+ * MiniBrowser/efl/main.c:
+ (window_close):
+ (on_ecore_evas_delete):
+ (on_close_window):
+ (window_create):
+
2012-10-08 Ojan Vafai <o...@chromium.org>
Properly strip new tests from the test results json if they are pass/nodata/skip.
Modified: trunk/Tools/MiniBrowser/efl/main.c (130659 => 130660)
--- trunk/Tools/MiniBrowser/efl/main.c 2012-10-08 18:35:35 UTC (rev 130659)
+++ trunk/Tools/MiniBrowser/efl/main.c 2012-10-08 18:37:40 UTC (rev 130660)
@@ -98,6 +98,15 @@
free(window);
}
+static void window_close(Browser_Window *window)
+{
+ windows = eina_list_remove(windows, window);
+ window_free(window);
+
+ if (!windows)
+ ecore_main_loop_quit();
+}
+
static Eina_Bool main_signal_exit(void *data, int ev_type, void *ev)
{
Browser_Window *window;
@@ -110,13 +119,7 @@
static void on_ecore_evas_delete(Ecore_Evas *ee)
{
- Browser_Window *window = browser_window_find(ee);
-
- window_free(window);
- windows = eina_list_remove(windows, window);
-
- if (!windows)
- ecore_main_loop_quit();
+ window_close(browser_window_find(ee));
}
static void on_ecore_evas_resize(Ecore_Evas *ee)
@@ -232,6 +235,12 @@
}
static void
+on_close_window(void *user_data, void *event_info)
+{
+ window_close((Browser_Window *)user_data);
+}
+
+static void
on_progress(void *user_data, Evas_Object *webview, void *event_info)
{
Browser_Window *window = (Browser_Window *)user_data;
@@ -340,6 +349,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, "close,window", on_close_window, window);
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);