Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(549)

Side by Side Diff: chrome/browser/protector/session_startup_change.cc

Issue 10332117: Revert 136573 - Extract StartupTabs and startup types from StartupBrowserCreator. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/compiler_specific.h" 6 #include "base/compiler_specific.h"
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/metrics/histogram.h" 8 #include "base/metrics/histogram.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/prefs/session_startup_pref.h" 10 #include "chrome/browser/prefs/session_startup_pref.h"
11 #include "chrome/browser/protector/base_prefs_change.h" 11 #include "chrome/browser/protector/base_prefs_change.h"
12 #include "chrome/browser/protector/histograms.h" 12 #include "chrome/browser/protector/histograms.h"
13 #include "chrome/browser/protector/protector_service.h" 13 #include "chrome/browser/protector/protector_service.h"
14 #include "chrome/browser/protector/protector_service_factory.h" 14 #include "chrome/browser/protector/protector_service_factory.h"
15 #include "chrome/browser/tabs/pinned_tab_codec.h"
16 #include "chrome/browser/tabs/tab_strip_model.h" 15 #include "chrome/browser/tabs/tab_strip_model.h"
17 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
18 #include "chrome/browser/ui/browser_navigator.h" 17 #include "chrome/browser/ui/browser_navigator.h"
19 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
20 #include "grit/chromium_strings.h" 19 #include "grit/chromium_strings.h"
21 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
22 #include "grit/theme_resources.h" 21 #include "grit/theme_resources.h"
23 #include "ui/base/l10n/l10n_util.h" 22 #include "ui/base/l10n/l10n_util.h"
24 23
25 namespace protector { 24 namespace protector {
26 25
27 // Session startup settings change tracked by Protector. 26 // Session startup settings change tracked by Protector.
28 class SessionStartupChange : public BasePrefsChange { 27 class SessionStartupChange : public BasePrefsChange {
29 public: 28 public:
30 SessionStartupChange(const SessionStartupPref& actual_startup_pref, 29 SessionStartupChange(const SessionStartupPref& actual_startup_pref,
31 const StartupTabs& actual_pinned_tabs, 30 const PinnedTabCodec::Tabs& actual_pinned_tabs,
32 const SessionStartupPref& backup_startup_pref, 31 const SessionStartupPref& backup_startup_pref,
33 const StartupTabs& backup_pinned_tabs); 32 const PinnedTabCodec::Tabs& backup_pinned_tabs);
34 33
35 // BaseSettingChange overrides: 34 // BaseSettingChange overrides:
36 virtual bool Init(Profile* profile) OVERRIDE; 35 virtual bool Init(Profile* profile) OVERRIDE;
37 virtual void Apply(Browser* browser) OVERRIDE; 36 virtual void Apply(Browser* browser) OVERRIDE;
38 virtual void Discard(Browser* browser) OVERRIDE; 37 virtual void Discard(Browser* browser) OVERRIDE;
39 virtual void Timeout() OVERRIDE; 38 virtual void Timeout() OVERRIDE;
40 virtual int GetBadgeIconID() const OVERRIDE; 39 virtual int GetBadgeIconID() const OVERRIDE;
41 virtual int GetMenuItemIconID() const OVERRIDE; 40 virtual int GetMenuItemIconID() const OVERRIDE;
42 virtual int GetBubbleIconID() const OVERRIDE; 41 virtual int GetBubbleIconID() const OVERRIDE;
43 virtual string16 GetBubbleTitle() const OVERRIDE; 42 virtual string16 GetBubbleTitle() const OVERRIDE;
44 virtual string16 GetBubbleMessage() const OVERRIDE; 43 virtual string16 GetBubbleMessage() const OVERRIDE;
45 virtual string16 GetApplyButtonText() const OVERRIDE; 44 virtual string16 GetApplyButtonText() const OVERRIDE;
46 virtual string16 GetDiscardButtonText() const OVERRIDE; 45 virtual string16 GetDiscardButtonText() const OVERRIDE;
47 virtual DisplayName GetApplyDisplayName() const OVERRIDE; 46 virtual DisplayName GetApplyDisplayName() const OVERRIDE;
48 virtual GURL GetNewSettingURL() const OVERRIDE; 47 virtual GURL GetNewSettingURL() const OVERRIDE;
49 48
50 private: 49 private:
51 virtual ~SessionStartupChange(); 50 virtual ~SessionStartupChange();
52 51
53 // Returns the first URL that was added to the startup pages. Returns the 52 // Returns the first URL that was added to the startup pages. Returns the
54 // first startup URL if they haven't changed. Returns an empty URL if there 53 // first startup URL if they haven't changed. Returns an empty URL if there
55 // are no startup URLs. 54 // are no startup URLs.
56 GURL GetFirstNewURL() const; 55 GURL GetFirstNewURL() const;
57 56
58 // Opens all tabs in |tabs| and makes them pinned. 57 // Opens all tabs in |tabs| and makes them pinned.
59 void OpenPinnedTabs(Browser* browser, const StartupTabs& tabs); 58 void OpenPinnedTabs(Browser* browser, const PinnedTabCodec::Tabs& tabs);
60 59
61 const SessionStartupPref new_startup_pref_; 60 const SessionStartupPref new_startup_pref_;
62 const SessionStartupPref backup_startup_pref_; 61 const SessionStartupPref backup_startup_pref_;
63 const StartupTabs new_pinned_tabs_; 62 const PinnedTabCodec::Tabs new_pinned_tabs_;
64 const StartupTabs backup_pinned_tabs_; 63 const PinnedTabCodec::Tabs backup_pinned_tabs_;
65 64
66 DISALLOW_COPY_AND_ASSIGN(SessionStartupChange); 65 DISALLOW_COPY_AND_ASSIGN(SessionStartupChange);
67 }; 66 };
68 67
69 SessionStartupChange::SessionStartupChange( 68 SessionStartupChange::SessionStartupChange(
70 const SessionStartupPref& actual_startup_pref, 69 const SessionStartupPref& actual_startup_pref,
71 const StartupTabs& actual_pinned_tabs, 70 const PinnedTabCodec::Tabs& actual_pinned_tabs,
72 const SessionStartupPref& backup_startup_pref, 71 const SessionStartupPref& backup_startup_pref,
73 const StartupTabs& backup_pinned_tabs) 72 const PinnedTabCodec::Tabs& backup_pinned_tabs)
74 : new_startup_pref_(actual_startup_pref), 73 : new_startup_pref_(actual_startup_pref),
75 backup_startup_pref_(backup_startup_pref), 74 backup_startup_pref_(backup_startup_pref),
76 new_pinned_tabs_(actual_pinned_tabs), 75 new_pinned_tabs_(actual_pinned_tabs),
77 backup_pinned_tabs_(backup_pinned_tabs) { 76 backup_pinned_tabs_(backup_pinned_tabs) {
78 UMA_HISTOGRAM_ENUMERATION( 77 UMA_HISTOGRAM_ENUMERATION(
79 kProtectorHistogramStartupSettingsChanged, 78 kProtectorHistogramStartupSettingsChanged,
80 actual_startup_pref.type, 79 actual_startup_pref.type,
81 SessionStartupPref::TYPE_COUNT); 80 SessionStartupPref::TYPE_COUNT);
82 } 81 }
83 82
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 // First try to find a URL in new settings that is not present in backup. 197 // First try to find a URL in new settings that is not present in backup.
199 for (size_t i = 0; i < new_urls.size(); ++i) { 198 for (size_t i = 0; i < new_urls.size(); ++i) {
200 if (!old_urls.count(new_urls[i])) 199 if (!old_urls.count(new_urls[i]))
201 return new_urls[i]; 200 return new_urls[i];
202 } 201 }
203 // Then fallback to the first of the current startup URLs - this means that 202 // Then fallback to the first of the current startup URLs - this means that
204 // URLs themselves haven't changed. 203 // URLs themselves haven't changed.
205 return new_urls[0]; 204 return new_urls[0];
206 } 205 }
207 206
208 void SessionStartupChange::OpenPinnedTabs(Browser* browser, 207 void SessionStartupChange::OpenPinnedTabs(
209 const StartupTabs& tabs) { 208 Browser* browser,
209 const PinnedTabCodec::Tabs& tabs) {
210 for (size_t i = 0; i < tabs.size(); ++i) { 210 for (size_t i = 0; i < tabs.size(); ++i) {
211 browser::NavigateParams params(browser, tabs[i].url, 211 browser::NavigateParams params(browser, tabs[i].url,
212 content::PAGE_TRANSITION_START_PAGE); 212 content::PAGE_TRANSITION_START_PAGE);
213 params.disposition = NEW_BACKGROUND_TAB; 213 params.disposition = NEW_BACKGROUND_TAB;
214 params.tabstrip_index = -1; 214 params.tabstrip_index = -1;
215 params.tabstrip_add_types = TabStripModel::ADD_PINNED; 215 params.tabstrip_add_types = TabStripModel::ADD_PINNED;
216 params.extension_app_id = tabs[i].app_id; 216 params.extension_app_id = tabs[i].app_id;
217 browser::Navigate(&params); 217 browser::Navigate(&params);
218 } 218 }
219 } 219 }
220 220
221 BaseSettingChange* CreateSessionStartupChange( 221 BaseSettingChange* CreateSessionStartupChange(
222 const SessionStartupPref& actual_startup_pref, 222 const SessionStartupPref& actual_startup_pref,
223 const StartupTabs& actual_pinned_tabs, 223 const PinnedTabCodec::Tabs& actual_pinned_tabs,
224 const SessionStartupPref& backup_startup_pref, 224 const SessionStartupPref& backup_startup_pref,
225 const StartupTabs& backup_pinned_tabs) { 225 const PinnedTabCodec::Tabs& backup_pinned_tabs) {
226 return new SessionStartupChange(actual_startup_pref, actual_pinned_tabs, 226 return new SessionStartupChange(actual_startup_pref, actual_pinned_tabs,
227 backup_startup_pref, backup_pinned_tabs); 227 backup_startup_pref, backup_pinned_tabs);
228 } 228 }
229 229
230 } // namespace protector 230 } // namespace protector
OLDNEW
« no previous file with comments | « chrome/browser/protector/homepage_change.cc ('k') | chrome/browser/protector/session_startup_change_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698