Index: chrome/browser/protector/session_startup_change.cc |
diff --git a/chrome/browser/protector/session_startup_change.cc b/chrome/browser/protector/session_startup_change.cc |
deleted file mode 100644 |
index 4a73756d4a2e3de809dc910f53d7dce1802a3292..0000000000000000000000000000000000000000 |
--- a/chrome/browser/protector/session_startup_change.cc |
+++ /dev/null |
@@ -1,231 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/basictypes.h" |
-#include "base/compiler_specific.h" |
-#include "base/logging.h" |
-#include "base/metrics/histogram.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/prefs/session_startup_pref.h" |
-#include "chrome/browser/protector/base_prefs_change.h" |
-#include "chrome/browser/protector/histograms.h" |
-#include "chrome/browser/protector/protector_service.h" |
-#include "chrome/browser/protector/protector_service_factory.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/browser_navigator.h" |
-#include "chrome/browser/ui/tabs/pinned_tab_codec.h" |
-#include "chrome/browser/ui/tabs/tab_strip_model.h" |
-#include "chrome/browser/ui/tabs/tab_strip_model.h" |
-#include "chrome/common/pref_names.h" |
-#include "grit/chromium_strings.h" |
-#include "grit/generated_resources.h" |
-#include "grit/theme_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
- |
-namespace protector { |
- |
-// Session startup settings change tracked by Protector. |
-class SessionStartupChange : public BasePrefsChange { |
- public: |
- SessionStartupChange(const SessionStartupPref& actual_startup_pref, |
- const StartupTabs& actual_pinned_tabs, |
- const SessionStartupPref& backup_startup_pref, |
- const StartupTabs& backup_pinned_tabs); |
- |
- // BaseSettingChange overrides: |
- virtual bool Init(Profile* profile) OVERRIDE; |
- virtual void Apply(Browser* browser) OVERRIDE; |
- virtual void Discard(Browser* browser) OVERRIDE; |
- virtual void Timeout() OVERRIDE; |
- virtual int GetBadgeIconID() const OVERRIDE; |
- virtual int GetMenuItemIconID() const OVERRIDE; |
- virtual int GetBubbleIconID() const OVERRIDE; |
- virtual string16 GetBubbleTitle() const OVERRIDE; |
- virtual string16 GetBubbleMessage() const OVERRIDE; |
- virtual string16 GetApplyButtonText() const OVERRIDE; |
- virtual string16 GetDiscardButtonText() const OVERRIDE; |
- virtual DisplayName GetApplyDisplayName() const OVERRIDE; |
- virtual GURL GetNewSettingURL() const OVERRIDE; |
- |
- private: |
- virtual ~SessionStartupChange(); |
- |
- // Returns the first URL that was added to the startup pages. Returns the |
- // first startup URL if they haven't changed. Returns an empty URL if there |
- // are no startup URLs. |
- GURL GetFirstNewURL() const; |
- |
- // Opens all tabs in |tabs| and makes them pinned. |
- void OpenPinnedTabs(Browser* browser, const StartupTabs& tabs); |
- |
- const SessionStartupPref new_startup_pref_; |
- const SessionStartupPref backup_startup_pref_; |
- const StartupTabs new_pinned_tabs_; |
- const StartupTabs backup_pinned_tabs_; |
- |
- DISALLOW_COPY_AND_ASSIGN(SessionStartupChange); |
-}; |
- |
-SessionStartupChange::SessionStartupChange( |
- const SessionStartupPref& actual_startup_pref, |
- const StartupTabs& actual_pinned_tabs, |
- const SessionStartupPref& backup_startup_pref, |
- const StartupTabs& backup_pinned_tabs) |
- : new_startup_pref_(actual_startup_pref), |
- backup_startup_pref_(backup_startup_pref), |
- new_pinned_tabs_(actual_pinned_tabs), |
- backup_pinned_tabs_(backup_pinned_tabs) { |
- UMA_HISTOGRAM_ENUMERATION( |
- kProtectorHistogramStartupSettingsChanged, |
- actual_startup_pref.type, |
- SessionStartupPref::TYPE_COUNT); |
-} |
- |
-SessionStartupChange::~SessionStartupChange() { |
-} |
- |
-bool SessionStartupChange::Init(Profile* profile) { |
- if (!BasePrefsChange::Init(profile)) |
- return false; |
- SessionStartupPref::SetStartupPref(profile, backup_startup_pref_); |
- PinnedTabCodec::WritePinnedTabs(profile, backup_pinned_tabs_); |
- DismissOnPrefChange(prefs::kRestoreOnStartup); |
- DismissOnPrefChange(prefs::kURLsToRestoreOnStartup); |
- DismissOnPrefChange(prefs::kPinnedTabs); |
- return true; |
-} |
- |
-void SessionStartupChange::Apply(Browser* browser) { |
- UMA_HISTOGRAM_ENUMERATION( |
- kProtectorHistogramStartupSettingsApplied, |
- new_startup_pref_.type, |
- SessionStartupPref::TYPE_COUNT); |
- IgnorePrefChanges(); |
- SessionStartupPref::SetStartupPref(profile(), new_startup_pref_); |
- PinnedTabCodec::WritePinnedTabs(profile(), new_pinned_tabs_); |
- OpenPinnedTabs(browser, new_pinned_tabs_); |
-} |
- |
-void SessionStartupChange::Discard(Browser* browser) { |
- UMA_HISTOGRAM_ENUMERATION( |
- kProtectorHistogramStartupSettingsDiscarded, |
- new_startup_pref_.type, |
- SessionStartupPref::TYPE_COUNT); |
- IgnorePrefChanges(); |
- // Nothing to do here since backup has already been made active by Init(). |
-} |
- |
-void SessionStartupChange::Timeout() { |
- UMA_HISTOGRAM_ENUMERATION( |
- kProtectorHistogramStartupSettingsTimeout, |
- new_startup_pref_.type, |
- SessionStartupPref::TYPE_COUNT); |
-} |
- |
-int SessionStartupChange::GetBadgeIconID() const { |
- // Icons are the same for homepage and startup settings. |
- return IDR_HOMEPAGE_CHANGE_BADGE; |
-} |
- |
-int SessionStartupChange::GetMenuItemIconID() const { |
- return IDR_HOMEPAGE_CHANGE_MENU; |
-} |
- |
-int SessionStartupChange::GetBubbleIconID() const { |
- return IDR_HOMEPAGE_CHANGE_ALERT; |
-} |
- |
-string16 SessionStartupChange::GetBubbleTitle() const { |
- return l10n_util::GetStringUTF16(IDS_STARTUP_SETTINGS_CHANGE_TITLE); |
-} |
- |
-string16 SessionStartupChange::GetBubbleMessage() const { |
- return l10n_util::GetStringUTF16(IDS_STARTUP_SETTINGS_CHANGE_BUBBLE_MESSAGE); |
-} |
- |
-string16 SessionStartupChange::GetApplyButtonText() const { |
- if (new_startup_pref_.type == SessionStartupPref::LAST) |
- return l10n_util::GetStringUTF16(IDS_CHANGE_STARTUP_SETTINGS_RESTORE); |
- |
- // Display the domain name of the first startup/pinned URL. |
- string16 first_domain = UTF8ToUTF16(GetFirstNewURL().host()); |
- return first_domain.empty() ? |
- l10n_util::GetStringUTF16(IDS_CHANGE_STARTUP_SETTINGS_NTP) : |
- l10n_util::GetStringFUTF16(IDS_CHANGE_STARTUP_SETTINGS_URLS, |
- first_domain); |
-} |
- |
-string16 SessionStartupChange::GetDiscardButtonText() const { |
- return l10n_util::GetStringUTF16(IDS_KEEP_SETTING); |
-} |
- |
-BaseSettingChange::DisplayName |
-SessionStartupChange::GetApplyDisplayName() const { |
- string16 first_domain = UTF8ToUTF16(GetFirstNewURL().host()); |
- return first_domain.empty() ? |
- BaseSettingChange::GetApplyDisplayName() : |
- DisplayName(kSessionStartupChangeNamePriority, first_domain); |
-} |
- |
-GURL SessionStartupChange::GetNewSettingURL() const { |
- VLOG(1) << "HP URL: " << GetFirstNewURL().spec(); |
- return GetFirstNewURL(); |
-} |
- |
-GURL SessionStartupChange::GetFirstNewURL() const { |
- if (new_startup_pref_.type == SessionStartupPref::LAST) |
- return GURL(); |
- |
- std::set<GURL> old_urls; |
- if (backup_startup_pref_.type == SessionStartupPref::URLS) { |
- old_urls.insert(backup_startup_pref_.urls.begin(), |
- backup_startup_pref_.urls.end()); |
- } |
- for (size_t i = 0; i < backup_pinned_tabs_.size(); ++i) |
- old_urls.insert(backup_pinned_tabs_[i].url); |
- |
- std::vector<GURL> new_urls; |
- if (new_startup_pref_.type == SessionStartupPref::URLS) { |
- new_urls.insert(new_urls.end(), new_startup_pref_.urls.begin(), |
- new_startup_pref_.urls.end()); |
- } |
- for (size_t i = 0; i < new_pinned_tabs_.size(); ++i) |
- new_urls.push_back(new_pinned_tabs_[i].url); |
- |
- if (new_urls.empty()) |
- return GURL(); |
- |
- // First try to find a URL in new settings that is not present in backup. |
- for (size_t i = 0; i < new_urls.size(); ++i) { |
- if (!old_urls.count(new_urls[i])) |
- return new_urls[i]; |
- } |
- // Then fallback to the first of the current startup URLs - this means that |
- // URLs themselves haven't changed. |
- return new_urls[0]; |
-} |
- |
-void SessionStartupChange::OpenPinnedTabs(Browser* browser, |
- const StartupTabs& tabs) { |
- for (size_t i = 0; i < tabs.size(); ++i) { |
- chrome::NavigateParams params(browser, tabs[i].url, |
- content::PAGE_TRANSITION_AUTO_TOPLEVEL); |
- params.disposition = NEW_BACKGROUND_TAB; |
- params.tabstrip_index = -1; |
- params.tabstrip_add_types = TabStripModel::ADD_PINNED; |
- params.extension_app_id = tabs[i].app_id; |
- chrome::Navigate(¶ms); |
- } |
-} |
- |
-BaseSettingChange* CreateSessionStartupChange( |
- const SessionStartupPref& actual_startup_pref, |
- const StartupTabs& actual_pinned_tabs, |
- const SessionStartupPref& backup_startup_pref, |
- const StartupTabs& backup_pinned_tabs) { |
- return new SessionStartupChange(actual_startup_pref, actual_pinned_tabs, |
- backup_startup_pref, backup_pinned_tabs); |
-} |
- |
-} // namespace protector |