summaryrefslogtreecommitdiffstats
path: root/WebKit/efl/ewk/ewk_view.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/efl/ewk/ewk_view.cpp')
-rw-r--r--WebKit/efl/ewk/ewk_view.cpp26
1 files changed, 22 insertions, 4 deletions
diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp
index d5920e5..8d66734 100644
--- a/WebKit/efl/ewk/ewk_view.cpp
+++ b/WebKit/efl/ewk/ewk_view.cpp
@@ -18,6 +18,7 @@
Boston, MA 02110-1301, USA.
*/
+#define __STDC_FORMAT_MACROS
#include "config.h"
#include "ewk_view.h"
@@ -43,6 +44,7 @@
#include <Eina.h>
#include <Evas.h>
#include <eina_safety_checks.h>
+#include <inttypes.h>
#include <sys/time.h>
#define ZOOM_MIN (0.05)
@@ -706,6 +708,7 @@ static void _ewk_view_smart_del(Evas_Object* o)
EWK_VIEW_SD_GET(o, sd);
Ewk_View_Private_Data* priv = sd ? sd->_priv : 0;
+ ewk_view_stop(o);
_parent_sc.del(o);
_ewk_view_priv_del(priv);
}
@@ -3150,21 +3153,36 @@ void ewk_view_restore_state(Evas_Object* o, Evas_Object* frame)
/**
* @internal
* Delegates to browser the creation of a new window. If it is not implemented,
- * current view is returned, so navigation might continue in same window.
+ * current view is returned, so navigation might continue in same window. If
+ * browser supports the creation of new windows, a new Ewk_Window_Features is
+ * created and passed to browser. If it intends to keep the request for opening
+ * the window later it must increments the Ewk_Winwdow_Features ref count by
+ * calling ewk_window_features_ref(window_features). Otherwise this struct will
+ * be freed after returning to this function.
*
* @param o Current view.
+ * @param javascript @c EINA_TRUE if the new window is originated from javascript,
+ * @c EINA_FALSE otherwise
+ * @param window_features Features of the new window being created. If it's @c
+ * NULL, it will be created a window with default features.
*
* @return New view, in case smart class implements the creation of new windows;
* else, current view @param o.
+ *
+ * @see ewk_window_features_ref().
*/
-Evas_Object* ewk_view_window_create(Evas_Object* o)
+Evas_Object* ewk_view_window_create(Evas_Object* o, Eina_Bool javascript, const WebCore::WindowFeatures* coreFeatures)
{
EWK_VIEW_SD_GET_OR_RETURN(o, sd, 0);
if (!sd->api->window_create)
return o;
- return sd->api->window_create(sd);
+ Ewk_Window_Features* window_features = ewk_window_features_new_from_core(coreFeatures);
+ Evas_Object* view = sd->api->window_create(sd, javascript, window_features);
+ ewk_window_features_unref(window_features);
+
+ return view;
}
/**
@@ -3449,7 +3467,7 @@ uint64_t ewk_view_exceeded_database_quota(Evas_Object* o, Evas_Object* frame, co
if (!sd->api->exceeded_database_quota)
return 0;
- ERR("##### %lu %lu", current_size, expected_size);
+ INF("current_size=%"PRIu64" expected_size="PRIu64, current_size, expected_size);
return sd->api->exceeded_database_quota(sd, frame, databaseName, current_size, expected_size);
}