Skip to content

Commit

Permalink
Eliminate exe: prefix from many services
Browse files Browse the repository at this point in the history
R=rockot@chromium.org

Review-Url: https://codereview.chromium.org/2487203004
Cr-Commit-Position: refs/heads/master@{#431675}
  • Loading branch information
ben authored and Commit bot committed Nov 11, 2016
1 parent d093f7b commit f437f05
Show file tree
Hide file tree
Showing 62 changed files with 178 additions and 527 deletions.
2 changes: 1 addition & 1 deletion ash/mus/app_launch_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ void RunCallback(bool* success, const base::Closure& callback, bool result) {

class AppLaunchTest : public service_manager::test::ServiceTest {
public:
AppLaunchTest() : ServiceTest("exe:mash_unittests") {}
AppLaunchTest() : ServiceTest("service:mash_unittests") {}
~AppLaunchTest() override {}

private:
Expand Down
2 changes: 1 addition & 1 deletion ash/mus/window_manager_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class WindowTreeClientDelegate : public ui::WindowTreeClientDelegate {
class WindowManagerTest : public service_manager::test::ServiceTest {
public:
WindowManagerTest()
: service_manager::test::ServiceTest("exe:mash_unittests") {}
: service_manager::test::ServiceTest("service:mash_unittests") {}
~WindowManagerTest() override {}

private:
Expand Down
1 change: 0 additions & 1 deletion chrome/test/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -5036,7 +5036,6 @@ if (is_android) {

if (is_chromeos) {
service_manifest("mash_browser_tests_manifest") {
type = "exe"
name = "mash_browser_tests"

source = "base/mash_browser_tests_manifest.json"
Expand Down
2 changes: 1 addition & 1 deletion chrome/test/base/mash_browser_tests_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:mash_browser_tests",
"name": "service:mash_browser_tests",
"display_name": "Mash Browser Tests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
2 changes: 1 addition & 1 deletion chrome/test/base/mojo_test_connector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

namespace {

const char kTestRunnerName[] = "exe:mash_browser_tests";
const char kTestRunnerName[] = "service:mash_browser_tests";
const char kTestName[] = "service:content_browser";

// BackgroundTestState maintains all the state necessary to bind the test to
Expand Down
1 change: 0 additions & 1 deletion components/filesystem/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ test("filesystem_service_unittests") {
}

service_manifest("test_manifest") {
type = "exe"
name = "filesystem_service_unittests"
source = "test_manifest.json"
}
2 changes: 1 addition & 1 deletion components/filesystem/files_test_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
namespace filesystem {

FilesTestBase::FilesTestBase()
: ServiceTest("exe:filesystem_service_unittests") {
: ServiceTest("service:filesystem_service_unittests") {
}

FilesTestBase::~FilesTestBase() {
Expand Down
2 changes: 1 addition & 1 deletion components/filesystem/test_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:filesystem_service_unittests",
"name": "service:filesystem_service_unittests",
"display_name": "Filesystem Service Unittests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
1 change: 0 additions & 1 deletion components/leveldb/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ test("leveldb_service_unittests") {
}

service_manifest("test_manifest") {
type = "exe"
name = "leveldb_service_unittests"
source = "test_manifest.json"
}
2 changes: 1 addition & 1 deletion components/leveldb/leveldb_service_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ void LevelDBSyncOpenInMemory(mojom::LevelDBService* leveldb,

class LevelDBServiceTest : public service_manager::test::ServiceTest {
public:
LevelDBServiceTest() : ServiceTest("exe:leveldb_service_unittests") {}
LevelDBServiceTest() : ServiceTest("service:leveldb_service_unittests") {}
~LevelDBServiceTest() override {}

protected:
Expand Down
2 changes: 1 addition & 1 deletion components/leveldb/remote_iterator_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ base::Callback<void(const base::UnguessableToken&)> CaptureToken(

class RemoteIteratorTest : public service_manager::test::ServiceTest {
public:
RemoteIteratorTest() : ServiceTest("exe:leveldb_service_unittests") {}
RemoteIteratorTest() : ServiceTest("service:leveldb_service_unittests") {}
~RemoteIteratorTest() override {}

protected:
Expand Down
2 changes: 1 addition & 1 deletion components/leveldb/test_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:leveldb_service_unittests",
"name": "service:leveldb_service_unittests",
"display_name": "LevelDB Service Unittests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
1 change: 0 additions & 1 deletion mash/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ test("mash_unittests") {
}

service_manifest("unittests_manifest") {
type = "exe"
name = "mash_unittests"
source = "unittests_manifest.json"
}
2 changes: 1 addition & 1 deletion mash/unittests_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:mash_unittests",
"name": "service:mash_unittests",
"display_name": "Mash Unittests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
2 changes: 0 additions & 2 deletions media/mojo/services/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,6 @@ service_manifest("media_manifest") {

service_manifest("test_manifest") {
name = "media_mojo_shell_unittests"
type = "exe"
source = "test_manifest.json"
}

Expand All @@ -188,6 +187,5 @@ test("media_pipeline_integration_unittests") {

service_manifest("pipeline_test_manifest") {
name = "media_pipeline_integration_unittests"
type = "exe"
source = "pipeline_test_manifest.json"
}
2 changes: 1 addition & 1 deletion media/mojo/services/media_mojo_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class MockRendererClient : public mojom::RendererClient {
class MediaServiceTest : public service_manager::test::ServiceTest {
public:
MediaServiceTest()
: ServiceTest("exe:media_mojo_unittests"),
: ServiceTest("service:media_mojo_unittests"),
renderer_client_binding_(&renderer_client_),
video_stream_(DemuxerStream::VIDEO) {}
~MediaServiceTest() override {}
Expand Down
2 changes: 1 addition & 1 deletion media/mojo/services/pipeline_test_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:media_pipeline_integration_unittests",
"name": "service:media_pipeline_integration_unittests",
"display_name": "Media Pipeline Integration Unittests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
2 changes: 1 addition & 1 deletion media/mojo/services/test_manifest.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "exe:media_mojo_shell_unittests",
"name": "service:media_mojo_shell_unittests",
"display_name": "Media Mojo Shell Unittests",
"interface_provider_specs": {
"service_manager:connector": {
Expand Down
2 changes: 1 addition & 1 deletion media/test/pipeline_integration_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -699,7 +699,7 @@ class PipelineIntegrationTestHost : public service_manager::test::ServiceTest,
public:
PipelineIntegrationTestHost()
: service_manager::test::ServiceTest(
"exe:media_pipeline_integration_shelltests") {}
"service:media_pipeline_integration_shelltests") {}

void SetUp() override {
ServiceTest::SetUp();
Expand Down
18 changes: 5 additions & 13 deletions services/catalog/catalog.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,15 @@ bool IsPathNameValid(const std::string& name) {
}

base::FilePath GetPathForApplicationName(const std::string& application_name) {
static const char kServicePrefix[] = "service:";
std::string path = application_name;
const bool is_service =
base::StartsWith(path, "service:", base::CompareCase::INSENSITIVE_ASCII);
const bool is_exe =
!is_service &&
base::StartsWith(path, "exe:", base::CompareCase::INSENSITIVE_ASCII);
if (!is_service && !is_exe)
const bool is_service = base::StartsWith(
path, kServicePrefix, base::CompareCase::INSENSITIVE_ASCII);
if (!is_service)
return base::FilePath();
if (path.find('.') != std::string::npos)
return base::FilePath();
if (is_service) {
path.erase(path.begin(),
path.begin() + strlen(service_manager::kNameType_Service) + 1);
} else {
path.erase(path.begin(),
path.begin() + strlen(service_manager::kNameType_Exe) + 1);
}
path.erase(path.begin(), path.begin() + strlen(kServicePrefix));
base::TrimString(path, "/", &path);
size_t end_of_name = path.find('/');
if (end_of_name != std::string::npos)
Expand Down
16 changes: 7 additions & 9 deletions services/catalog/instance.cc
Original file line number Diff line number Diff line change
Expand Up @@ -58,22 +58,20 @@ void Instance::CacheReady(EntryCache* cache) {
////////////////////////////////////////////////////////////////////////////////
// Instance, service_manager::mojom::Resolver:

void Instance::ResolveMojoName(const std::string& mojo_name,
void Instance::ResolveMojoName(const std::string& service_name,
const ResolveMojoNameCallback& callback) {
DCHECK(system_cache_);

std::string type = service_manager::GetNameType(mojo_name);
if (type != service_manager::kNameType_Service &&
type != service_manager::kNameType_Exe) {
std::unique_ptr<Entry> entry(new Entry(mojo_name));
if (!service_manager::IsValidName(service_name)) {
std::unique_ptr<Entry> entry(new Entry(service_name));
service_manager::mojom::ResolveResultPtr result =
service_manager::mojom::ResolveResult::From(*entry);
callback.Run(std::move(result));
return;
}

// TODO(beng): per-user catalogs.
auto entry = system_cache_->find(mojo_name);
auto entry = system_cache_->find(service_name);
if (entry != system_cache_->end()) {
callback.Run(service_manager::mojom::ResolveResult::From(*entry->second));
return;
Expand All @@ -82,9 +80,9 @@ void Instance::ResolveMojoName(const std::string& mojo_name,
// Manifests for mojo: names should always be in the catalog by this point.
// DCHECK(type == service_manager::kNameType_Exe);
system_reader_->CreateEntryForName(
mojo_name, system_cache_,
service_name, system_cache_,
base::Bind(&Instance::OnReadManifest, weak_factory_.GetWeakPtr(),
mojo_name, callback));
service_name, callback));
}

////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -168,7 +166,7 @@ void Instance::SerializeCatalog() {

// static
void Instance::OnReadManifest(base::WeakPtr<Instance> instance,
const std::string& mojo_name,
const std::string& service_name,
const ResolveMojoNameCallback& callback,
service_manager::mojom::ResolveResultPtr result) {
callback.Run(std::move(result));
Expand Down
4 changes: 2 additions & 2 deletions services/catalog/instance.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Instance : public service_manager::mojom::Resolver,

private:
// service_manager::mojom::Resolver:
void ResolveMojoName(const std::string& mojo_name,
void ResolveMojoName(const std::string& service_name,
const ResolveMojoNameCallback& callback) override;

// mojom::Catalog:
Expand All @@ -60,7 +60,7 @@ class Instance : public service_manager::mojom::Resolver,
// Receives the result of manifest parsing, may be received after the
// catalog object that issued the request is destroyed.
static void OnReadManifest(base::WeakPtr<Instance> instance,
const std::string& mojo_name,
const std::string& service_name,
const ResolveMojoNameCallback& callback,
service_manager::mojom::ResolveResultPtr result);

Expand Down
36 changes: 7 additions & 29 deletions services/catalog/reader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -25,40 +25,18 @@ base::FilePath GetManifestPath(const base::FilePath& package_dir,
const std::string& name,
const std::string& package_name_override) {
// TODO(beng): think more about how this should be done for exe targets.
std::string type = service_manager::GetNameType(name);
std::string path = service_manager::GetNamePath(name);
if (type == service_manager::kNameType_Service) {
std::string package_name;
if (package_name_override.empty())
package_name = path;
else
package_name = package_name_override;
return package_dir.AppendASCII(kPackagesDirName).AppendASCII(
package_name + "/manifest.json");
}
if (type == service_manager::kNameType_Exe)
return package_dir.AppendASCII(path + "_manifest.json");
return base::FilePath();
std::string package_name =
package_name_override.empty() ? path : package_name_override;
return package_dir.AppendASCII(kPackagesDirName).AppendASCII(
package_name + "/manifest.json");
}

base::FilePath GetExecutablePath(const base::FilePath& package_dir,
const std::string& name) {
std::string type = service_manager::GetNameType(name);
if (type == service_manager::kNameType_Service) {
// It's still a mojo: URL, use the default mapping scheme.
const std::string host = service_manager::GetNamePath(name);
return package_dir.AppendASCII(host + "/" + host + ".library");
}
if (type == service_manager::kNameType_Exe) {
#if defined OS_WIN
std::string extension = ".exe";
#else
std::string extension;
#endif
return package_dir.AppendASCII(service_manager::GetNamePath(name) +
extension);
}
return base::FilePath();
// It's still a mojo: URL, use the default mapping scheme.
const std::string host = service_manager::GetNamePath(name);
return package_dir.AppendASCII(host + "/" + host + ".library");
}

std::unique_ptr<Entry> ProcessManifest(
Expand Down
2 changes: 0 additions & 2 deletions services/navigation/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,11 @@ test("navigation_unittests") {
}

service_manifest("manifest") {
type = "exe"
name = "navigation"
source = "manifest.json"
}

service_manifest("unittest_manifest") {
type = "exe"
name = "navigation_unittests"
source = "unittest_manifest.json"
}
Expand Down
13 changes: 1 addition & 12 deletions services/service_manager/public/cpp/lib/names.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,21 @@

namespace service_manager {

const char kNameType_Service[] = "service";
const char kNameType_Exe[] = "exe";

bool IsValidName(const std::string& name) {
std::vector<std::string> parts =
base::SplitString(name, ":", base::KEEP_WHITESPACE,
base::SPLIT_WANT_ALL);
if (parts.size() != 2)
return false;

if (parts.front().empty())
if (parts.front().empty() || parts.front() != "service")
return false;

const std::string& path = parts.back();
return !path.empty() &&
!base::StartsWith(path, "//", base::CompareCase::INSENSITIVE_ASCII);
}

std::string GetNameType(const std::string& name) {
std::vector<std::string> parts =
base::SplitString(name, ":", base::KEEP_WHITESPACE,
base::SPLIT_WANT_ALL);
DCHECK(2 == parts.size());
return parts.front();
}

std::string GetNamePath(const std::string& name) {
std::vector<std::string> parts =
base::SplitString(name, ":", base::KEEP_WHITESPACE,
Expand Down
Loading

0 comments on commit f437f05

Please sign in to comment.