Pass auth_info and request in "login" event
This commit is contained in:
parent
d05255179a
commit
131531219e
6 changed files with 75 additions and 19 deletions
|
@ -19,6 +19,7 @@
|
||||||
#include "atom/browser/browser.h"
|
#include "atom/browser/browser.h"
|
||||||
#include "atom/browser/login_handler.h"
|
#include "atom/browser/login_handler.h"
|
||||||
#include "atom/common/native_mate_converters/callback.h"
|
#include "atom/common/native_mate_converters/callback.h"
|
||||||
|
#include "atom/common/native_mate_converters/content_converter.h"
|
||||||
#include "atom/common/native_mate_converters/file_path_converter.h"
|
#include "atom/common/native_mate_converters/file_path_converter.h"
|
||||||
#include "atom/common/node_includes.h"
|
#include "atom/common/node_includes.h"
|
||||||
#include "atom/common/options_switches.h"
|
#include "atom/common/options_switches.h"
|
||||||
|
@ -241,9 +242,9 @@ void App::OnSelectCertificate(
|
||||||
}
|
}
|
||||||
|
|
||||||
void App::OnLogin(LoginHandler* login_handler) {
|
void App::OnLogin(LoginHandler* login_handler) {
|
||||||
bool prevent_default =
|
bool prevent_default = Emit(
|
||||||
Emit("login", base::Bind(&PassLoginInformation,
|
"login", login_handler->request(), login_handler->auth_info(),
|
||||||
make_scoped_refptr(login_handler)));
|
base::Bind(&PassLoginInformation, make_scoped_refptr(login_handler)));
|
||||||
|
|
||||||
// Default behavior is to alwasy cancel the auth.
|
// Default behavior is to alwasy cancel the auth.
|
||||||
if (!prevent_default)
|
if (!prevent_default)
|
||||||
|
|
|
@ -12,27 +12,12 @@
|
||||||
#include "atom/browser/net/url_request_fetch_job.h"
|
#include "atom/browser/net/url_request_fetch_job.h"
|
||||||
#include "atom/browser/net/url_request_string_job.h"
|
#include "atom/browser/net/url_request_string_job.h"
|
||||||
#include "atom/common/native_mate_converters/callback.h"
|
#include "atom/common/native_mate_converters/callback.h"
|
||||||
|
#include "atom/common/native_mate_converters/content_converter.h"
|
||||||
#include "atom/common/node_includes.h"
|
#include "atom/common/node_includes.h"
|
||||||
#include "native_mate/dictionary.h"
|
#include "native_mate/dictionary.h"
|
||||||
|
|
||||||
using content::BrowserThread;
|
using content::BrowserThread;
|
||||||
|
|
||||||
namespace mate {
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct Converter<const net::URLRequest*> {
|
|
||||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
|
||||||
const net::URLRequest* val) {
|
|
||||||
return mate::ObjectTemplateBuilder(isolate)
|
|
||||||
.SetValue("method", val->method())
|
|
||||||
.SetValue("url", val->url().spec())
|
|
||||||
.SetValue("referrer", val->referrer())
|
|
||||||
.Build()->NewInstance();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace mate
|
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
namespace api {
|
namespace api {
|
||||||
|
|
|
@ -26,6 +26,9 @@ class LoginHandler : public content::ResourceDispatcherHostLoginDelegate {
|
||||||
// Login with |username| and |password|, must be called on UI thread.
|
// Login with |username| and |password|, must be called on UI thread.
|
||||||
void Login(const base::string16& username, const base::string16& password);
|
void Login(const base::string16& username, const base::string16& password);
|
||||||
|
|
||||||
|
const net::AuthChallengeInfo* auth_info() const { return auth_info_.get(); }
|
||||||
|
const net::URLRequest* request() const { return request_; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
~LoginHandler() override;
|
~LoginHandler() override;
|
||||||
|
|
||||||
|
|
34
atom/common/native_mate_converters/content_converter.cc
Normal file
34
atom/common/native_mate_converters/content_converter.cc
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
// Copyright (c) 2015 GitHub, Inc.
|
||||||
|
// Use of this source code is governed by the MIT license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "atom/common/native_mate_converters/content_converter.h"
|
||||||
|
|
||||||
|
#include "native_mate/dictionary.h"
|
||||||
|
#include "net/url_request/url_request.h"
|
||||||
|
|
||||||
|
namespace mate {
|
||||||
|
|
||||||
|
// static
|
||||||
|
v8::Local<v8::Value> Converter<const net::URLRequest*>::ToV8(
|
||||||
|
v8::Isolate* isolate, const net::URLRequest* val) {
|
||||||
|
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
||||||
|
dict.Set("method", val->method());
|
||||||
|
dict.Set("url", val->url().spec());
|
||||||
|
dict.Set("referrer", val->referrer());
|
||||||
|
return mate::ConvertToV8(isolate, dict);
|
||||||
|
};
|
||||||
|
|
||||||
|
// static
|
||||||
|
v8::Local<v8::Value> Converter<const net::AuthChallengeInfo*>::ToV8(
|
||||||
|
v8::Isolate* isolate, const net::AuthChallengeInfo* val) {
|
||||||
|
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
|
||||||
|
dict.Set("isProxy", val->is_proxy);
|
||||||
|
dict.Set("scheme", val->scheme);
|
||||||
|
dict.Set("host", val->challenger.host());
|
||||||
|
dict.Set("port", static_cast<uint32_t>(val->challenger.port()));
|
||||||
|
dict.Set("realm", val->realm);
|
||||||
|
return mate::ConvertToV8(isolate, dict);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace mate
|
31
atom/common/native_mate_converters/content_converter.h
Normal file
31
atom/common/native_mate_converters/content_converter.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (c) 2015 GitHub, Inc.
|
||||||
|
// Use of this source code is governed by the MIT license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#ifndef ATOM_COMMON_NATIVE_MATE_CONVERTERS_CONTENT_CONVERTER_H_
|
||||||
|
#define ATOM_COMMON_NATIVE_MATE_CONVERTERS_CONTENT_CONVERTER_H_
|
||||||
|
|
||||||
|
#include "native_mate/converter.h"
|
||||||
|
|
||||||
|
namespace net {
|
||||||
|
class AuthChallengeInfo;
|
||||||
|
class URLRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace mate {
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct Converter<const net::URLRequest*> {
|
||||||
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||||
|
const net::URLRequest* val);
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct Converter<const net::AuthChallengeInfo*> {
|
||||||
|
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||||
|
const net::AuthChallengeInfo* val);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace mate
|
||||||
|
|
||||||
|
#endif // ATOM_COMMON_NATIVE_MATE_CONVERTERS_CONTENT_CONVERTER_H_
|
|
@ -306,6 +306,8 @@
|
||||||
'atom/common/native_mate_converters/blink_converter.h',
|
'atom/common/native_mate_converters/blink_converter.h',
|
||||||
'atom/common/native_mate_converters/callback.cc',
|
'atom/common/native_mate_converters/callback.cc',
|
||||||
'atom/common/native_mate_converters/callback.h',
|
'atom/common/native_mate_converters/callback.h',
|
||||||
|
'atom/common/native_mate_converters/content_converter.cc',
|
||||||
|
'atom/common/native_mate_converters/content_converter.h',
|
||||||
'atom/common/native_mate_converters/file_path_converter.h',
|
'atom/common/native_mate_converters/file_path_converter.h',
|
||||||
'atom/common/native_mate_converters/gfx_converter.cc',
|
'atom/common/native_mate_converters/gfx_converter.cc',
|
||||||
'atom/common/native_mate_converters/gfx_converter.h',
|
'atom/common/native_mate_converters/gfx_converter.h',
|
||||||
|
|
Loading…
Reference in a new issue