Merge pull request #3640 from deepak1556/webrequest_api_patch
session: add webrequest api
This commit is contained in:
commit
98ba1a24db
15 changed files with 1763 additions and 3 deletions
|
@ -8,12 +8,15 @@
|
|||
#include <vector>
|
||||
|
||||
#include "atom/common/node_includes.h"
|
||||
#include "atom/common/native_mate_converters/gurl_converter.h"
|
||||
#include "atom/common/native_mate_converters/value_converter.h"
|
||||
#include "native_mate/dictionary.h"
|
||||
#include "net/base/upload_bytes_element_reader.h"
|
||||
#include "net/base/upload_data_stream.h"
|
||||
#include "net/base/upload_element_reader.h"
|
||||
#include "net/base/upload_file_element_reader.h"
|
||||
#include "net/cert/x509_certificate.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
#include "net/url_request/url_request.h"
|
||||
|
||||
namespace mate {
|
||||
|
@ -79,4 +82,38 @@ v8::Local<v8::Value> Converter<scoped_refptr<net::X509Certificate>>::ToV8(
|
|||
return dict.GetHandle();
|
||||
}
|
||||
|
||||
// static
|
||||
bool Converter<atom::AtomNetworkDelegate::BlockingResponse>::FromV8(
|
||||
v8::Isolate* isolate, v8::Local<v8::Value> val,
|
||||
atom::AtomNetworkDelegate::BlockingResponse* out) {
|
||||
mate::Dictionary dict;
|
||||
if (!ConvertFromV8(isolate, val, &dict))
|
||||
return false;
|
||||
if (!dict.Get("cancel", &(out->cancel)))
|
||||
return false;
|
||||
dict.Get("redirectURL", &(out->redirect_url));
|
||||
base::DictionaryValue request_headers;
|
||||
if (dict.Get("requestHeaders", &request_headers)) {
|
||||
for (base::DictionaryValue::Iterator it(request_headers);
|
||||
!it.IsAtEnd();
|
||||
it.Advance()) {
|
||||
std::string value;
|
||||
CHECK(it.value().GetAsString(&value));
|
||||
out->request_headers.SetHeader(it.key(), value);
|
||||
}
|
||||
}
|
||||
base::DictionaryValue response_headers;
|
||||
if (dict.Get("responseHeaders", &response_headers)) {
|
||||
out->response_headers = new net::HttpResponseHeaders("");
|
||||
for (base::DictionaryValue::Iterator it(response_headers);
|
||||
!it.IsAtEnd();
|
||||
it.Advance()) {
|
||||
std::string value;
|
||||
CHECK(it.value().GetAsString(&value));
|
||||
out->response_headers->AddHeader(it.key() + " : " + value);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace mate
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#ifndef ATOM_COMMON_NATIVE_MATE_CONVERTERS_NET_CONVERTER_H_
|
||||
#define ATOM_COMMON_NATIVE_MATE_CONVERTERS_NET_CONVERTER_H_
|
||||
|
||||
#include "atom/browser/net/atom_network_delegate.h"
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "native_mate/converter.h"
|
||||
|
||||
|
@ -34,6 +35,13 @@ struct Converter<scoped_refptr<net::X509Certificate>> {
|
|||
const scoped_refptr<net::X509Certificate>& val);
|
||||
};
|
||||
|
||||
template<>
|
||||
struct Converter<atom::AtomNetworkDelegate::BlockingResponse> {
|
||||
static bool FromV8(v8::Isolate* isolate,
|
||||
v8::Local<v8::Value> val,
|
||||
atom::AtomNetworkDelegate::BlockingResponse* out);
|
||||
};
|
||||
|
||||
} // namespace mate
|
||||
|
||||
#endif // ATOM_COMMON_NATIVE_MATE_CONVERTERS_NET_CONVERTER_H_
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue