| 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 "chrome/browser/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 const char kChromeServiceName[] = "chrome"; | 497 const char kChromeServiceName[] = "chrome"; |
| 498 | 498 |
| 499 // Packaged service implementation used to expose miscellaneous application | 499 // Packaged service implementation used to expose miscellaneous application |
| 500 // control features. This is a singleton service which runs on the main thread | 500 // control features. This is a singleton service which runs on the main thread |
| 501 // and never stops. | 501 // and never stops. |
| 502 class ChromeServiceChromeOS | 502 class ChromeServiceChromeOS |
| 503 : public service_manager::Service, | 503 : public service_manager::Service, |
| 504 public mash::mojom::Launchable, | 504 public mash::mojom::Launchable, |
| 505 public service_manager::InterfaceFactory<mash::mojom::Launchable> { | 505 public service_manager::InterfaceFactory<mash::mojom::Launchable> { |
| 506 public: | 506 public: |
| 507 ChromeServiceChromeOS() | 507 ChromeServiceChromeOS() { |
| 508 : interfaces_(service_manager::mojom::kServiceManager_ConnectorSpec) { | |
| 509 interfaces_.AddInterface<mash::mojom::Launchable>(this); | 508 interfaces_.AddInterface<mash::mojom::Launchable>(this); |
| 510 } | 509 } |
| 511 ~ChromeServiceChromeOS() override {} | 510 ~ChromeServiceChromeOS() override {} |
| 512 | 511 |
| 513 static std::unique_ptr<service_manager::Service> CreateService() { | 512 static std::unique_ptr<service_manager::Service> CreateService() { |
| 514 return base::MakeUnique<ChromeServiceChromeOS>(); | 513 return base::MakeUnique<ChromeServiceChromeOS>(); |
| 515 } | 514 } |
| 516 | 515 |
| 517 private: | 516 private: |
| 518 void CreateNewWindowImpl(bool is_incognito) { | 517 void CreateNewWindowImpl(bool is_incognito) { |
| 519 Profile* profile = ProfileManager::GetActiveUserProfile(); | 518 Profile* profile = ProfileManager::GetActiveUserProfile(); |
| 520 chrome::NewEmptyWindow(is_incognito ? profile->GetOffTheRecordProfile() | 519 chrome::NewEmptyWindow(is_incognito ? profile->GetOffTheRecordProfile() |
| 521 : profile); | 520 : profile); |
| 522 } | 521 } |
| 523 | 522 |
| 524 // service_manager::Service: | 523 // service_manager::Service: |
| 525 void OnBindInterface(const service_manager::ServiceInfo& remote_info, | 524 void OnBindInterface(const service_manager::ServiceInfo& remote_info, |
| 526 const std::string& name, | 525 const std::string& name, |
| 527 mojo::ScopedMessagePipeHandle handle) override { | 526 mojo::ScopedMessagePipeHandle handle) override { |
| 528 interfaces_.BindInterface(name, std::move(handle)); | 527 interfaces_.BindInterface(remote_info.identity, name, std::move(handle)); |
| 529 } | 528 } |
| 530 | 529 |
| 531 // mash::mojom::Launchable: | 530 // mash::mojom::Launchable: |
| 532 void Launch(uint32_t what, mash::mojom::LaunchMode how) override { | 531 void Launch(uint32_t what, mash::mojom::LaunchMode how) override { |
| 533 if (how != mash::mojom::LaunchMode::MAKE_NEW) { | 532 if (how != mash::mojom::LaunchMode::MAKE_NEW) { |
| 534 LOG(ERROR) << "Unable to handle Launch request with how = " << how; | 533 LOG(ERROR) << "Unable to handle Launch request with how = " << how; |
| 535 return; | 534 return; |
| 536 } | 535 } |
| 537 switch (what) { | 536 switch (what) { |
| 538 case mash::mojom::kWindow: | 537 case mash::mojom::kWindow: |
| 539 CreateNewWindowImpl(false /* is_incognito */); | 538 CreateNewWindowImpl(false /* is_incognito */); |
| 540 break; | 539 break; |
| 541 case mash::mojom::kIncognitoWindow: | 540 case mash::mojom::kIncognitoWindow: |
| 542 CreateNewWindowImpl(true /* is_incognito */); | 541 CreateNewWindowImpl(true /* is_incognito */); |
| 543 break; | 542 break; |
| 544 default: | 543 default: |
| 545 NOTREACHED(); | 544 NOTREACHED(); |
| 546 } | 545 } |
| 547 } | 546 } |
| 548 | 547 |
| 549 // mojo::InterfaceFactory<mash::mojom::Launchable>: | 548 // mojo::InterfaceFactory<mash::mojom::Launchable>: |
| 550 void Create(const service_manager::Identity& remote_identity, | 549 void Create(const service_manager::Identity& remote_identity, |
| 551 mash::mojom::LaunchableRequest request) override { | 550 mash::mojom::LaunchableRequest request) override { |
| 552 bindings_.AddBinding(this, std::move(request)); | 551 bindings_.AddBinding(this, std::move(request)); |
| 553 } | 552 } |
| 554 | 553 |
| 555 service_manager::InterfaceRegistry interfaces_; | 554 service_manager::BinderRegistry interfaces_; |
| 556 mojo::BindingSet<mash::mojom::Launchable> bindings_; | 555 mojo::BindingSet<mash::mojom::Launchable> bindings_; |
| 557 | 556 |
| 558 DISALLOW_COPY_AND_ASSIGN(ChromeServiceChromeOS); | 557 DISALLOW_COPY_AND_ASSIGN(ChromeServiceChromeOS); |
| 559 }; | 558 }; |
| 560 | 559 |
| 561 #endif // defined(OS_CHROMEOS) | 560 #endif // defined(OS_CHROMEOS) |
| 562 | 561 |
| 563 // Returns a copy of the given url with its host set to given host and path set | 562 // Returns a copy of the given url with its host set to given host and path set |
| 564 // to given path. Other parts of the url will be the same. | 563 // to given path. Other parts of the url will be the same. |
| 565 GURL ReplaceURLHostAndPath(const GURL& url, | 564 GURL ReplaceURLHostAndPath(const GURL& url, |
| (...skipping 3054 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3620 RedirectNonUINonIOBrowserThreadsToTaskScheduler() { | 3619 RedirectNonUINonIOBrowserThreadsToTaskScheduler() { |
| 3621 return variations::GetVariationParamValue( | 3620 return variations::GetVariationParamValue( |
| 3622 "BrowserScheduler", "RedirectNonUINonIOBrowserThreads") == "true"; | 3621 "BrowserScheduler", "RedirectNonUINonIOBrowserThreads") == "true"; |
| 3623 } | 3622 } |
| 3624 | 3623 |
| 3625 // static | 3624 // static |
| 3626 void ChromeContentBrowserClient::SetDefaultQuotaSettingsForTesting( | 3625 void ChromeContentBrowserClient::SetDefaultQuotaSettingsForTesting( |
| 3627 const storage::QuotaSettings* settings) { | 3626 const storage::QuotaSettings* settings) { |
| 3628 g_default_quota_settings = settings; | 3627 g_default_quota_settings = settings; |
| 3629 } | 3628 } |
| OLD | NEW |