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

Unified Diff: pkg/polymer/lib/elements/polymer-cookie/polymer-cookie.html

Issue 175443005: [polymer] import all elements (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: updated from bower Created 6 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: pkg/polymer/lib/elements/polymer-cookie/polymer-cookie.html
diff --git a/pkg/polymer/lib/elements/polymer-cookie/polymer-cookie.html b/pkg/polymer/lib/elements/polymer-cookie/polymer-cookie.html
new file mode 100644
index 0000000000000000000000000000000000000000..472718117263298e164cbde6443758c4bed87ec2
--- /dev/null
+++ b/pkg/polymer/lib/elements/polymer-cookie/polymer-cookie.html
@@ -0,0 +1,82 @@
+<!--
+Copyright 2013 The Polymer Authors. All rights reserved.
+Use of this source code is governed by a BSD-style
+license that can be found in the LICENSE file.
+-->
+<link rel="import" href="../polymer/polymer.html">
+
+<polymer-element name="polymer-cookie" attributes="name value expires secure domain path max-age">
+ <template>
+ <style>
+ :host { display: none; }
+ </style>
+ </template>
+ <script>
+ (function() {
+ var EXPIRE_NOW = 'Thu, 01 Jan 1970 00:00:00 GMT';
+ var FOREVER = 'Fri, 31 Dec 9999 23:59:59 GMT';
+ var cookieProps = ['expires', 'secure', 'max-age', 'domain', 'path'];
+ Polymer('polymer-cookie', {
+ expires: FOREVER,
+ ready: function() {
+ this.load();
+ },
+ parseCookie: function() {
+ var pairs = document.cookie.split(/\s*;\s*/);
+ var map = pairs.map(function(kv) {
+ var eq = kv.indexOf('=');
+ return {
+ name: unescape(kv.slice(0, eq)),
+ value: unescape(kv.slice(eq + 1))
+ };
+ });
+ var nom = this.name;
+ return map.filter(function(kv){ return kv.name === nom; })[0];
+ },
+ load: function() {
+ var kv = this.parseCookie();
+ this.value = kv && kv.value;
+ },
+ valueChanged: function() {
+ this.expire = FOREVER;
+ this.save();
+ },
+ // TODO(dfreedman): collapse these when 'multiple props -> single change function' exists in Polymer
+ expiresChanged: function() {
+ this.save();
+ },
+ secureChanged: function() {
+ this.save();
+ },
+ domainChanged: function() {
+ this.save();
+ },
+ pathChanged: function() {
+ this.save();
+ },
+ maxAgeChanged: function() {
+ this.save();
+ },
+ isCookieStored: function() {
+ return Boolean(this.parseCookie());
+ },
+ deleteCookie: function() {
+ this.expires = EXPIRE_NOW;
+ },
+ prepareProperties: function() {
+ var prepared = '';
+ for (var i = 0, k; i < cookieProps.length; i++) {
+ k = cookieProps[i];
+ if (this[k]) {
+ prepared += (';' + k + '=' + this[k]);
+ }
+ }
+ return prepared;
+ },
+ save: function() {
+ document.cookie = escape(this.name) + '=' + escape(this.value) + this.prepareProperties();
+ }
+ });
+ })();
+ </script>
+</polymer-element>
« no previous file with comments | « pkg/polymer/lib/elements/polymer-cookie/index.html ('k') | pkg/polymer/lib/elements/polymer-elements/.bower.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698