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

Side by Side Diff: mojo/examples/nesting_app/nesting_app.cc

Issue 413353002: Remove extraneous namespaces (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review nits and merge Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « mojo/examples/media_viewer/media_viewer.cc ('k') | mojo/examples/png_viewer/png_viewer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "mojo/examples/window_manager/window_manager.mojom.h" 9 #include "mojo/examples/window_manager/window_manager.mojom.h"
10 #include "mojo/public/cpp/application/application_connection.h" 10 #include "mojo/public/cpp/application/application_connection.h"
(...skipping 12 matching lines...) Expand all
23 23
24 namespace mojo { 24 namespace mojo {
25 namespace examples { 25 namespace examples {
26 26
27 namespace { 27 namespace {
28 const char kEmbeddedAppURL[] = "mojo:mojo_embedded_app"; 28 const char kEmbeddedAppURL[] = "mojo:mojo_embedded_app";
29 } 29 }
30 30
31 class NestingApp; 31 class NestingApp;
32 32
33 class Navigator : public InterfaceImpl<navigation::Navigator> { 33 class NavigatorImpl : public InterfaceImpl<Navigator> {
34 public: 34 public:
35 explicit Navigator(NestingApp* app) : app_(app) {} 35 explicit NavigatorImpl(NestingApp* app) : app_(app) {}
36 36
37 private: 37 private:
38 virtual void Navigate( 38 virtual void Navigate(
39 uint32 node_id, 39 uint32 node_id,
40 navigation::NavigationDetailsPtr navigation_details, 40 NavigationDetailsPtr navigation_details,
41 navigation::ResponseDetailsPtr response_details) OVERRIDE; 41 ResponseDetailsPtr response_details) OVERRIDE;
42 42
43 NestingApp* app_; 43 NestingApp* app_;
44 DISALLOW_COPY_AND_ASSIGN(Navigator); 44 DISALLOW_COPY_AND_ASSIGN(NavigatorImpl);
45 }; 45 };
46 46
47 // An app that embeds another app. 47 // An app that embeds another app.
48 // TODO(davemoore): Is this the right name? 48 // TODO(davemoore): Is this the right name?
49 class NestingApp : public ApplicationDelegate, 49 class NestingApp
50 public ViewManagerDelegate, 50 : public ApplicationDelegate,
51 public ViewObserver, 51 public ViewManagerDelegate,
52 public NodeObserver, 52 public ViewObserver,
53 public InterfaceFactoryWithContext<Navigator, NestingApp> { 53 public NodeObserver,
54 public InterfaceFactoryWithContext<NavigatorImpl, NestingApp> {
54 public: 55 public:
55 NestingApp() 56 NestingApp()
56 : InterfaceFactoryWithContext(this), 57 : InterfaceFactoryWithContext(this),
57 nested_(NULL), 58 nested_(NULL),
58 view_manager_client_factory_(this) {} 59 view_manager_client_factory_(this) {}
59 virtual ~NestingApp() {} 60 virtual ~NestingApp() {}
60 61
61 void set_color(const std::string& color) { color_ = color; } 62 void set_color(const std::string& color) { color_ = color; }
62 63
63 void NavigateChild() { 64 void NavigateChild() {
64 if (!color_.empty() && nested_) { 65 if (!color_.empty() && nested_) {
65 navigation::NavigationDetailsPtr details( 66 NavigationDetailsPtr details(NavigationDetails::New());
66 navigation::NavigationDetails::New());
67 details->url = 67 details->url =
68 base::StringPrintf("%s/%s", kEmbeddedAppURL, color_.c_str()); 68 base::StringPrintf("%s/%s", kEmbeddedAppURL, color_.c_str());
69 navigation::ResponseDetailsPtr response_details( 69 ResponseDetailsPtr response_details(ResponseDetails::New());
70 navigation::ResponseDetails::New());
71 navigator_->Navigate( 70 navigator_->Navigate(
72 nested_->id(), details.Pass(), response_details.Pass()); 71 nested_->id(), details.Pass(), response_details.Pass());
73 } 72 }
74 } 73 }
75 74
76 private: 75 private:
77 // Overridden from ApplicationImpl: 76 // Overridden from ApplicationImpl:
78 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) 77 virtual bool ConfigureIncomingConnection(ApplicationConnection* connection)
79 MOJO_OVERRIDE { 78 MOJO_OVERRIDE {
80 connection->ConnectToService(&window_manager_); 79 connection->ConnectToService(&window_manager_);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 } 114 }
116 115
117 // Overridden from NodeObserver: 116 // Overridden from NodeObserver:
118 virtual void OnNodeDestroyed(Node* node) OVERRIDE { 117 virtual void OnNodeDestroyed(Node* node) OVERRIDE {
119 // TODO(beng): reap views & child nodes. 118 // TODO(beng): reap views & child nodes.
120 nested_ = NULL; 119 nested_ = NULL;
121 } 120 }
122 121
123 std::string color_; 122 std::string color_;
124 Node* nested_; 123 Node* nested_;
125 navigation::NavigatorPtr navigator_; 124 NavigatorPtr navigator_;
126 IWindowManagerPtr window_manager_; 125 IWindowManagerPtr window_manager_;
127 ViewManagerClientFactory view_manager_client_factory_; 126 ViewManagerClientFactory view_manager_client_factory_;
128 127
129 DISALLOW_COPY_AND_ASSIGN(NestingApp); 128 DISALLOW_COPY_AND_ASSIGN(NestingApp);
130 }; 129 };
131 130
132 void Navigator::Navigate(uint32 node_id, 131 void NavigatorImpl::Navigate(uint32 node_id,
133 navigation::NavigationDetailsPtr navigation_details, 132 NavigationDetailsPtr navigation_details,
134 navigation::ResponseDetailsPtr response_details) { 133 ResponseDetailsPtr response_details) {
135 GURL url(navigation_details->url.To<std::string>()); 134 GURL url(navigation_details->url.To<std::string>());
136 if (!url.is_valid()) { 135 if (!url.is_valid()) {
137 LOG(ERROR) << "URL is invalid."; 136 LOG(ERROR) << "URL is invalid.";
138 return; 137 return;
139 } 138 }
140 app_->set_color(url.path().substr(1)); 139 app_->set_color(url.path().substr(1));
141 app_->NavigateChild(); 140 app_->NavigateChild();
142 } 141 }
143 142
144 } // namespace examples 143 } // namespace examples
145 144
146 // static 145 // static
147 ApplicationDelegate* ApplicationDelegate::Create() { 146 ApplicationDelegate* ApplicationDelegate::Create() {
148 return new examples::NestingApp; 147 return new examples::NestingApp;
149 } 148 }
150 149
151 } // namespace mojo 150 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/examples/media_viewer/media_viewer.cc ('k') | mojo/examples/png_viewer/png_viewer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698