| Index: chrome/browser/ui/tab_contents/tab_contents_wrapper.cc
|
| ===================================================================
|
| --- chrome/browser/ui/tab_contents/tab_contents_wrapper.cc (revision 75329)
|
| +++ 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_;
|
|
|