| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/public/browser/browser_context.h" | 5 #include "content/public/browser/browser_context.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <limits> | 10 #include <limits> |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 context->SetUserData(kDownloadManagerKeyName, download_manager); | 145 context->SetUserData(kDownloadManagerKeyName, download_manager); |
| 146 } | 146 } |
| 147 | 147 |
| 148 class BrowserContextShellConnectionHolder | 148 class BrowserContextShellConnectionHolder |
| 149 : public base::SupportsUserData::Data { | 149 : public base::SupportsUserData::Data { |
| 150 public: | 150 public: |
| 151 BrowserContextShellConnectionHolder( | 151 BrowserContextShellConnectionHolder( |
| 152 std::unique_ptr<shell::Connection> connection, | 152 std::unique_ptr<shell::Connection> connection, |
| 153 shell::mojom::ServiceRequest request) | 153 shell::mojom::ServiceRequest request) |
| 154 : root_connection_(std::move(connection)), | 154 : root_connection_(std::move(connection)), |
| 155 shell_connection_(MojoShellConnection::Create( | 155 shell_connection_(MojoShellConnection::Create(std::move(request))) {} |
| 156 std::move(request), | |
| 157 BrowserThread::GetTaskRunnerForThread(BrowserThread::IO))) {} | |
| 158 ~BrowserContextShellConnectionHolder() override {} | 156 ~BrowserContextShellConnectionHolder() override {} |
| 159 | 157 |
| 160 MojoShellConnection* shell_connection() { return shell_connection_.get(); } | 158 MojoShellConnection* shell_connection() { return shell_connection_.get(); } |
| 161 | 159 |
| 162 private: | 160 private: |
| 163 std::unique_ptr<shell::Connection> root_connection_; | 161 std::unique_ptr<shell::Connection> root_connection_; |
| 164 std::unique_ptr<MojoShellConnection> shell_connection_; | 162 std::unique_ptr<MojoShellConnection> shell_connection_; |
| 165 | 163 |
| 166 DISALLOW_COPY_AND_ASSIGN(BrowserContextShellConnectionHolder); | 164 DISALLOW_COPY_AND_ASSIGN(BrowserContextShellConnectionHolder); |
| 167 }; | 165 }; |
| (...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 mojo::GetProxy(&pid_receiver)); | 426 mojo::GetProxy(&pid_receiver)); |
| 429 pid_receiver->SetPID(base::GetCurrentProcId()); | 427 pid_receiver->SetPID(base::GetCurrentProcId()); |
| 430 | 428 |
| 431 BrowserContextShellConnectionHolder* connection_holder = | 429 BrowserContextShellConnectionHolder* connection_holder = |
| 432 new BrowserContextShellConnectionHolder( | 430 new BrowserContextShellConnectionHolder( |
| 433 shell->GetConnector()->Connect(¶ms), | 431 shell->GetConnector()->Connect(¶ms), |
| 434 std::move(service_request)); | 432 std::move(service_request)); |
| 435 browser_context->SetUserData(kMojoShellConnection, connection_holder); | 433 browser_context->SetUserData(kMojoShellConnection, connection_holder); |
| 436 | 434 |
| 437 MojoShellConnection* connection = connection_holder->shell_connection(); | 435 MojoShellConnection* connection = connection_holder->shell_connection(); |
| 438 connection->Start(); | |
| 439 | 436 |
| 440 // New embedded service factories should be added to |connection| here. | 437 // New embedded service factories should be added to |connection| here. |
| 441 | 438 |
| 442 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 439 if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 443 switches::kMojoLocalStorage)) { | 440 switches::kMojoLocalStorage)) { |
| 444 MojoApplicationInfo info; | 441 MojoApplicationInfo info; |
| 445 info.application_factory = | 442 info.application_factory = |
| 446 base::Bind(&user_service::CreateUserService, | 443 base::Bind(&user_service::CreateUserService, |
| 447 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), | 444 BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE), |
| 448 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB)); | 445 BrowserThread::GetTaskRunnerForThread(BrowserThread::DB)); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 << "Attempting to destroy a BrowserContext that never called " | 483 << "Attempting to destroy a BrowserContext that never called " |
| 487 << "Initialize()"; | 484 << "Initialize()"; |
| 488 | 485 |
| 489 RemoveBrowserContextFromUserIdMap(this); | 486 RemoveBrowserContextFromUserIdMap(this); |
| 490 | 487 |
| 491 if (GetUserData(kDownloadManagerKeyName)) | 488 if (GetUserData(kDownloadManagerKeyName)) |
| 492 GetDownloadManager(this)->Shutdown(); | 489 GetDownloadManager(this)->Shutdown(); |
| 493 } | 490 } |
| 494 | 491 |
| 495 } // namespace content | 492 } // namespace content |
| OLD | NEW |