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

Side by Side Diff: content/browser/browser_context.cc

Issue 2118083002: ShellClient -> Service (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mus2
Patch Set: . Created 4 years, 5 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 | « components/leveldb/leveldb_app.cc ('k') | content/browser/gpu/gpu_process_host.cc » ('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 (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 22 matching lines...) Expand all
33 #include "content/public/browser/site_instance.h" 33 #include "content/public/browser/site_instance.h"
34 #include "content/public/common/content_switches.h" 34 #include "content/public/common/content_switches.h"
35 #include "content/public/common/mojo_shell_connection.h" 35 #include "content/public/common/mojo_shell_connection.h"
36 #include "net/cookies/cookie_store.h" 36 #include "net/cookies/cookie_store.h"
37 #include "net/ssl/channel_id_service.h" 37 #include "net/ssl/channel_id_service.h"
38 #include "net/ssl/channel_id_store.h" 38 #include "net/ssl/channel_id_store.h"
39 #include "net/url_request/url_request_context.h" 39 #include "net/url_request/url_request_context.h"
40 #include "net/url_request/url_request_context_getter.h" 40 #include "net/url_request/url_request_context_getter.h"
41 #include "services/shell/public/cpp/connection.h" 41 #include "services/shell/public/cpp/connection.h"
42 #include "services/shell/public/cpp/connector.h" 42 #include "services/shell/public/cpp/connector.h"
43 #include "services/shell/public/interfaces/shell_client.mojom.h" 43 #include "services/shell/public/interfaces/service.mojom.h"
44 #include "services/user/public/cpp/constants.h" 44 #include "services/user/public/cpp/constants.h"
45 #include "services/user/user_id_map.h" 45 #include "services/user/user_id_map.h"
46 #include "services/user/user_shell_client.h" 46 #include "services/user/user_shell_client.h"
47 #include "storage/browser/database/database_tracker.h" 47 #include "storage/browser/database/database_tracker.h"
48 #include "storage/browser/fileapi/external_mount_points.h" 48 #include "storage/browser/fileapi/external_mount_points.h"
49 49
50 using base::UserDataAdapter; 50 using base::UserDataAdapter;
51 51
52 namespace content { 52 namespace content {
53 53
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 DCHECK_CURRENTLY_ON(BrowserThread::UI); 143 DCHECK_CURRENTLY_ON(BrowserThread::UI);
144 DCHECK(download_manager); 144 DCHECK(download_manager);
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::ShellClientRequest request) 153 shell::mojom::ServiceRequest request)
154 : root_connection_(std::move(connection)), 154 : root_connection_(std::move(connection)),
155 shell_connection_(MojoShellConnection::Create(std::move(request))) {} 155 shell_connection_(MojoShellConnection::Create(std::move(request))) {}
156 ~BrowserContextShellConnectionHolder() override {} 156 ~BrowserContextShellConnectionHolder() override {}
157 157
158 MojoShellConnection* shell_connection() { return shell_connection_.get(); } 158 MojoShellConnection* shell_connection() { return shell_connection_.get(); }
159 159
160 private: 160 private:
161 std::unique_ptr<shell::Connection> root_connection_; 161 std::unique_ptr<shell::Connection> root_connection_;
162 std::unique_ptr<MojoShellConnection> shell_connection_; 162 std::unique_ptr<MojoShellConnection> shell_connection_;
163 163
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 new ShellUserIdHolder(new_id)); 409 new ShellUserIdHolder(new_id));
410 410
411 browser_context->SetUserData(kMojoWasInitialized, 411 browser_context->SetUserData(kMojoWasInitialized,
412 new base::SupportsUserData::Data); 412 new base::SupportsUserData::Data);
413 413
414 MojoShellConnection* shell = MojoShellConnection::GetForProcess(); 414 MojoShellConnection* shell = MojoShellConnection::GetForProcess();
415 if (shell && base::MessageLoop::current()) { 415 if (shell && base::MessageLoop::current()) {
416 // NOTE: Many unit tests create a TestBrowserContext without initializing 416 // NOTE: Many unit tests create a TestBrowserContext without initializing
417 // Mojo or the global Mojo shell connection. 417 // Mojo or the global Mojo shell connection.
418 418
419 shell::mojom::ShellClientPtr shell_client; 419 shell::mojom::ServicePtr service;
420 shell::mojom::ShellClientRequest shell_client_request = 420 shell::mojom::ServiceRequest service_request = mojo::GetProxy(&service);
421 mojo::GetProxy(&shell_client);
422 421
423 shell::mojom::PIDReceiverPtr pid_receiver; 422 shell::mojom::PIDReceiverPtr pid_receiver;
424 shell::Connector::ConnectParams params( 423 shell::Connector::ConnectParams params(
425 shell::Identity(kBrowserMojoApplicationName, new_id)); 424 shell::Identity(kBrowserMojoApplicationName, new_id));
426 params.set_client_process_connection(std::move(shell_client), 425 params.set_client_process_connection(std::move(service),
427 mojo::GetProxy(&pid_receiver)); 426 mojo::GetProxy(&pid_receiver));
428 pid_receiver->SetPID(base::GetCurrentProcId()); 427 pid_receiver->SetPID(base::GetCurrentProcId());
429 428
430 BrowserContextShellConnectionHolder* connection_holder = 429 BrowserContextShellConnectionHolder* connection_holder =
431 new BrowserContextShellConnectionHolder( 430 new BrowserContextShellConnectionHolder(
432 shell->GetConnector()->Connect(&params), 431 shell->GetConnector()->Connect(&params),
433 std::move(shell_client_request)); 432 std::move(service_request));
434 browser_context->SetUserData(kMojoShellConnection, connection_holder); 433 browser_context->SetUserData(kMojoShellConnection, connection_holder);
435 434
436 MojoShellConnection* connection = connection_holder->shell_connection(); 435 MojoShellConnection* connection = connection_holder->shell_connection();
437 436
438 // New embedded service factories should be added to |connection| here. 437 // New embedded service factories should be added to |connection| here.
439 438
440 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 439 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
441 switches::kMojoLocalStorage)) { 440 switches::kMojoLocalStorage)) {
442 MojoApplicationInfo info; 441 MojoApplicationInfo info;
443 info.application_factory = base::Bind( 442 info.application_factory = base::Bind(
444 &user_service::CreateUserShellClient, 443 &user_service::CreateUserService,
445 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE), 444 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::FILE),
446 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB)); 445 BrowserThread::GetMessageLoopProxyForThread(BrowserThread::DB));
447 connection->AddEmbeddedService(user_service::kUserServiceName, info); 446 connection->AddEmbeddedService(user_service::kUserServiceName, info);
448 } 447 }
449 } 448 }
450 } 449 }
451 450
452 // static 451 // static
453 const std::string& BrowserContext::GetShellUserIdFor( 452 const std::string& BrowserContext::GetShellUserIdFor(
454 BrowserContext* browser_context) { 453 BrowserContext* browser_context) {
(...skipping 29 matching lines...) Expand all
484 << "Attempting to destroy a BrowserContext that never called " 483 << "Attempting to destroy a BrowserContext that never called "
485 << "Initialize()"; 484 << "Initialize()";
486 485
487 RemoveBrowserContextFromUserIdMap(this); 486 RemoveBrowserContextFromUserIdMap(this);
488 487
489 if (GetUserData(kDownloadManagerKeyName)) 488 if (GetUserData(kDownloadManagerKeyName))
490 GetDownloadManager(this)->Shutdown(); 489 GetDownloadManager(this)->Shutdown();
491 } 490 }
492 491
493 } // namespace content 492 } // namespace content
OLDNEW
« no previous file with comments | « components/leveldb/leveldb_app.cc ('k') | content/browser/gpu/gpu_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698