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(
15 const std::string
& resource_provider_app_url
)
16 : resource_provider_app_url_(resource_provider_app_url
) {
19 ResourceProviderApp::~ResourceProviderApp() {
22 void ResourceProviderApp::Initialize(mojo::ApplicationImpl
* app
) {
25 bool ResourceProviderApp::ConfigureIncomingConnection(
26 mojo::ApplicationConnection
* connection
) {
27 const base::FilePath
app_path(
28 GetPathForApplicationUrl(GURL(connection
->GetRemoteApplicationURL())));
30 return false; // The specified app has no resources.
32 connection
->AddService
<ResourceProvider
>(this);
36 void ResourceProviderApp::Create(
37 mojo::ApplicationConnection
* connection
,
38 mojo::InterfaceRequest
<ResourceProvider
> request
) {
39 const base::FilePath
app_path(
40 GetPathForApplicationUrl(GURL(connection
->GetRemoteApplicationURL())));
41 // We validated path at ConfigureIncomingConnection() time, so it should still
43 CHECK(!app_path
.empty());
45 new ResourceProviderImpl(app_path
, resource_provider_app_url_
),
49 } // namespace resource_provider