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

Side by Side Diff: chrome/browser/resources/print_preview/data/app_state.js

Issue 233623003: Remember and restore the account last used destination is registered for. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 cr.define('print_preview', function() { 5 cr.define('print_preview', function() {
6 'use strict'; 6 'use strict';
7 7
8 /** 8 /**
9 * Object used to get and persist the print preview application state. 9 * Object used to get and persist the print preview application state.
10 * @constructor 10 * @constructor
(...skipping 17 matching lines...) Expand all
28 this.isInitialized_ = false; 28 this.isInitialized_ = false;
29 }; 29 };
30 30
31 /** 31 /**
32 * Enumeration of field names for serialized app state. 32 * Enumeration of field names for serialized app state.
33 * @enum {string} 33 * @enum {string}
34 */ 34 */
35 AppState.Field = { 35 AppState.Field = {
36 VERSION: 'version', 36 VERSION: 'version',
37 SELECTED_DESTINATION_ID: 'selectedDestinationId', 37 SELECTED_DESTINATION_ID: 'selectedDestinationId',
38 SELECTED_DESTINATION_ACCOUNT: 'selectedDestinationAccount',
38 SELECTED_DESTINATION_ORIGIN: 'selectedDestinationOrigin', 39 SELECTED_DESTINATION_ORIGIN: 'selectedDestinationOrigin',
39 SELECTED_DESTINATION_CAPABILITIES: 'selectedDestinationCapabilities', 40 SELECTED_DESTINATION_CAPABILITIES: 'selectedDestinationCapabilities',
40 SELECTED_DESTINATION_NAME: 'selectedDestinationName', 41 SELECTED_DESTINATION_NAME: 'selectedDestinationName',
41 IS_SELECTED_DESTINATION_LOCAL: 'isSelectedDestinationLocal', // Deprecated
42 IS_GCP_PROMO_DISMISSED: 'isGcpPromoDismissed', 42 IS_GCP_PROMO_DISMISSED: 'isGcpPromoDismissed',
43 MARGINS_TYPE: 'marginsType', 43 MARGINS_TYPE: 'marginsType',
44 CUSTOM_MARGINS: 'customMargins', 44 CUSTOM_MARGINS: 'customMargins',
45 IS_COLOR_ENABLED: 'isColorEnabled', 45 IS_COLOR_ENABLED: 'isColorEnabled',
46 IS_DUPLEX_ENABLED: 'isDuplexEnabled', 46 IS_DUPLEX_ENABLED: 'isDuplexEnabled',
47 IS_HEADER_FOOTER_ENABLED: 'isHeaderFooterEnabled', 47 IS_HEADER_FOOTER_ENABLED: 'isHeaderFooterEnabled',
48 IS_LANDSCAPE_ENABLED: 'isLandscapeEnabled', 48 IS_LANDSCAPE_ENABLED: 'isLandscapeEnabled',
49 IS_COLLATE_ENABLED: 'isCollateEnabled', 49 IS_COLLATE_ENABLED: 'isCollateEnabled',
50 IS_CSS_BACKGROUND_ENABLED: 'isCssBackgroundEnabled' 50 IS_CSS_BACKGROUND_ENABLED: 'isCssBackgroundEnabled'
51 }; 51 };
(...skipping 14 matching lines...) Expand all
66 * @private 66 * @private
67 */ 67 */
68 AppState.NATIVE_FUNCTION_NAME_ = 'saveAppState'; 68 AppState.NATIVE_FUNCTION_NAME_ = 'saveAppState';
69 69
70 AppState.prototype = { 70 AppState.prototype = {
71 /** @return {?string} ID of the selected destination. */ 71 /** @return {?string} ID of the selected destination. */
72 get selectedDestinationId() { 72 get selectedDestinationId() {
73 return this.state_[AppState.Field.SELECTED_DESTINATION_ID]; 73 return this.state_[AppState.Field.SELECTED_DESTINATION_ID];
74 }, 74 },
75 75
76 /** @return {?string} Account the selected destination is registered for. */
77 get selectedDestinationAccount() {
78 return this.state_[AppState.Field.SELECTED_DESTINATION_ACCOUNT];
79 },
80
76 /** @return {?string} Origin of the selected destination. */ 81 /** @return {?string} Origin of the selected destination. */
77 get selectedDestinationOrigin() { 82 get selectedDestinationOrigin() {
78 return this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN]; 83 return this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN];
79 }, 84 },
80 85
81 /** @return {?print_preview.Cdd} CDD of the selected destination. */ 86 /** @return {?print_preview.Cdd} CDD of the selected destination. */
82 get selectedDestinationCapabilities() { 87 get selectedDestinationCapabilities() {
83 return this.state_[AppState.Field.SELECTED_DESTINATION_CAPBILITIES]; 88 return this.state_[AppState.Field.SELECTED_DESTINATION_CAPABILITIES];
84 }, 89 },
85 90
86 /** @return {?string} Name of the selected destination. */ 91 /** @return {?string} Name of the selected destination. */
87 get selectedDestinationName() { 92 get selectedDestinationName() {
88 return this.state_[AppState.Field.SELECTED_DESTINATION_NAME]; 93 return this.state_[AppState.Field.SELECTED_DESTINATION_NAME];
89 }, 94 },
90 95
91 /** @return {boolean} Whether the GCP promotion has been dismissed. */ 96 /** @return {boolean} Whether the GCP promotion has been dismissed. */
92 get isGcpPromoDismissed() { 97 get isGcpPromoDismissed() {
93 return this.state_[AppState.Field.IS_GCP_PROMO_DISMISSED]; 98 return this.state_[AppState.Field.IS_GCP_PROMO_DISMISSED];
(...skipping 19 matching lines...) Expand all
113 } else { 118 } else {
114 return this.state_[field]; 119 return this.state_[field];
115 } 120 }
116 }, 121 },
117 122
118 /** 123 /**
119 * Initializes the app state from a serialized string returned by the native 124 * Initializes the app state from a serialized string returned by the native
120 * layer. 125 * layer.
121 * @param {?string} serializedAppStateStr Serialized string representation 126 * @param {?string} serializedAppStateStr Serialized string representation
122 * of the app state. 127 * of the app state.
128 * @param {?string} systemDefaultDestinationId ID of the system default
129 * destination.
123 */ 130 */
124 init: function(serializedAppStateStr) { 131 init: function(serializedAppStateStr, systemDefaultDestinationId) {
125 if (serializedAppStateStr) { 132 if (serializedAppStateStr) {
126 var state = JSON.parse(serializedAppStateStr); 133 var state = JSON.parse(serializedAppStateStr);
127 if (state[AppState.Field.VERSION] == AppState.VERSION_) { 134 if (state[AppState.Field.VERSION] == AppState.VERSION_) {
128 if (state.hasOwnProperty(
129 AppState.Field.IS_SELECTED_DESTINATION_LOCAL)) {
130 state[AppState.Field.SELECTED_DESTINATION_ORIGIN] =
131 state[AppState.Field.IS_SELECTED_DESTINATION_LOCAL] ?
132 print_preview.Destination.Origin.LOCAL :
133 print_preview.Destination.Origin.COOKIES;
134 delete state[AppState.Field.IS_SELECTED_DESTINATION_LOCAL];
135 }
136 this.state_ = state; 135 this.state_ = state;
137 } 136 }
138 } else { 137 } else {
139 // Set some state defaults. 138 // Set some state defaults.
140 this.state_[AppState.Field.IS_GCP_PROMO_DISMISSED] = false; 139 this.state_[AppState.Field.IS_GCP_PROMO_DISMISSED] = false;
141 } 140 }
141 // Default to system destination, if no destination was selected.
142 if (!this.state_[AppState.Field.SELECTED_DESTINATION_ID] ||
143 !this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN]) {
144 if (systemDefaultDestinationId) {
145 this.state_[AppState.Field.SELECTED_DESTINATION_ID] =
Vitaly Buka (NO REVIEWS) 2014/04/11 02:32:57 this could be separate CL
Toscano 2014/04/11 04:24:00 agreed
Aleksey Shlyapnikov 2014/04/11 19:09:29 Done.
Aleksey Shlyapnikov 2014/04/11 19:09:29 Done.
146 systemDefaultDestinationId;
147 this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN] =
148 print_preview.Destination.Origin.LOCAL;
149 }
150 }
142 }, 151 },
143 152
144 /** 153 /**
145 * Sets to initialized state. Now object will accept persist requests. 154 * Sets to initialized state. Now object will accept persist requests.
146 */ 155 */
147 setInitialized: function() { 156 setInitialized: function() {
148 this.isInitialized_ = true; 157 this.isInitialized_ = true;
149 }, 158 },
150 159
151 /** 160 /**
(...skipping 13 matching lines...) Expand all
165 }, 174 },
166 175
167 /** 176 /**
168 * Persists the selected destination. 177 * Persists the selected destination.
169 * @param {!print_preview.Destination} dest Destination to persist. 178 * @param {!print_preview.Destination} dest Destination to persist.
170 */ 179 */
171 persistSelectedDestination: function(dest) { 180 persistSelectedDestination: function(dest) {
172 if (!this.isInitialized_) 181 if (!this.isInitialized_)
173 return; 182 return;
174 this.state_[AppState.Field.SELECTED_DESTINATION_ID] = dest.id; 183 this.state_[AppState.Field.SELECTED_DESTINATION_ID] = dest.id;
184 this.state_[AppState.Field.SELECTED_DESTINATION_ACCOUNT] = dest.account;
175 this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN] = dest.origin; 185 this.state_[AppState.Field.SELECTED_DESTINATION_ORIGIN] = dest.origin;
176 this.state_[AppState.Field.SELECTED_DESTINATION_CAPBILITIES] = 186 this.state_[AppState.Field.SELECTED_DESTINATION_CAPABILITIES] =
177 dest.capabilities; 187 dest.capabilities;
178 this.state_[AppState.Field.SELECTED_DESTINATION_NAME] = dest.displayName; 188 this.state_[AppState.Field.SELECTED_DESTINATION_NAME] = dest.displayName;
179 this.persist_(); 189 this.persist_();
180 }, 190 },
181 191
182 /** 192 /**
183 * Persists whether the GCP promotion has been dismissed. 193 * Persists whether the GCP promotion has been dismissed.
184 * @param {boolean} isGcpPromoDismissed Whether the GCP promotion has been 194 * @param {boolean} isGcpPromoDismissed Whether the GCP promotion has been
185 * dismissed. 195 * dismissed.
186 */ 196 */
(...skipping 11 matching lines...) Expand all
198 persist_: function() { 208 persist_: function() {
199 chrome.send(AppState.NATIVE_FUNCTION_NAME_, 209 chrome.send(AppState.NATIVE_FUNCTION_NAME_,
200 [JSON.stringify(this.state_)]); 210 [JSON.stringify(this.state_)]);
201 } 211 }
202 }; 212 };
203 213
204 return { 214 return {
205 AppState: AppState 215 AppState: AppState
206 }; 216 };
207 }); 217 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698