diff -p -up webkit-1.2.0/WebKit/gtk/webkit/webkitwebsettings.cpp.allowScriptsToCloseWindows webkit-1.2.0/WebKit/gtk/webkit/webkitwebsettings.cpp --- webkit-1.2.0/WebKit/gtk/webkit/webkitwebsettings.cpp.allowScriptsToCloseWindows 2010-04-05 12:51:20.000000000 +0000 +++ webkit-1.2.0/WebKit/gtk/webkit/webkitwebsettings.cpp 2010-05-18 18:20:16.397666673 +0000 @@ -96,6 +96,7 @@ struct _WebKitWebSettingsPrivate { gboolean enable_spatial_navigation; gchar* user_agent; gboolean javascript_can_open_windows_automatically; + gboolean allow_scripts_to_close_windows; gboolean enable_offline_web_application_cache; WebKitEditingBehavior editing_behavior; gboolean enable_universal_access_from_file_uris; @@ -145,6 +146,7 @@ enum { PROP_ENABLE_SPATIAL_NAVIGATION, PROP_USER_AGENT, PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, + PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS, PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE, PROP_EDITING_BEHAVIOR, PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS, @@ -623,6 +625,21 @@ static void webkit_web_settings_class_in _("Whether JavaScript can open windows automatically"), FALSE, flags)); + + /** + * WebKitWebSettings: allow-scripts-to-close-windows + * + * Whether JavaScript can close windows automatically without user intervention. + * + */ + g_object_class_install_property(gobject_class, + PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS, + g_param_spec_boolean("allow-scripts-to-close-windows", + _("JavaScript can close windows automatically"), + _("Whether JavaScript can close windows automatically"), + FALSE, + flags)); + /** * WebKitWebSettings:enable-offline-web-application-cache * @@ -1023,6 +1040,9 @@ static void webkit_web_settings_set_prop case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: priv->javascript_can_open_windows_automatically = g_value_get_boolean(value); break; + case PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS: + priv->allow_scripts_to_close_windows = g_value_get_boolean(value); + break; case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: priv->enable_offline_web_application_cache = g_value_get_boolean(value); break; @@ -1161,6 +1181,9 @@ static void webkit_web_settings_get_prop case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: g_value_set_boolean(value, priv->javascript_can_open_windows_automatically); break; + case PROP_ALLOW_SCRIPTS_TO_CLOSE_WINDOWS: + g_value_set_boolean(value, priv->allow_scripts_to_close_windows); + break; case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: g_value_set_boolean(value, priv->enable_offline_web_application_cache); break; diff -p -up webkit-1.2.0/WebKit/gtk/webkit/webkitwebview.cpp.allowScriptsToCloseWindows webkit-1.2.0/WebKit/gtk/webkit/webkitwebview.cpp --- webkit-1.2.0/WebKit/gtk/webkit/webkitwebview.cpp.allowScriptsToCloseWindows 2010-04-05 12:51:20.000000000 +0000 +++ webkit-1.2.0/WebKit/gtk/webkit/webkitwebview.cpp 2010-05-18 18:24:29.157666357 +0000 @@ -2677,7 +2677,7 @@ static void webkit_web_view_update_setti gboolean autoLoadImages, autoShrinkImages, printBackgrounds, enableScripts, enablePlugins, enableDeveloperExtras, resizableTextAreas, enablePrivateBrowsing, enableCaretBrowsing, enableHTML5Database, enableHTML5LocalStorage, - enableXSSAuditor, enableSpatialNavigation, javascriptCanOpenWindows, enableOfflineWebAppCache, + enableXSSAuditor, enableSpatialNavigation, javascriptCanOpenWindows, allowScriptsToCloseWindows, enableOfflineWebAppCache, enableUniversalAccessFromFileURI, enableFileAccessFromFileURI, enableDOMPaste, tabKeyCyclesThroughElements, enableSiteSpecificQuirks, usePageCache, enableJavaApplet; @@ -2707,6 +2707,7 @@ static void webkit_web_view_update_setti "enable-xss-auditor", &enableXSSAuditor, "enable-spatial-navigation", &enableSpatialNavigation, "javascript-can-open-windows-automatically", &javascriptCanOpenWindows, + "allow-scripts-to-close-windows", &allowScriptsToCloseWindows, "enable-offline-web-application-cache", &enableOfflineWebAppCache, "editing-behavior", &editingBehavior, "enable-universal-access-from-file-uris", &enableUniversalAccessFromFileURI, @@ -2742,6 +2743,7 @@ static void webkit_web_view_update_setti settings->setXSSAuditorEnabled(enableXSSAuditor); settings->setSpatialNavigationEnabled(enableSpatialNavigation); settings->setJavaScriptCanOpenWindowsAutomatically(javascriptCanOpenWindows); + settings->setAllowScriptsToCloseWindows(allowScriptsToCloseWindows); settings->setOfflineWebApplicationCacheEnabled(enableOfflineWebAppCache); settings->setEditingBehavior(core(editingBehavior)); settings->setAllowUniversalAccessFromFileURLs(enableUniversalAccessFromFileURI); @@ -2839,6 +2841,8 @@ static void webkit_web_view_settings_not settings->setSpatialNavigationEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("javascript-can-open-windows-automatically")) settings->setJavaScriptCanOpenWindowsAutomatically(g_value_get_boolean(&value)); + else if (name == g_intern_string("allow-scripts-to-close-windows")) + settings->setAllowScriptsToCloseWindows(g_value_get_boolean(&value)); else if (name == g_intern_string("enable-offline-web-application-cache")) settings->setOfflineWebApplicationCacheEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("editing-behavior"))