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

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

Issue 10384106: 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"
15 #include "chrome/browser/tabs/tab_strip_model.h" 16 #include "chrome/browser/tabs/tab_strip_model.h"
16 #include "chrome/browser/ui/browser.h" 17 #include "chrome/browser/ui/browser.h"
17 #include "chrome/browser/ui/browser_navigator.h" 18 #include "chrome/browser/ui/browser_navigator.h"
18 #include "chrome/common/pref_names.h" 19 #include "chrome/common/pref_names.h"
19 #include "grit/chromium_strings.h" 20 #include "grit/chromium_strings.h"
20 #include "grit/generated_resources.h" 21 #include "grit/generated_resources.h"
21 #include "grit/theme_resources.h" 22 #include "grit/theme_resources.h"
22 #include "ui/base/l10n/l10n_util.h" 23 #include "ui/base/l10n/l10n_util.h"
23 24
24 namespace protector { 25 namespace protector {
25 26
26 // Session startup settings change tracked by Protector. 27 // Session startup settings change tracked by Protector.
27 class SessionStartupChange : public BasePrefsChange { 28 class SessionStartupChange : public BasePrefsChange {
28 public: 29 public:
29 SessionStartupChange(const SessionStartupPref& actual_startup_pref, 30 SessionStartupChange(const SessionStartupPref& actual_startup_pref,
30 const PinnedTabCodec::Tabs& actual_pinned_tabs, 31 const StartupTabs& actual_pinned_tabs,
31 const SessionStartupPref& backup_startup_pref, 32 const SessionStartupPref& backup_startup_pref,
32 const PinnedTabCodec::Tabs& backup_pinned_tabs); 33 const StartupTabs& backup_pinned_tabs);
33 34
34 // BaseSettingChange overrides: 35 // BaseSettingChange overrides:
35 virtual bool Init(Profile* profile) OVERRIDE; 36 virtual bool Init(Profile* profile) OVERRIDE;
36 virtual void Apply(Browser* browser) OVERRIDE; 37 virtual void Apply(Browser* browser) OVERRIDE;
37 virtual void Discard(Browser* browser) OVERRIDE; 38 virtual void Discard(Browser* browser) OVERRIDE;
38 virtual void Timeout() OVERRIDE; 39 virtual void Timeout() OVERRIDE;
39 virtual int GetBadgeIconID() const OVERRIDE; 40 virtual int GetBadgeIconID() const OVERRIDE;
40 virtual int GetMenuItemIconID() const OVERRIDE; 41 virtual int GetMenuItemIconID() const OVERRIDE;
41 virtual int GetBubbleIconID() const OVERRIDE; 42 virtual int GetBubbleIconID() const OVERRIDE;
42 virtual string16 GetBubbleTitle() const OVERRIDE; 43 virtual string16 GetBubbleTitle() const OVERRIDE;
43 virtual string16 GetBubbleMessage() const OVERRIDE; 44 virtual string16 GetBubbleMessage() const OVERRIDE;
44 virtual string16 GetApplyButtonText() const OVERRIDE; 45 virtual string16 GetApplyButtonText() const OVERRIDE;
45 virtual string16 GetDiscardButtonText() const OVERRIDE; 46 virtual string16 GetDiscardButtonText() const OVERRIDE;
46 virtual DisplayName GetApplyDisplayName() const OVERRIDE; 47 virtual DisplayName GetApplyDisplayName() const OVERRIDE;
47 virtual GURL GetNewSettingURL() const OVERRIDE; 48 virtual GURL GetNewSettingURL() const OVERRIDE;
48 49
49 private: 50 private:
50 virtual ~SessionStartupChange(); 51 virtual ~SessionStartupChange();
51 52
52 // Returns the first URL that was added to the startup pages. Returns the 53 // Returns the first URL that was added to the startup pages. Returns the
53 // first startup URL if they haven't changed. Returns an empty URL if there 54 // first startup URL if they haven't changed. Returns an empty URL if there
54 // are no startup URLs. 55 // are no startup URLs.
55 GURL GetFirstNewURL() const; 56 GURL GetFirstNewURL() const;
56 57
57 // Opens all tabs in |tabs| and makes them pinned. 58 // Opens all tabs in |tabs| and makes them pinned.
58 void OpenPinnedTabs(Browser* browser, const PinnedTabCodec::Tabs& tabs); 59 void OpenPinnedTabs(Browser* browser, const StartupTabs& tabs);
59 60
60 const SessionStartupPref new_startup_pref_; 61 const SessionStartupPref new_startup_pref_;
61 const SessionStartupPref backup_startup_pref_; 62 const SessionStartupPref backup_startup_pref_;
62 const PinnedTabCodec::Tabs new_pinned_tabs_; 63 const StartupTabs new_pinned_tabs_;
63 const PinnedTabCodec::Tabs backup_pinned_tabs_; 64 const StartupTabs backup_pinned_tabs_;
64 65
65 DISALLOW_COPY_AND_ASSIGN(SessionStartupChange); 66 DISALLOW_COPY_AND_ASSIGN(SessionStartupChange);
66 }; 67 };
67 68
68 SessionStartupChange::SessionStartupChange( 69 SessionStartupChange::SessionStartupChange(
69 const SessionStartupPref& actual_startup_pref, 70 const SessionStartupPref& actual_startup_pref,
70 const PinnedTabCodec::Tabs& actual_pinned_tabs, 71 const StartupTabs& actual_pinned_tabs,
71 const SessionStartupPref& backup_startup_pref, 72 const SessionStartupPref& backup_startup_pref,
72 const PinnedTabCodec::Tabs& backup_pinned_tabs) 73 const StartupTabs& backup_pinned_tabs)
73 : new_startup_pref_(actual_startup_pref), 74 : new_startup_pref_(actual_startup_pref),
74 backup_startup_pref_(backup_startup_pref), 75 backup_startup_pref_(backup_startup_pref),
75 new_pinned_tabs_(actual_pinned_tabs), 76 new_pinned_tabs_(actual_pinned_tabs),
76 backup_pinned_tabs_(backup_pinned_tabs) { 77 backup_pinned_tabs_(backup_pinned_tabs) {
77 UMA_HISTOGRAM_ENUMERATION( 78 UMA_HISTOGRAM_ENUMERATION(
78 kProtectorHistogramStartupSettingsChanged, 79 kProtectorHistogramStartupSettingsChanged,
79 actual_startup_pref.type, 80 actual_startup_pref.type,
80 SessionStartupPref::TYPE_COUNT); 81 SessionStartupPref::TYPE_COUNT);
81 } 82 }
82 83
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 // First try to find a URL in new settings that is not present in backup. 198 // First try to find a URL in new settings that is not present in backup.
198 for (size_t i = 0; i < new_urls.size(); ++i) { 199 for (size_t i = 0; i < new_urls.size(); ++i) {
199 if (!old_urls.count(new_urls[i])) 200 if (!old_urls.count(new_urls[i]))
200 return new_urls[i]; 201 return new_urls[i];
201 } 202 }
202 // Then fallback to the first of the current startup URLs - this means that 203 // Then fallback to the first of the current startup URLs - this means that
203 // URLs themselves haven't changed. 204 // URLs themselves haven't changed.
204 return new_urls[0]; 205 return new_urls[0];
205 } 206 }
206 207
207 void SessionStartupChange::OpenPinnedTabs( 208 void SessionStartupChange::OpenPinnedTabs(Browser* browser,
208 Browser* browser, 209 const StartupTabs& tabs) {
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 PinnedTabCodec::Tabs& actual_pinned_tabs, 223 const StartupTabs& actual_pinned_tabs,
224 const SessionStartupPref& backup_startup_pref, 224 const SessionStartupPref& backup_startup_pref,
225 const PinnedTabCodec::Tabs& backup_pinned_tabs) { 225 const StartupTabs& 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