Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/hosted_mode/request.js |
| diff --git a/third_party/WebKit/Source/devtools/hosted_mode/request.js b/third_party/WebKit/Source/devtools/hosted_mode/request.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..ad1b418591d9a702a937ad2d182ddcba935d55cf |
| --- /dev/null |
| +++ b/third_party/WebKit/Source/devtools/hosted_mode/request.js |
| @@ -0,0 +1,33 @@ |
| +var http = require("http"); |
| +var https = require("https"); |
| +var parseUrl = require("url").parse; |
| + |
| +function request(url) |
| +{ |
| + return new Promise((resolve, reject) => { |
| + var request; |
| + var protocol = parseUrl(url).protocol; |
| + |
| + if (protocol === "https:") { |
|
lushnikov
2016/07/22 02:56:21
style: remove {}
chenwilliam
2016/07/22 17:35:25
Done.
|
| + request = https.get(url, handleResponse); |
| + } else if (protocol === "http:") { |
| + request = http.get(url, handleResponse); |
| + } else { |
| + reject(new Error(`Invalid protocol for url: ${url}`)) |
| + } |
| + |
| + function handleResponse(response) |
| + { |
| + if (response.statusCode !== 200) { |
| + reject(new Error(`Request error: + ${response.statusCode}`)); |
|
lushnikov
2016/07/22 02:56:21
you'd want to return here as well
chenwilliam
2016/07/22 17:35:25
Done.
|
| + } |
| + var body = ""; |
| + response.on("data", chunk => body += chunk); |
| + response.on("end", () => resolve(body)); |
| + } |
| + |
| + request.on("error", (err) => reject(err)); |
|
lushnikov
2016/07/22 02:56:21
this will throw in case of rejection
|
| + }); |
| +} |
| + |
| +module.exports = request; |