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

Unified Diff: polymer_0.5.0/bower_components/core-ajax/core-ajax.html

Issue 786953007: npm_modules: Fork bower_components into Polymer 0.4.0 and 0.5.0 versions (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 12 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: polymer_0.5.0/bower_components/core-ajax/core-ajax.html
diff --git a/bower_components/core-ajax/core-ajax.html b/polymer_0.5.0/bower_components/core-ajax/core-ajax.html
similarity index 79%
rename from bower_components/core-ajax/core-ajax.html
rename to polymer_0.5.0/bower_components/core-ajax/core-ajax.html
index b74901f67d3cee36442a9e85e0aa7b8669b65863..c0ca0adbc25f5919da4c0f25131b4a5e5ed1f01f 100644
--- a/bower_components/core-ajax/core-ajax.html
+++ b/polymer_0.5.0/bower_components/core-ajax/core-ajax.html
@@ -20,7 +20,7 @@ The `core-ajax` element exposes `XMLHttpRequest` functionality.
on-core-response="{{handleResponse}}"></core-ajax>
With `auto` set to `true`, the element performs a request whenever
-its `url` or `params` properties are changed.
+its `url`, `params` or `body` properties are changed.
Note: The `params` attribute must be double quoted JSON.
@@ -32,7 +32,7 @@ element.
@homepage github.io
-->
<link rel="import" href="core-xhr.html">
-<polymer-element name="core-ajax" hidden attributes="url handleAs auto params response error method headers body contentType withCredentials">
+<polymer-element name="core-ajax" hidden attributes="url handleAs auto params response error method headers body contentType withCredentials progress loading">
<script>
Polymer('core-ajax', {
@@ -106,7 +106,7 @@ element.
params: '',
/**
- * The response for the most recently made request, or null if it hasn't
+ * The response for the current request, or null if it hasn't
* completed yet or the request resulted in error.
*
* @attribute response
@@ -116,7 +116,7 @@ element.
response: null,
/**
- * The error for the most recently made request, or null if it hasn't
+ * The error for the current request, or null if it hasn't
* completed yet or the request resulted in success.
*
* @attribute error
@@ -126,6 +126,24 @@ element.
error: null,
/**
+ * Whether the current request is currently loading.
+ *
+ * @attribute loading
+ * @type boolean
+ * @default false
+ */
+ loading: false,
+
+ /**
+ * The progress of the current request.
+ *
+ * @attribute progress
+ * @type {loaded: number, total: number, lengthComputable: boolean}
+ * @default {}
+ */
+ progress: null,
+
+ /**
* The HTTP method to use such as 'GET', 'POST', 'PUT', or 'DELETE'.
* Default is 'GET'.
*
@@ -199,6 +217,10 @@ element.
*/
xhrArgs: null,
+ created: function() {
+ this.progress = {};
+ },
+
ready: function() {
this.xhr = document.createElement('core-xhr');
},
@@ -233,7 +255,26 @@ element.
this.fire('core-error', {response: response, xhr: xhr});
},
+ processProgress: function(progress, xhr) {
+ if (xhr !== this.activeRequest) {
+ return;
+ }
+ // We create a proxy object here because these fields
+ // on the progress event are readonly properties, which
+ // causes problems in common use cases (e.g. binding to
+ // <paper-progress> attributes).
+ var progressProxy = {
+ lengthComputable: progress.lengthComputable,
+ loaded: progress.loaded,
+ total: progress.total
+ }
+ this.progress = progressProxy;
+ },
+
complete: function(xhr) {
+ if (xhr === this.activeRequest) {
+ this.loading = false;
+ }
this.fire('core-complete', {response: xhr.status, xhr: xhr});
},
@@ -289,6 +330,10 @@ element.
this.autoGo();
},
+ bodyChanged: function() {
+ this.autoGo();
+ },
+
autoChanged: function() {
this.autoGo();
},
@@ -322,7 +367,12 @@ element.
var hasContentType = Object.keys(args.headers).some(function (header) {
return header.toLowerCase() === 'content-type';
});
- if (!hasContentType && this.contentType) {
+ // No Content-Type should be specified if sending `FormData`.
+ // The UA must set the Content-Type w/ a calculated multipart boundary ID.
+ if (args.body instanceof FormData) {
+ delete args.headers['Content-Type'];
+ }
+ else if (!hasContentType && this.contentType) {
args.headers['Content-Type'] = this.contentType;
}
if (this.handleAs === 'arraybuffer' || this.handleAs === 'blob' ||
@@ -334,8 +384,24 @@ element.
args.url = this.url;
args.method = this.method;
- this.response = this.error = null;
+ this.response = this.error = this.progress = null;
this.activeRequest = args.url && this.xhr.request(args);
+ if (this.activeRequest) {
+ this.loading = true;
+ var activeRequest = this.activeRequest;
+ // IE < 10 doesn't support progress events.
+ if ('onprogress' in activeRequest) {
+ this.activeRequest.addEventListener(
+ 'progress',
+ function(progress) {
+ this.processProgress(progress, activeRequest);
+ }.bind(this), false);
+ } else {
+ this.progress = {
+ lengthComputable: false,
+ }
+ }
+ }
return this.activeRequest;
}
« no previous file with comments | « polymer_0.5.0/bower_components/core-ajax/bower.json ('k') | polymer_0.5.0/bower_components/core-ajax/core-xhr.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698