Do not force creating default session in C++
This commit is contained in:
parent
40c195cf5c
commit
b0f04de50c
3 changed files with 34 additions and 16 deletions
|
@ -7,8 +7,8 @@
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "atom/browser/atom_browser_context.h"
|
#include "atom/browser/atom_browser_context.h"
|
||||||
#include "atom/browser/atom_browser_main_parts.h"
|
|
||||||
#include "atom/common/google_api_key.h"
|
#include "atom/common/google_api_key.h"
|
||||||
|
#include "content/public/browser/browser_thread.h"
|
||||||
#include "content/public/browser/geolocation_provider.h"
|
#include "content/public/browser/geolocation_provider.h"
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
@ -25,6 +25,7 @@ const char* kGeolocationProviderURL =
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
AtomAccessTokenStore::AtomAccessTokenStore() {
|
AtomAccessTokenStore::AtomAccessTokenStore() {
|
||||||
|
LOG(ERROR) << "AtomAccessTokenStore";
|
||||||
content::GeolocationProvider::GetInstance()->UserDidOptIntoLocationServices();
|
content::GeolocationProvider::GetInstance()->UserDidOptIntoLocationServices();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,21 +34,35 @@ AtomAccessTokenStore::~AtomAccessTokenStore() {
|
||||||
|
|
||||||
void AtomAccessTokenStore::LoadAccessTokens(
|
void AtomAccessTokenStore::LoadAccessTokens(
|
||||||
const LoadAccessTokensCallback& callback) {
|
const LoadAccessTokensCallback& callback) {
|
||||||
AccessTokenMap access_token_map;
|
content::BrowserThread::PostTaskAndReply(
|
||||||
|
content::BrowserThread::UI,
|
||||||
// Equivelent to access_token_map[kGeolocationProviderURL].
|
FROM_HERE,
|
||||||
// Somehow base::string16 is causing compilation errors when used in a pair
|
base::Bind(&AtomAccessTokenStore::GetRequestContextOnUIThread, this),
|
||||||
// of std::map on Linux, this can work around it.
|
base::Bind(&AtomAccessTokenStore::RespondOnOriginatingThread,
|
||||||
std::pair<GURL, base::string16> token_pair;
|
this, callback));
|
||||||
token_pair.first = GURL(kGeolocationProviderURL);
|
|
||||||
access_token_map.insert(token_pair);
|
|
||||||
|
|
||||||
auto browser_context = AtomBrowserMainParts::Get()->browser_context();
|
|
||||||
callback.Run(access_token_map, browser_context->url_request_context_getter());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AtomAccessTokenStore::SaveAccessToken(const GURL& server_url,
|
void AtomAccessTokenStore::SaveAccessToken(const GURL& server_url,
|
||||||
const base::string16& access_token) {
|
const base::string16& access_token) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AtomAccessTokenStore::GetRequestContextOnUIThread() {
|
||||||
|
auto browser_context = brightray::BrowserContext::From("", false);
|
||||||
|
request_context_getter_ = browser_context->GetRequestContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AtomAccessTokenStore::RespondOnOriginatingThread(
|
||||||
|
const LoadAccessTokensCallback& callback) {
|
||||||
|
// Equivelent to access_token_map[kGeolocationProviderURL].
|
||||||
|
// Somehow base::string16 is causing compilation errors when used in a pair
|
||||||
|
// of std::map on Linux, this can work around it.
|
||||||
|
AccessTokenMap access_token_map;
|
||||||
|
std::pair<GURL, base::string16> token_pair;
|
||||||
|
token_pair.first = GURL(kGeolocationProviderURL);
|
||||||
|
access_token_map.insert(token_pair);
|
||||||
|
|
||||||
|
callback.Run(access_token_map, request_context_getter_.get());
|
||||||
|
request_context_getter_ = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace atom
|
} // namespace atom
|
||||||
|
|
|
@ -9,12 +9,10 @@
|
||||||
|
|
||||||
namespace atom {
|
namespace atom {
|
||||||
|
|
||||||
class AtomBrowserContext;
|
|
||||||
|
|
||||||
class AtomAccessTokenStore : public content::AccessTokenStore {
|
class AtomAccessTokenStore : public content::AccessTokenStore {
|
||||||
public:
|
public:
|
||||||
AtomAccessTokenStore();
|
AtomAccessTokenStore();
|
||||||
virtual ~AtomAccessTokenStore();
|
~AtomAccessTokenStore();
|
||||||
|
|
||||||
// content::AccessTokenStore:
|
// content::AccessTokenStore:
|
||||||
void LoadAccessTokens(
|
void LoadAccessTokens(
|
||||||
|
@ -23,6 +21,11 @@ class AtomAccessTokenStore : public content::AccessTokenStore {
|
||||||
const base::string16& access_token) override;
|
const base::string16& access_token) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void GetRequestContextOnUIThread();
|
||||||
|
void RespondOnOriginatingThread(const LoadAccessTokensCallback& callback);
|
||||||
|
|
||||||
|
scoped_refptr<net::URLRequestContextGetter> request_context_getter_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(AtomAccessTokenStore);
|
DISALLOW_COPY_AND_ASSIGN(AtomAccessTokenStore);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
2
vendor/brightray
vendored
2
vendor/brightray
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 3a98173c6848bac241074979b24f5a54cc92b5b0
|
Subproject commit e26f8073df2b20ba2169ffb082c5f135d542313b
|
Loading…
Add table
Add a link
Reference in a new issue