Index: examples/browser/browser.cc |
diff --git a/examples/browser/browser.cc b/examples/browser/browser.cc |
deleted file mode 100644 |
index 33572c59d67749a1608c2208c613abe59786c483..0000000000000000000000000000000000000000 |
--- a/examples/browser/browser.cc |
+++ /dev/null |
@@ -1,138 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/macros.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "examples/browser/browser_host.mojom.h" |
-#include "examples/window_manager/window_manager.mojom.h" |
-#include "mojo/application/application_runner_chromium.h" |
-#include "mojo/converters/geometry/geometry_type_converters.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/public/cpp/application/service_provider_impl.h" |
-#include "mojo/services/navigation/interfaces/navigation.mojom.h" |
-#include "mojo/services/view_manager/cpp/view.h" |
-#include "mojo/services/view_manager/cpp/view_manager.h" |
-#include "mojo/services/view_manager/cpp/view_manager_client_factory.h" |
-#include "mojo/services/view_manager/cpp/view_manager_delegate.h" |
-#include "mojo/services/view_manager/cpp/view_observer.h" |
-#include "url/gurl.h" |
- |
-namespace mojo { |
-namespace examples { |
- |
-// This is the basics of creating a views widget with a textfield. |
-// TODO: cleanup! |
-class Browser : public ApplicationDelegate, |
- public ViewManagerDelegate, |
- public ViewObserver, |
- public examples::BrowserHost, |
- public mojo::InterfaceFactory<examples::BrowserHost> { |
- public: |
- Browser() : shell_(nullptr), root_(NULL), binding_(this) { |
- browser_host_services_impl_.AddService(this); |
- } |
- |
- ~Browser() override { |
- if (root_) |
- root_->RemoveObserver(this); |
- } |
- |
- private: |
- // Overridden from ApplicationDelegate: |
- void Initialize(ApplicationImpl* app) override { |
- shell_ = app->shell(); |
- view_manager_client_factory_.reset( |
- new ViewManagerClientFactory(shell_, this)); |
- app->ConnectToService("mojo:window_manager", &window_manager_); |
- |
- // FIXME: Mojo applications don't know their URLs yet: |
- // https://docs.google.com/a/chromium.org/document/d/1AQ2y6ekzvbdaMF5WrUQmneyXJnke-MnYYL4Gz1AKDos |
- url_ = GURL(app->args()[1]); |
- } |
- |
- bool ConfigureIncomingConnection(ApplicationConnection* connection) override { |
- connection->AddService(view_manager_client_factory_.get()); |
- return true; |
- } |
- |
- // ViewManagerDelegate: |
- void OnEmbed(View* root, |
- InterfaceRequest<ServiceProvider> services, |
- ServiceProviderPtr exposed_services) override { |
- // TODO: deal with OnEmbed() being invoked multiple times. |
- ConnectToService(exposed_services.get(), &navigator_host_); |
- root_ = root; |
- root_->AddObserver(this); |
- root_->SetFocus(); |
- |
- // Create a child view for our sky document. |
- View* view = root->view_manager()->CreateView(); |
- root->AddChild(view); |
- Rect bounds; |
- bounds.x = 0; |
- bounds.y = 0; |
- bounds.width = root->bounds().width; |
- bounds.height = root->bounds().height; |
- view->SetBounds(bounds); |
- view->SetVisible(true); |
- root->SetVisible(true); |
- |
- ServiceProviderPtr browser_host_services; |
- browser_host_services_impl_.Bind(GetProxy(&browser_host_services)); |
- |
- GURL frame_url = url_.Resolve("/examples/browser/browser.sky"); |
- view->Embed(frame_url.spec(), nullptr, browser_host_services.Pass()); |
- } |
- |
- void OnViewManagerDisconnected(ViewManager* view_manager) override { |
- base::MessageLoop::current()->Quit(); |
- } |
- |
- // ViewObserver: |
- void OnViewDestroyed(View* view) override { |
- DCHECK_EQ(root_, view); |
- view->RemoveObserver(this); |
- root_ = NULL; |
- } |
- |
- // examples::BrowserHost: |
- void NavigateTo(const mojo::String& url) override { |
- URLRequestPtr request(URLRequest::New()); |
- request->url = url; |
- navigator_host_->RequestNavigate(Target::NEW_NODE, request.Pass()); |
- } |
- |
- // mojo::InterfaceFactory<examples::BrowserHost> implementation. |
- void Create(mojo::ApplicationConnection* connection, |
- mojo::InterfaceRequest<examples::BrowserHost> request) override { |
- binding_.Bind(request.Pass()); |
- } |
- |
- Shell* shell_; |
- |
- scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; |
- View* root_; |
- NavigatorHostPtr navigator_host_; |
- ::examples::IWindowManagerPtr window_manager_; |
- ServiceProviderImpl browser_host_services_impl_; |
- |
- GURL url_; |
- |
- mojo::Binding<examples::BrowserHost> binding_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Browser); |
-}; |
- |
-} // namespace examples |
-} // namespace mojo |
- |
-MojoResult MojoMain(MojoHandle application_request) { |
- mojo::ApplicationRunnerChromium runner(new mojo::examples::Browser); |
- return runner.Run(application_request); |
-} |