Index: chrome/browser/ui/tab_contents/tab_contents_wrapper.cc |
=================================================================== |
--- chrome/browser/ui/tab_contents/tab_contents_wrapper.cc (revision 75368) |
+++ chrome/browser/ui/tab_contents/tab_contents_wrapper.cc (working copy) |
@@ -8,12 +8,21 @@ |
#include "chrome/browser/bookmarks/bookmark_model.h" |
#include "chrome/browser/password_manager/password_manager.h" |
#include "chrome/browser/password_manager_delegate_impl.h" |
+#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/tab_contents/tab_contents.h" |
+#include "chrome/browser/tab_contents/infobar_delegate.h" |
#include "chrome/browser/ui/find_bar/find_tab_helper.h" |
#include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" |
#include "chrome/browser/ui/tab_contents/tab_contents_wrapper_delegate.h" |
#include "chrome/common/notification_service.h" |
+#include "chrome/common/pref_names.h" |
+#include "chrome/common/render_messages.h" |
+#include "content/browser/tab_contents/tab_contents.h" |
+#include "grit/locale_settings.h" |
+#include "grit/generated_resources.h" |
+#include "grit/platform_locale_settings.h" |
+#include "ui/base/l10n/l10n_util.h" |
+#include "webkit/glue/webpreferences.h" |
static base::LazyInstance<PropertyAccessor<TabContentsWrapper*> > |
g_tab_contents_wrapper_property_accessor(base::LINKER_INITIALIZED); |
@@ -54,6 +63,106 @@ |
return g_tab_contents_wrapper_property_accessor.Pointer(); |
} |
+void TabContentsWrapper::RegisterUserPrefs(PrefService* prefs) { |
+ prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, true); |
+ |
+ WebPreferences pref_defaults; |
+ prefs->RegisterBooleanPref(prefs::kWebKitJavascriptEnabled, |
+ pref_defaults.javascript_enabled); |
+ prefs->RegisterBooleanPref(prefs::kWebKitWebSecurityEnabled, |
+ pref_defaults.web_security_enabled); |
+ prefs->RegisterBooleanPref( |
+ prefs::kWebKitJavascriptCanOpenWindowsAutomatically, true); |
+ prefs->RegisterBooleanPref(prefs::kWebKitLoadsImagesAutomatically, |
+ pref_defaults.loads_images_automatically); |
+ prefs->RegisterBooleanPref(prefs::kWebKitPluginsEnabled, |
+ pref_defaults.plugins_enabled); |
+ prefs->RegisterBooleanPref(prefs::kWebKitDomPasteEnabled, |
+ pref_defaults.dom_paste_enabled); |
+ prefs->RegisterBooleanPref(prefs::kWebKitShrinksStandaloneImagesToFit, |
+ pref_defaults.shrinks_standalone_images_to_fit); |
+ prefs->RegisterDictionaryPref(prefs::kWebKitInspectorSettings); |
+ prefs->RegisterBooleanPref(prefs::kWebKitTextAreasAreResizable, |
+ pref_defaults.text_areas_are_resizable); |
+ prefs->RegisterBooleanPref(prefs::kWebKitJavaEnabled, |
+ pref_defaults.java_enabled); |
+ prefs->RegisterBooleanPref(prefs::kWebkitTabsToLinks, |
+ pref_defaults.tabs_to_links); |
+ |
+ prefs->RegisterLocalizedStringPref(prefs::kAcceptLanguages, |
+ IDS_ACCEPT_LANGUAGES); |
+ prefs->RegisterLocalizedStringPref(prefs::kDefaultCharset, |
+ IDS_DEFAULT_ENCODING); |
+ prefs->RegisterLocalizedBooleanPref(prefs::kWebKitStandardFontIsSerif, |
+ IDS_STANDARD_FONT_IS_SERIF); |
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitFixedFontFamily, |
+ IDS_FIXED_FONT_FAMILY); |
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSerifFontFamily, |
+ IDS_SERIF_FONT_FAMILY); |
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitSansSerifFontFamily, |
+ IDS_SANS_SERIF_FONT_FAMILY); |
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitCursiveFontFamily, |
+ IDS_CURSIVE_FONT_FAMILY); |
+ prefs->RegisterLocalizedStringPref(prefs::kWebKitFantasyFontFamily, |
+ IDS_FANTASY_FONT_FAMILY); |
+ prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFontSize, |
+ IDS_DEFAULT_FONT_SIZE); |
+ prefs->RegisterLocalizedIntegerPref(prefs::kWebKitDefaultFixedFontSize, |
+ IDS_DEFAULT_FIXED_FONT_SIZE); |
+ prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumFontSize, |
+ IDS_MINIMUM_FONT_SIZE); |
+ prefs->RegisterLocalizedIntegerPref(prefs::kWebKitMinimumLogicalFontSize, |
+ IDS_MINIMUM_LOGICAL_FONT_SIZE); |
+ prefs->RegisterLocalizedBooleanPref(prefs::kWebKitUsesUniversalDetector, |
+ IDS_USES_UNIVERSAL_DETECTOR); |
+ prefs->RegisterLocalizedStringPref(prefs::kStaticEncodings, |
+ IDS_STATIC_ENCODING_LIST); |
+} |
+ |
+string16 TabContentsWrapper::GetDefaultTitle() { |
+ return l10n_util::GetStringUTF16(IDS_DEFAULT_TAB_TITLE); |
+} |
+ |
+string16 TabContentsWrapper::GetStatusText() const { |
+ if (!tab_contents()->is_loading() || |
+ tab_contents()->load_state() == net::LOAD_STATE_IDLE) { |
+ return string16(); |
+ } |
+ |
+ switch (tab_contents()->load_state()) { |
+ case net::LOAD_STATE_WAITING_FOR_CACHE: |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_WAITING_FOR_CACHE); |
+ case net::LOAD_STATE_ESTABLISHING_PROXY_TUNNEL: |
+ return |
+ l10n_util::GetStringUTF16(IDS_LOAD_STATE_ESTABLISHING_PROXY_TUNNEL); |
+ case net::LOAD_STATE_RESOLVING_PROXY_FOR_URL: |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_RESOLVING_PROXY_FOR_URL); |
+ case net::LOAD_STATE_RESOLVING_HOST: |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_RESOLVING_HOST); |
+ case net::LOAD_STATE_CONNECTING: |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_CONNECTING); |
+ case net::LOAD_STATE_SSL_HANDSHAKE: |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_SSL_HANDSHAKE); |
+ case net::LOAD_STATE_SENDING_REQUEST: |
+ if (tab_contents()->upload_size()) |
+ return l10n_util::GetStringFUTF16Int( |
+ IDS_LOAD_STATE_SENDING_REQUEST_WITH_PROGRESS, |
+ static_cast<int>((100 * tab_contents()->upload_position()) / |
+ tab_contents()->upload_size())); |
+ else |
+ return l10n_util::GetStringUTF16(IDS_LOAD_STATE_SENDING_REQUEST); |
+ case net::LOAD_STATE_WAITING_FOR_RESPONSE: |
+ return l10n_util::GetStringFUTF16(IDS_LOAD_STATE_WAITING_FOR_RESPONSE, |
+ tab_contents()->load_state_host()); |
+ // Ignore net::LOAD_STATE_READING_RESPONSE and net::LOAD_STATE_IDLE |
+ case net::LOAD_STATE_IDLE: |
+ case net::LOAD_STATE_READING_RESPONSE: |
+ break; |
+ } |
+ |
+ return string16(); |
+} |
+ |
TabContentsWrapper* TabContentsWrapper::Clone() { |
TabContents* new_contents = tab_contents()->Clone(); |
TabContentsWrapper* new_wrapper = new TabContentsWrapper(new_contents); |
@@ -77,6 +186,15 @@ |
UpdateStarredStateForCurrentURL(); |
} |
+bool TabContentsWrapper::OnMessageReceived(const IPC::Message& message) { |
+ bool handled = true; |
+ IPC_BEGIN_MESSAGE_MAP(TabContentsWrapper, message) |
+ IPC_MESSAGE_HANDLER(ViewHostMsg_JSOutOfMemory, OnJSOutOfMemory) |
+ IPC_MESSAGE_UNHANDLED(handled = false) |
+ IPC_END_MESSAGE_MAP() |
+ return handled; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// TabContentsWrapper, NotificationObserver implementation: |
@@ -105,6 +223,11 @@ |
//////////////////////////////////////////////////////////////////////////////// |
// Internal helpers |
+void TabContentsWrapper::OnJSOutOfMemory() { |
+ tab_contents()->AddInfoBar(new SimpleAlertInfoBarDelegate(tab_contents(), |
+ NULL, l10n_util::GetStringUTF16(IDS_JS_OUT_OF_MEMORY_PROMPT), true)); |
+} |
+ |
void TabContentsWrapper::UpdateStarredStateForCurrentURL() { |
BookmarkModel* model = tab_contents()->profile()->GetBookmarkModel(); |
const bool old_state = is_starred_; |