diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-21 17:55:55 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-21 17:55:55 +0000 |
commit | f0c25f02bcf2690ca6a24e7be72fd7be87c7198c (patch) | |
tree | d3a7d693c468aaac53616381006985b905f22221 /content/shell | |
parent | 390f837febccbc849abad049f013678ed87cbf66 (diff) | |
download | chromium_src-f0c25f02bcf2690ca6a24e7be72fd7be87c7198c.zip chromium_src-f0c25f02bcf2690ca6a24e7be72fd7be87c7198c.tar.gz chromium_src-f0c25f02bcf2690ca6a24e7be72fd7be87c7198c.tar.bz2 |
[content shell] don't use WebTestRunner::WebPreferences in the browser process
Instead, I've added a function that applies the differing defaults, and we
only override the entire WebPreferences when a renderer asks us to.
BUG=111316
TEST=running layout tests in single process mode shouldn't crash immediately
Review URL: https://chromiumcodereview.appspot.com/11666008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174410 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/shell')
-rw-r--r-- | content/shell/webkit_test_controller.cc | 11 | ||||
-rw-r--r-- | content/shell/webkit_test_controller.h | 1 | ||||
-rw-r--r-- | content/shell/webkit_test_helpers.cc | 45 | ||||
-rw-r--r-- | content/shell/webkit_test_helpers.h | 5 |
4 files changed, 25 insertions, 37 deletions
diff --git a/content/shell/webkit_test_controller.cc b/content/shell/webkit_test_controller.cc index 25557ee..7b28276 100644 --- a/content/shell/webkit_test_controller.cc +++ b/content/shell/webkit_test_controller.cc @@ -19,12 +19,9 @@ #include "content/shell/shell_messages.h" #include "content/shell/shell_switches.h" #include "content/shell/webkit_test_helpers.h" -#include "third_party/WebKit/Tools/DumpRenderTree/chromium/TestRunner/public/WebPreferences.h" #include "webkit/fileapi/isolated_context.h" #include "webkit/support/webkit_support_gfx.h" -using WebTestRunner::WebPreferences; - namespace content { namespace { @@ -194,7 +191,7 @@ bool WebKitTestController::ResetAfterLayoutTest() { wait_until_done_ = false; did_finish_load_ = false; prefs_ = webkit_glue::WebPreferences(); - ExportLayoutTestSpecificPreferences(WebPreferences(), &prefs_); + should_override_prefs_ = false; { base::AutoLock lock(lock_); can_open_windows_ = false; @@ -217,7 +214,10 @@ void WebKitTestController::RendererUnresponsive() { void WebKitTestController::OverrideWebkitPrefs( webkit_glue::WebPreferences* prefs) { - CopyLayoutTestSpecificPreferences(prefs_, prefs); + if (should_override_prefs_) + *prefs = prefs_; + else + ApplyLayoutTestDefaultPreferences(prefs); } bool WebKitTestController::CanOpenWindows() const { @@ -386,6 +386,7 @@ void WebKitTestController::OnReadFileToString(const FilePath& local_file, void WebKitTestController::OnOverridePreferences( const webkit_glue::WebPreferences& prefs) { + should_override_prefs_ = true; prefs_ = prefs; } diff --git a/content/shell/webkit_test_controller.h b/content/shell/webkit_test_controller.h index f8566139..17f01fc 100644 --- a/content/shell/webkit_test_controller.h +++ b/content/shell/webkit_test_controller.h @@ -149,6 +149,7 @@ class WebKitTestController : public base::NonThreadSafe, bool did_finish_load_; webkit_glue::WebPreferences prefs_; + bool should_override_prefs_; base::CancelableClosure watchdog_; diff --git a/content/shell/webkit_test_helpers.cc b/content/shell/webkit_test_helpers.cc index 00fc233..0ca1d17 100644 --- a/content/shell/webkit_test_helpers.cc +++ b/content/shell/webkit_test_helpers.cc @@ -44,35 +44,22 @@ void ExportLayoutTestSpecificPreferences(const WebPreferences& from, to->should_respect_image_orientation = from.shouldRespectImageOrientation; } -void CopyLayoutTestSpecificPreferences(const webkit_glue::WebPreferences& from, - webkit_glue::WebPreferences* to) { - to->allow_universal_access_from_file_urls = - from.allow_universal_access_from_file_urls; - to->dom_paste_enabled = from.dom_paste_enabled; - to->javascript_can_access_clipboard = from.javascript_can_access_clipboard; - to->xss_auditor_enabled = from.xss_auditor_enabled; - to->editing_behavior = from.editing_behavior; - to->default_font_size = from.default_font_size; - to->minimum_font_size = from.minimum_font_size; - to->default_encoding = from.default_encoding; - to->javascript_enabled = from.javascript_enabled; - to->supports_multiple_windows = from.supports_multiple_windows; - to->loads_images_automatically = from.loads_images_automatically; - to->plugins_enabled = from.plugins_enabled; - to->java_enabled = from.java_enabled; - to->uses_page_cache = from.uses_page_cache; - to->page_cache_supports_plugins = from.page_cache_supports_plugins; - to->application_cache_enabled = from.application_cache_enabled; - to->tabs_to_links = from.tabs_to_links; - to->experimental_webgl_enabled = from.experimental_webgl_enabled; - to->css_grid_layout_enabled = from.css_grid_layout_enabled; - to->hyperlink_auditing_enabled = from.hyperlink_auditing_enabled; - to->caret_browsing_enabled = from.caret_browsing_enabled; - to->allow_displaying_insecure_content = - from.allow_displaying_insecure_content; - to->allow_running_insecure_content = from.allow_running_insecure_content; - to->css_shaders_enabled = from.css_shaders_enabled; - to->should_respect_image_orientation = from.should_respect_image_orientation; +void ApplyLayoutTestDefaultPreferences(webkit_glue::WebPreferences* prefs) { + prefs->allow_universal_access_from_file_urls = true; + prefs->dom_paste_enabled = true; + prefs->javascript_can_access_clipboard = true; + prefs->xss_auditor_enabled = false; +#if defined(OS_MACOSX) + prefs->editing_behavior = webkit_glue::WebPreferences::EDITING_BEHAVIOR_MAC; +#else + prefs->editing_behavior = webkit_glue::WebPreferences::EDITING_BEHAVIOR_WIN; +#endif + prefs->java_enabled = false; + prefs->application_cache_enabled = true; + prefs->tabs_to_links = false; + prefs->hyperlink_auditing_enabled = false; + prefs->allow_displaying_insecure_content = true; + prefs->allow_running_insecure_content = true; } } // namespace content diff --git a/content/shell/webkit_test_helpers.h b/content/shell/webkit_test_helpers.h index 2a1edb4..4cb9626 100644 --- a/content/shell/webkit_test_helpers.h +++ b/content/shell/webkit_test_helpers.h @@ -22,9 +22,8 @@ namespace content { void ExportLayoutTestSpecificPreferences( const WebTestRunner::WebPreferences& from, webkit_glue::WebPreferences* to); -// Copies the settings relevant to layout tests. -void CopyLayoutTestSpecificPreferences(const webkit_glue::WebPreferences& from, - webkit_glue::WebPreferences* to); +// Applies settings that differ between layout tests and regular mode. +void ApplyLayoutTestDefaultPreferences(webkit_glue::WebPreferences* prefs); } // namespace content |