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
3 // found in the LICENSE file.
5 #include "components/resource_provider/resource_provider_app.h"
7 #include "components/resource_provider/file_utils.h"
8 #include "components/resource_provider/resource_provider_impl.h"
9 #include "mojo/application/public/cpp/application_connection.h"
12 namespace resource_provider
{
14 ResourceProviderApp::ResourceProviderApp() {
17 ResourceProviderApp::~ResourceProviderApp() {
20 void ResourceProviderApp::Initialize(mojo::ApplicationImpl
* app
) {
23 bool ResourceProviderApp::ConfigureIncomingConnection(
24 mojo::ApplicationConnection
* connection
) {
25 const base::FilePath
app_path(
26 GetPathForApplicationUrl(GURL(connection
->GetRemoteApplicationURL())));
28 return false; // The specified app has no resources.
30 connection
->AddService
<ResourceProvider
>(this);
34 void ResourceProviderApp::Create(
35 mojo::ApplicationConnection
* connection
,
36 mojo::InterfaceRequest
<ResourceProvider
> request
) {
37 const base::FilePath
app_path(
38 GetPathForApplicationUrl(GURL(connection
->GetRemoteApplicationURL())));
39 // We validated path at ConfigureIncomingConnection() time, so it should still
41 CHECK(!app_path
.empty());
42 bindings_
.AddBinding(new ResourceProviderImpl(app_path
), request
.Pass());
45 } // namespace resource_provider