| 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
|
|
|