Index: chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js |
diff --git a/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js b/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js |
index 3afac7f4c94f5f801b7cd3894fa72c585f64f2aa..72ff40f254624433a70d4db8b031abcd585bde73 100644 |
--- a/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js |
+++ b/chrome/browser/resources/media_router/elements/media_router_header/media_router_header.js |
@@ -36,13 +36,23 @@ Polymer({ |
}, |
/** |
- * The current view that this header should reflect. |
- * @type {?media_router.MediaRouterView} |
+ * The height of the header when it shows the user email. |
+ * @private {number} |
*/ |
- view: { |
- type: String, |
- value: null, |
- observer: 'updateHeaderCursorStyle_', |
+ headerWithEmailHeight_: { |
+ type: Number, |
+ readOnly: true, |
+ value: 62, |
imcheng
2016/02/17 00:51:08
nit: seems like you can just make this a String '6
amp
2016/02/17 02:11:37
It would work as a string, but if we ever need to
|
+ }, |
+ |
+ /** |
+ * Whether to show the user email in the header. |
+ * @type {boolean} |
+ */ |
+ showEmail: { |
+ type: Boolean, |
+ value: false, |
+ observer: 'maybeChangeHeaderHeight_', |
}, |
/** |
@@ -53,6 +63,25 @@ Polymer({ |
type: String, |
value: '', |
}, |
+ |
+ /** |
+ * The user email if they are signed in. |
+ * @type {string} |
+ */ |
+ userEmail: { |
+ type: String, |
+ value: '', |
+ }, |
+ |
+ /** |
+ * The current view that this header should reflect. |
+ * @type {?media_router.MediaRouterView} |
+ */ |
+ view: { |
+ type: String, |
+ value: null, |
+ observer: 'updateHeaderCursorStyle_', |
+ }, |
}, |
attached: function() { |
@@ -121,6 +150,36 @@ Polymer({ |
}, |
/** |
+ * Updates header height to accomodate email text. This is called on changes |
+ * to |showEmail| and will return early if the value has not changed. |
+ * |
+ * @param {boolean} oldValue . |
+ * @param {boolean} newValue . |
+ * @private |
+ */ |
+ maybeChangeHeaderHeight_: function(oldValue, newValue) { |
+ if (oldValue == newValue) { |
+ return; |
+ } |
+ |
+ // Ensures conditional templates are stamped. |
+ this.async(function() { |
+ var currentHeight = this.offsetHeight; |
+ |
+ this.$$('#header-toolbar').style.height = |
+ this.showEmail && |
+ !$('media-router-container').isEmptyOrWhitespace_(this.userEmail) ? |
+ this.headerWithEmailHeight_ + 'px' : undefined; |
+ |
+ var newHeight = this.offsetHeight; |
+ // Only fire if height actually changed. |
+ if (currentHeight != newHeight) { |
+ this.fire('header-height-changed'); |
+ } |
+ }); |
+ }, |
+ |
+ /** |
* Updates the cursor style for the header text when the view changes. When |
* the drop arrow is also shown, the header text is also clickable. |
* |