cygprofile: increase timeouts to allow showing web contents
[chromium-blink-merge.git] / components / resource_provider / resource_provider_app.cc
blobb835b208ad57d058b186a5ed46a0b9d13340688f
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"
10 #include "url/gurl.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())));
29 if (app_path.empty())
30 return false; // The specified app has no resources.
32 connection->AddService<ResourceProvider>(this);
33 return true;
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
42 // be valid.
43 CHECK(!app_path.empty());
44 bindings_.AddBinding(
45 new ResourceProviderImpl(app_path, resource_provider_app_url_),
46 request.Pass());
49 } // namespace resource_provider