Implement popup blocking

SVN revision: 52213
This commit is contained in:
Leandro Pereira 2010-09-13 22:34:42 +00:00
parent 4012dd2d7d
commit ffd9f34ccd
4 changed files with 37 additions and 4 deletions

View File

@ -67,6 +67,7 @@ typedef enum {
EVE_PREF_ENABLE_PRIVATE_MODE,
EVE_PREF_AUTO_LOAD_IMAGES,
EVE_PREF_AUTO_SHRINK_IMAGES,
EVE_PREF_POPUP_ALLOW,
EVE_PREF_LAST
} Eve_Preference;
@ -175,6 +176,13 @@ static More_Menu_Item more_menu_preferences[] =
.pref_get = prefs_enable_auto_shrink_images_get,
.pref_set = prefs_enable_auto_shrink_images_set
}}, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_PREFERENCE, "Allow popup windows",
(More_Menu_Preference[]) {{
.type = PREF_TYPE_CHECKBOX,
.pref = EVE_PREF_POPUP_ALLOW,
.pref_get = prefs_allow_popup_get,
.pref_set = prefs_allow_popup_set
}}, NULL, ITEM_FLAG_NONE },
{ ITEM_TYPE_PREFERENCE, "User agent",
(More_Menu_Preference[]) {{
.type = PREF_TYPE_LIST,
@ -955,6 +963,7 @@ chrome_prefs_apply(Evas_Object *chrome)
ewk_view_setting_private_browsing_set(view, prefs_enable_private_mode_get(prefs));
ewk_view_setting_auto_load_images_set(view, prefs_enable_auto_load_images_get(prefs));
ewk_view_setting_auto_shrink_images_set(view, prefs_enable_auto_shrink_images_get(prefs));
ewk_view_setting_scripts_window_open_set(view, prefs_allow_popup_get(prefs));
window_mouse_enabled_set(win->win, prefs_enable_mouse_cursor_get(prefs));
}
@ -1006,6 +1015,11 @@ pref_updated(More_Menu_Preference *p, void *new_value)
SET_PREF_TO_ALL_VIEWS(ewk_view_setting_auto_shrink_images_set, *((int *)new_value));
break;
}
case EVE_PREF_POPUP_ALLOW:
{
SET_PREF_TO_ALL_VIEWS(ewk_view_setting_scripts_window_open_set, *((int *)new_value));
break;
}
case EVE_PREF_MOUSE_CURSOR:
{
EINA_LIST_FOREACH(app.windows, win_iter, win)

View File

@ -463,9 +463,10 @@ elm_main(int argc, char **argv)
prefs = prefs_load(path);
if (!prefs)
{
prefs = prefs_new(EINA_FALSE, EINA_TRUE, EINA_FALSE,
prefs = prefs_new(EINA_TRUE, EINA_TRUE, EINA_FALSE,
EINA_TRUE, "eve", DEFAULT_URL, NULL,
EINA_FALSE, EINA_TRUE, EINA_FALSE);
EINA_FALSE, EINA_TRUE, EINA_FALSE,
EINA_TRUE);
prefs_save(prefs, path);
}

View File

@ -20,6 +20,7 @@ struct _Prefs {
char enable_private_mode;
char enable_auto_load_images;
char enable_auto_shrink_images;
char allow_popup;
const char *__eet_filename;
};
@ -47,6 +48,7 @@ _prefs_init(void)
EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_private_mode", enable_private_mode, EET_T_CHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_auto_load_images", enable_auto_load_images, EET_T_CHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "enable_auto_shrink_images", enable_auto_shrink_images, EET_T_CHAR);
EET_DATA_DESCRIPTOR_ADD_BASIC(_prefs_descriptor, Prefs, "allow_popup", allow_popup, EET_T_CHAR);
}
static inline void
@ -58,7 +60,7 @@ _prefs_shutdown(void)
}
Prefs *
prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plugins, char enable_javascript, const char * user_agent, const char * home_page, const char * proxy, char enable_private_mode, char enable_auto_load_images, char enable_auto_shrink_images)
prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plugins, char enable_javascript, const char * user_agent, const char * home_page, const char * proxy, char enable_private_mode, char enable_auto_load_images, char enable_auto_shrink_images, char allow_popup)
{
Prefs *prefs = calloc(1, sizeof(Prefs));
@ -78,6 +80,7 @@ prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plu
prefs->enable_private_mode = enable_private_mode;
prefs->enable_auto_load_images = enable_auto_load_images;
prefs->enable_auto_shrink_images = enable_auto_shrink_images;
prefs->allow_popup = allow_popup;
return prefs;
}
@ -224,6 +227,19 @@ prefs_enable_auto_shrink_images_set(Prefs *prefs, char enable_auto_shrink_images
prefs->enable_auto_shrink_images = enable_auto_shrink_images;
}
inline char
prefs_allow_popup_get(const Prefs *prefs)
{
return prefs->allow_popup;
}
inline void
prefs_allow_popup_set(Prefs *prefs, char allow_popup)
{
EINA_SAFETY_ON_NULL_RETURN(prefs);
prefs->allow_popup = allow_popup;
}
Prefs *
prefs_load(const char *filename)
{

View File

@ -10,7 +10,7 @@
typedef struct _Prefs Prefs;
/* Prefs */
Prefs *prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plugins, char enable_javascript, const char * user_agent, const char * home_page, const char * proxy, char enable_private_mode, char enable_auto_load_images, char enable_auto_shrink_images);
Prefs *prefs_new(char enable_mouse_cursor, char enable_touch_interface, char enable_plugins, char enable_javascript, const char * user_agent, const char * home_page, const char * proxy, char enable_private_mode, char enable_auto_load_images, char enable_auto_shrink_images, char allow_popup);
void prefs_free(Prefs *prefs);
void prefs_enable_mouse_cursor_set(Prefs *prefs, char enable_mouse_cursor);
@ -33,6 +33,8 @@ void prefs_enable_auto_load_images_set(Prefs *prefs, char enable_auto_load_image
char prefs_enable_auto_load_images_get(const Prefs *prefs);
void prefs_enable_auto_shrink_images_set(Prefs *prefs, char enable_auto_shrink_images);
char prefs_enable_auto_shrink_images_get(const Prefs *prefs);
void prefs_allow_popup_set(Prefs *prefs, char allow_popup);
char prefs_allow_popup_get(const Prefs *prefs);
Prefs *prefs_load(const char *filename);
Eina_Bool prefs_save(Prefs *prefs, const char *filename);