| Index: blimp/engine/app/blimp_browser_main_parts.cc
|
| diff --git a/blimp/engine/app/blimp_browser_main_parts.cc b/blimp/engine/app/blimp_browser_main_parts.cc
|
| index d1a95ecc0d3ecf3e83a9a69b31216c52174299eb..d5390e9a9f7815a64a5e9b7be7f1fd6eea95fba6 100644
|
| --- a/blimp/engine/app/blimp_browser_main_parts.cc
|
| +++ b/blimp/engine/app/blimp_browser_main_parts.cc
|
| @@ -5,14 +5,18 @@
|
| #include "blimp/engine/app/blimp_browser_main_parts.h"
|
|
|
| #include "base/command_line.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/threading/thread_restrictions.h"
|
| #include "blimp/common/proto/blimp_message.pb.h"
|
| #include "blimp/engine/app/blimp_engine_config.h"
|
| #include "blimp/engine/app/settings_manager.h"
|
| #include "blimp/engine/common/blimp_browser_context.h"
|
| +#include "blimp/engine/feature/geolocation/blimp_location_provider.h"
|
| #include "blimp/engine/session/blimp_engine_session.h"
|
| #include "blimp/net/blimp_connection.h"
|
| #include "content/public/browser/browser_thread.h"
|
| +#include "content/public/browser/geolocation_delegate.h"
|
| +#include "content/public/browser/geolocation_provider.h"
|
| #include "content/public/common/main_function_params.h"
|
| #include "net/base/net_module.h"
|
| #include "net/log/net_log.h"
|
| @@ -20,6 +24,25 @@
|
| namespace blimp {
|
| namespace engine {
|
|
|
| +namespace {
|
| +// A provider of services needed by Geolocation.
|
| +class BlimpGeolocationDelegate : public content::GeolocationDelegate {
|
| + public:
|
| + BlimpGeolocationDelegate() = default;
|
| +
|
| + bool UseNetworkLocationProviders() final { return false; }
|
| +
|
| + std::unique_ptr<content::LocationProvider> OverrideSystemLocationProvider()
|
| + final {
|
| + return base::WrapUnique(new BlimpLocationProvider());
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(BlimpGeolocationDelegate);
|
| +};
|
| +
|
| +} // anonymous namespace
|
| +
|
| BlimpBrowserMainParts::BlimpBrowserMainParts(
|
| const content::MainFunctionParams& parameters) {}
|
|
|
| @@ -42,6 +65,8 @@ void BlimpBrowserMainParts::PreMainMessageLoopRun() {
|
| settings_manager_.reset(new SettingsManager);
|
| std::unique_ptr<BlimpBrowserContext> browser_context(
|
| new BlimpBrowserContext(false, net_log_.get()));
|
| + content::GeolocationProvider::SetGeolocationDelegate(
|
| + new BlimpGeolocationDelegate());
|
| engine_session_.reset(
|
| new BlimpEngineSession(std::move(browser_context), net_log_.get(),
|
| engine_config_.get(), settings_manager_.get()));
|
|
|