Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Side by Side Diff: examples/recursive_content_handler/recursive_content_handler.cc

Issue 1979683002: ApplicationConnection devolution, part 2.4. (Closed) Base URL: https://github.com/domokit/mojo.git@work795_app_conn_devo_2.3-x-work794_app_conn_devo_2.2
Patch Set: so much doh Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/macros.h" 5 #include "base/macros.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "mojo/application/application_runner_chromium.h" 7 #include "mojo/application/application_runner_chromium.h"
8 #include "mojo/application/content_handler_factory.h" 8 #include "mojo/application/content_handler_factory.h"
9 #include "mojo/public/c/system/main.h" 9 #include "mojo/public/c/system/main.h"
10 #include "mojo/public/cpp/application/application_connection.h" 10 #include "mojo/public/cpp/application/application_connection.h"
11 #include "mojo/public/cpp/application/application_delegate.h" 11 #include "mojo/public/cpp/application/application_delegate.h"
12 #include "mojo/public/cpp/application/application_impl.h" 12 #include "mojo/public/cpp/application/application_impl.h"
13 #include "mojo/services/content_handler/interfaces/content_handler.mojom.h" 13 #include "mojo/services/content_handler/interfaces/content_handler.mojom.h"
14 14
15 namespace mojo { 15 namespace mojo {
16 namespace examples { 16 namespace examples {
17 17
18 class RecursiveContentHandler : public ApplicationDelegate, 18 class RecursiveContentHandler : public ApplicationDelegate,
19 public ContentHandlerFactory::ManagedDelegate { 19 public ContentHandlerFactory::ManagedDelegate {
20 public: 20 public:
21 RecursiveContentHandler() : content_handler_factory_(this) {} 21 RecursiveContentHandler() : content_handler_factory_(this) {}
22 22
23 private: 23 private:
24 // Overridden from ApplicationDelegate: 24 // Overridden from ApplicationDelegate:
25 bool ConfigureIncomingConnection( 25 bool ConfigureIncomingConnection(
26 ApplicationConnection* connection) override { 26 ApplicationConnection* connection) override {
27 connection->AddService(&content_handler_factory_); 27 connection->GetServiceProviderImpl().AddService<ContentHandler>(
28 content_handler_factory_.GetInterfaceRequestHandler());
28 return true; 29 return true;
29 } 30 }
30 31
31 // Overridden from ContentHandlerFactory::ManagedDelegate: 32 // Overridden from ContentHandlerFactory::ManagedDelegate:
32 scoped_ptr<ContentHandlerFactory::HandledApplicationHolder> 33 scoped_ptr<ContentHandlerFactory::HandledApplicationHolder>
33 CreateApplication(InterfaceRequest<Application> application_request, 34 CreateApplication(InterfaceRequest<Application> application_request,
34 URLResponsePtr response) override { 35 URLResponsePtr response) override {
35 LOG(INFO) << "RecursiveContentHandler called with url: " << response->url; 36 LOG(INFO) << "RecursiveContentHandler called with url: " << response->url;
36 return make_handled_factory_holder(new mojo::ApplicationImpl( 37 return make_handled_factory_holder(new mojo::ApplicationImpl(
37 new RecursiveContentHandler(), application_request.Pass())); 38 new RecursiveContentHandler(), application_request.Pass()));
38 } 39 }
39 40
40 ContentHandlerFactory content_handler_factory_; 41 ContentHandlerFactory content_handler_factory_;
41 42
42 DISALLOW_COPY_AND_ASSIGN(RecursiveContentHandler); 43 DISALLOW_COPY_AND_ASSIGN(RecursiveContentHandler);
43 }; 44 };
44 45
45 } // namespace examples 46 } // namespace examples
46 } // namespace mojo 47 } // namespace mojo
47 48
48 MojoResult MojoMain(MojoHandle application_request) { 49 MojoResult MojoMain(MojoHandle application_request) {
49 mojo::ApplicationRunnerChromium runner( 50 mojo::ApplicationRunnerChromium runner(
50 new mojo::examples::RecursiveContentHandler()); 51 new mojo::examples::RecursiveContentHandler());
51 return runner.Run(application_request); 52 return runner.Run(application_request);
52 } 53 }
OLDNEW
« no previous file with comments | « examples/forwarding_content_handler/forwarding_content_handler.cc ('k') | mojo/application/content_handler_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698