#include "base/basictypes.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "mojo/application/application_runner_chromium.h"
#include "mojo/common/common_type_converters.h"
#include "mojo/examples/window_manager/window_manager.mojom.h"
+#include "mojo/public/c/system/main.h"
#include "mojo/public/cpp/application/application_connection.h"
#include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/application/application_impl.h"
+#include "mojo/public/cpp/application/connect.h"
#include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
#include "mojo/services/public/cpp/view_manager/view.h"
#include "mojo/services/public/cpp/view_manager/view_manager.h"
public:
Browser()
: view_manager_(NULL),
- view_manager_client_factory_(this),
root_(NULL),
widget_(NULL) {}
private:
// Overridden from ApplicationDelegate:
virtual void Initialize(ApplicationImpl* app) MOJO_OVERRIDE {
+ view_manager_client_factory_.reset(
+ new ViewManagerClientFactory(app->shell(), this));
views_init_.reset(new ViewsInit);
- app->ConnectToService("mojo:mojo_window_manager", &navigator_host_);
app->ConnectToService("mojo:mojo_window_manager", &window_manager_);
}
virtual bool ConfigureIncomingConnection(ApplicationConnection* connection)
MOJO_OVERRIDE {
- connection->AddService(&view_manager_client_factory_);
+ connection->AddService(view_manager_client_factory_.get());
return true;
}
ServiceProviderImpl* exported_services,
scoped_ptr<ServiceProvider> imported_services) OVERRIDE {
// TODO: deal with OnEmbed() being invoked multiple times.
+ ConnectToService(imported_services.get(), &navigator_host_);
view_manager_ = view_manager;
root_ = root;
root_->AddObserver(this);
if (key_event.key_code() == ui::VKEY_RETURN) {
GURL url(sender->text());
printf("User entered this URL: %s\n", url.spec().c_str());
- NavigationDetailsPtr nav_details(NavigationDetails::New());
- nav_details->request->url = String::From(url);
- navigator_host_->RequestNavigate(view_manager_->GetRoots().front()->id(),
- TARGET_NEW_NODE,
- nav_details.Pass());
+ URLRequestPtr request(URLRequest::New());
+ request->url = String::From(url);
+ navigator_host_->RequestNavigate(TARGET_NEW_NODE, request.Pass());
}
return false;
}
scoped_ptr<ViewsInit> views_init_;
ViewManager* view_manager_;
- ViewManagerClientFactory view_manager_client_factory_;
+ scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_;
View* root_;
views::Widget* widget_;
NavigatorHostPtr navigator_host_;
};
} // namespace examples
+} // namespace mojo
-// static
-ApplicationDelegate* ApplicationDelegate::Create() {
- return new examples::Browser;
+MojoResult MojoMain(MojoHandle shell_handle) {
+ mojo::ApplicationRunnerChromium runner(new mojo::examples::Browser);
+ return runner.Run(shell_handle);
}
-
-} // namespace mojo