Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: blimp/engine/app/blimp_browser_main_parts.cc

Issue 2091023006: Adds EngineGeolocationFeature for Blimp Geolocation project. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « blimp/engine/BUILD.gn ('k') | blimp/engine/feature/geolocation/blimp_location_provider.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "blimp/engine/app/blimp_browser_main_parts.h" 5 #include "blimp/engine/app/blimp_browser_main_parts.h"
6 6
7 #include <utility>
8
7 #include "base/command_line.h" 9 #include "base/command_line.h"
8 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
9 #include "base/threading/thread_restrictions.h" 11 #include "base/threading/thread_restrictions.h"
10 #include "blimp/common/proto/blimp_message.pb.h" 12 #include "blimp/common/proto/blimp_message.pb.h"
11 #include "blimp/engine/app/blimp_engine_config.h" 13 #include "blimp/engine/app/blimp_engine_config.h"
12 #include "blimp/engine/app/settings_manager.h" 14 #include "blimp/engine/app/settings_manager.h"
13 #include "blimp/engine/common/blimp_browser_context.h" 15 #include "blimp/engine/common/blimp_browser_context.h"
14 #include "blimp/engine/feature/geolocation/blimp_location_provider.h" 16 #include "blimp/engine/feature/geolocation/blimp_location_provider.h"
15 #include "blimp/engine/session/blimp_engine_session.h" 17 #include "blimp/engine/session/blimp_engine_session.h"
16 #include "blimp/net/blimp_connection.h" 18 #include "blimp/net/blimp_connection.h"
17 #include "content/public/browser/browser_thread.h" 19 #include "content/public/browser/browser_thread.h"
18 #include "content/public/browser/geolocation_delegate.h"
19 #include "content/public/browser/geolocation_provider.h"
20 #include "content/public/common/main_function_params.h" 20 #include "content/public/common/main_function_params.h"
21 #include "net/base/net_module.h" 21 #include "net/base/net_module.h"
22 #include "net/log/net_log.h" 22 #include "net/log/net_log.h"
23 23
24 namespace blimp { 24 namespace blimp {
25 namespace engine { 25 namespace engine {
26 26
27 namespace {
28 // A provider of services needed by Geolocation.
29 class BlimpGeolocationDelegate : public content::GeolocationDelegate {
30 public:
31 BlimpGeolocationDelegate() = default;
32
33 bool UseNetworkLocationProviders() final { return false; }
34
35 std::unique_ptr<content::LocationProvider> OverrideSystemLocationProvider()
36 final {
37 return base::WrapUnique(new BlimpLocationProvider());
38 }
39
40 private:
41 DISALLOW_COPY_AND_ASSIGN(BlimpGeolocationDelegate);
42 };
43
44 } // anonymous namespace
45
46 BlimpBrowserMainParts::BlimpBrowserMainParts( 27 BlimpBrowserMainParts::BlimpBrowserMainParts(
47 const content::MainFunctionParams& parameters) {} 28 const content::MainFunctionParams& parameters) {}
48 29
49 BlimpBrowserMainParts::~BlimpBrowserMainParts() {} 30 BlimpBrowserMainParts::~BlimpBrowserMainParts() {}
50 31
51 void BlimpBrowserMainParts::PreEarlyInitialization() { 32 void BlimpBrowserMainParts::PreEarlyInitialization() {
52 // Fetch the engine config from the command line, and crash if invalid. Allow 33 // Fetch the engine config from the command line, and crash if invalid. Allow
53 // IO operations even though this is not in the FILE thread as this is 34 // IO operations even though this is not in the FILE thread as this is
54 // necessary for Blimp startup and occurs before any user interaction. 35 // necessary for Blimp startup and occurs before any user interaction.
55 { 36 {
56 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess(); 37 const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
57 base::ThreadRestrictions::ScopedAllowIO allow_io; 38 base::ThreadRestrictions::ScopedAllowIO allow_io;
58 engine_config_ = BlimpEngineConfig::Create(*cmd_line); 39 engine_config_ = BlimpEngineConfig::Create(*cmd_line);
59 CHECK(engine_config_); 40 CHECK(engine_config_);
60 } 41 }
61 } 42 }
62 43
63 void BlimpBrowserMainParts::PreMainMessageLoopRun() { 44 void BlimpBrowserMainParts::PreMainMessageLoopRun() {
64 net_log_.reset(new net::NetLog()); 45 net_log_.reset(new net::NetLog());
65 settings_manager_.reset(new SettingsManager); 46 settings_manager_.reset(new SettingsManager);
66 std::unique_ptr<BlimpBrowserContext> browser_context( 47 std::unique_ptr<BlimpBrowserContext> browser_context(
67 new BlimpBrowserContext(false, net_log_.get())); 48 new BlimpBrowserContext(false, net_log_.get()));
68 content::GeolocationProvider::SetGeolocationDelegate(
69 new BlimpGeolocationDelegate());
70 engine_session_.reset( 49 engine_session_.reset(
71 new BlimpEngineSession(std::move(browser_context), net_log_.get(), 50 new BlimpEngineSession(std::move(browser_context), net_log_.get(),
72 engine_config_.get(), settings_manager_.get())); 51 engine_config_.get(), settings_manager_.get()));
73 engine_session_->Initialize(); 52 engine_session_->Initialize();
74 } 53 }
75 54
76 void BlimpBrowserMainParts::PostMainMessageLoopRun() { 55 void BlimpBrowserMainParts::PostMainMessageLoopRun() {
77 engine_session_.reset(); 56 engine_session_.reset();
78 } 57 }
79 58
80 BlimpBrowserContext* BlimpBrowserMainParts::GetBrowserContext() { 59 BlimpBrowserContext* BlimpBrowserMainParts::GetBrowserContext() {
81 return engine_session_->browser_context(); 60 return engine_session_->browser_context();
82 } 61 }
83 62
84 SettingsManager* BlimpBrowserMainParts::GetSettingsManager() { 63 SettingsManager* BlimpBrowserMainParts::GetSettingsManager() {
85 return settings_manager_.get(); 64 return settings_manager_.get();
86 } 65 }
87 66
88 BlobChannelSender* BlimpBrowserMainParts::GetBlobChannelSender() { 67 BlobChannelSender* BlimpBrowserMainParts::GetBlobChannelSender() {
89 return engine_session_->blob_channel_sender(); 68 return engine_session_->blob_channel_sender();
90 } 69 }
91 70
92 BlimpEngineSession* BlimpBrowserMainParts::GetBlimpEngineSession() { 71 BlimpEngineSession* BlimpBrowserMainParts::GetBlimpEngineSession() {
93 return engine_session_.get(); 72 return engine_session_.get();
94 } 73 }
95 74
96 } // namespace engine 75 } // namespace engine
97 } // namespace blimp 76 } // namespace blimp
OLDNEW
« no previous file with comments | « blimp/engine/BUILD.gn ('k') | blimp/engine/feature/geolocation/blimp_location_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698