Merge pull request #576 from atom/geolocation
Implement geolocation API
This commit is contained in:
commit
66ef1a067d
5 changed files with 93 additions and 0 deletions
2
atom.gyp
2
atom.gyp
|
@ -83,6 +83,8 @@
|
||||||
'atom/browser/auto_updater_linux.cc',
|
'atom/browser/auto_updater_linux.cc',
|
||||||
'atom/browser/auto_updater_mac.mm',
|
'atom/browser/auto_updater_mac.mm',
|
||||||
'atom/browser/auto_updater_win.cc',
|
'atom/browser/auto_updater_win.cc',
|
||||||
|
'atom/browser/atom_access_token_store.cc',
|
||||||
|
'atom/browser/atom_access_token_store.h',
|
||||||
'atom/browser/atom_browser_client.cc',
|
'atom/browser/atom_browser_client.cc',
|
||||||
'atom/browser/atom_browser_client.h',
|
'atom/browser/atom_browser_client.h',
|
||||||
'atom/browser/atom_browser_context.cc',
|
'atom/browser/atom_browser_context.cc',
|
||||||
|
|
54
atom/browser/atom_access_token_store.cc
Normal file
54
atom/browser/atom_access_token_store.cc
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
// Copyright (c) 2014 GitHub, Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by the MIT license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#include "atom/browser/atom_access_token_store.h"
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
|
#include "atom/browser/atom_browser_context.h"
|
||||||
|
#include "atom/browser/net/atom_url_request_context_getter.h"
|
||||||
|
|
||||||
|
#ifndef GOOGLEAPIS_API_KEY
|
||||||
|
#define GOOGLEAPIS_API_KEY "AIzaSyAQfxPJiounkhOjODEO5ZieffeBv6yft2Q"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace atom {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
// Notice that we just combined the api key with the url together here, because
|
||||||
|
// if we use the standard {url: key} format Chromium would override our key with
|
||||||
|
// the predefined one in common.gypi of libchromiumcontent, which is empty.
|
||||||
|
const char* kGeolocationProviderUrl =
|
||||||
|
"https://www.googleapis.com/geolocation/v1/geolocate?key="
|
||||||
|
GOOGLEAPIS_API_KEY;
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
AtomAccessTokenStore::AtomAccessTokenStore() {
|
||||||
|
}
|
||||||
|
|
||||||
|
AtomAccessTokenStore::~AtomAccessTokenStore() {
|
||||||
|
}
|
||||||
|
|
||||||
|
void AtomAccessTokenStore::LoadAccessTokens(
|
||||||
|
const LoadAccessTokensCallbackType& callback) {
|
||||||
|
AccessTokenSet access_token_set;
|
||||||
|
|
||||||
|
// Equivelent to access_token_set[kGeolocationProviderUrl].
|
||||||
|
// Somehow base::string16 is causing compilation errors when used in a pair
|
||||||
|
// of std::map on Linux, this can work around it.
|
||||||
|
std::pair<GURL, base::string16> token_pair;
|
||||||
|
token_pair.first = GURL(kGeolocationProviderUrl);
|
||||||
|
access_token_set.insert(token_pair);
|
||||||
|
|
||||||
|
callback.Run(access_token_set,
|
||||||
|
AtomBrowserContext::Get()->url_request_context_getter());
|
||||||
|
}
|
||||||
|
|
||||||
|
void AtomAccessTokenStore::SaveAccessToken(const GURL& server_url,
|
||||||
|
const base::string16& access_token) {
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace atom
|
31
atom/browser/atom_access_token_store.h
Normal file
31
atom/browser/atom_access_token_store.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (c) 2014 GitHub, Inc. All rights reserved.
|
||||||
|
// Use of this source code is governed by the MIT license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
#ifndef ATOM_BROWSER_ATOM_ACCESS_TOKEN_STORE_H_
|
||||||
|
#define ATOM_BROWSER_ATOM_ACCESS_TOKEN_STORE_H_
|
||||||
|
|
||||||
|
#include "content/public/browser/access_token_store.h"
|
||||||
|
|
||||||
|
namespace atom {
|
||||||
|
|
||||||
|
class AtomBrowserContext;
|
||||||
|
|
||||||
|
class AtomAccessTokenStore : public content::AccessTokenStore {
|
||||||
|
public:
|
||||||
|
AtomAccessTokenStore();
|
||||||
|
virtual ~AtomAccessTokenStore();
|
||||||
|
|
||||||
|
// content::AccessTokenStore:
|
||||||
|
virtual void LoadAccessTokens(
|
||||||
|
const LoadAccessTokensCallbackType& callback) OVERRIDE;
|
||||||
|
virtual void SaveAccessToken(const GURL& server_url,
|
||||||
|
const base::string16& access_token) OVERRIDE;
|
||||||
|
|
||||||
|
private:
|
||||||
|
DISALLOW_COPY_AND_ASSIGN(AtomAccessTokenStore);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace atom
|
||||||
|
|
||||||
|
#endif // ATOM_BROWSER_ATOM_ACCESS_TOKEN_STORE_H_
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#include "atom/browser/atom_browser_client.h"
|
#include "atom/browser/atom_browser_client.h"
|
||||||
|
|
||||||
|
#include "atom/browser/atom_access_token_store.h"
|
||||||
#include "atom/browser/atom_browser_context.h"
|
#include "atom/browser/atom_browser_context.h"
|
||||||
#include "atom/browser/atom_browser_main_parts.h"
|
#include "atom/browser/atom_browser_main_parts.h"
|
||||||
#include "atom/browser/atom_resource_dispatcher_host_delegate.h"
|
#include "atom/browser/atom_resource_dispatcher_host_delegate.h"
|
||||||
|
@ -62,6 +63,10 @@ void AtomBrowserClient::ResourceDispatcherHostCreated() {
|
||||||
resource_dispatcher_delegate_.get());
|
resource_dispatcher_delegate_.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content::AccessTokenStore* AtomBrowserClient::CreateAccessTokenStore() {
|
||||||
|
return new AtomAccessTokenStore;
|
||||||
|
}
|
||||||
|
|
||||||
void AtomBrowserClient::OverrideWebkitPrefs(
|
void AtomBrowserClient::OverrideWebkitPrefs(
|
||||||
content::RenderViewHost* render_view_host,
|
content::RenderViewHost* render_view_host,
|
||||||
const GURL& url,
|
const GURL& url,
|
||||||
|
|
|
@ -25,6 +25,7 @@ class AtomBrowserClient : public brightray::BrowserClient {
|
||||||
content::ProtocolHandlerMap* protocol_handlers,
|
content::ProtocolHandlerMap* protocol_handlers,
|
||||||
content::ProtocolHandlerScopedVector protocol_interceptors) OVERRIDE;
|
content::ProtocolHandlerScopedVector protocol_interceptors) OVERRIDE;
|
||||||
virtual void ResourceDispatcherHostCreated() OVERRIDE;
|
virtual void ResourceDispatcherHostCreated() OVERRIDE;
|
||||||
|
virtual content::AccessTokenStore* CreateAccessTokenStore() OVERRIDE;
|
||||||
virtual void OverrideWebkitPrefs(content::RenderViewHost* render_view_host,
|
virtual void OverrideWebkitPrefs(content::RenderViewHost* render_view_host,
|
||||||
const GURL& url,
|
const GURL& url,
|
||||||
WebPreferences* prefs) OVERRIDE;
|
WebPreferences* prefs) OVERRIDE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue