Index: chrome/browser/chromeos/ui/app_launch_view.cc |
diff --git a/chrome/browser/chromeos/ui/app_launch_view.cc b/chrome/browser/chromeos/ui/app_launch_view.cc |
deleted file mode 100644 |
index 9b8da567fce331571620521948a22137b08ee9b7..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/ui/app_launch_view.cc |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright (c) 2013 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 "chrome/browser/chromeos/ui/app_launch_view.h" |
- |
-#include "ash/shell.h" |
-#include "ash/shell_delegate.h" |
-#include "ash/shell_window_ids.h" |
-#include "base/bind.h" |
-#include "base/logging.h" |
-#include "base/values.h" |
-#include "chrome/browser/ui/webui/chromeos/app_launch_ui.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/public/browser/browser_context.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/render_view_host.h" |
-#include "content/public/browser/render_widget_host_view.h" |
-#include "content/public/browser/web_contents.h" |
-#include "grit/generated_resources.h" |
-#include "third_party/skia/include/core/SkBitmap.h" |
-#include "ui/aura/root_window.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/gfx/screen.h" |
-#include "ui/views/controls/webview/webview.h" |
-#include "ui/views/layout/fill_layout.h" |
-#include "ui/views/widget/widget.h" |
- |
-using content::BrowserThread; |
- |
-namespace chromeos { |
- |
-internal::AppLaunchView* g_instance = NULL; |
- |
-void ShowAppLaunchSplashScreen(const std::string& app_id) { |
- // TODO(zelidrag): Come up with a better UI for this purpose. |
- internal::AppLaunchView::ShowAppLaunchSplashScreen(app_id); |
-} |
- |
-void UpdateAppLaunchSplashScreenState(AppLaunchState state) { |
- internal::AppLaunchView::UpdateAppLaunchState(state); |
-} |
- |
-void CloseAppLaunchSplashScreen() { |
- internal::AppLaunchView::CloseAppLaunchSplashScreen(); |
-} |
- |
-namespace internal { |
- |
-int GetProgressMessageFromState(AppLaunchState state) { |
- switch (state) { |
- case APP_LAUNCH_STATE_LOADING_AUTH_FILE: |
- case APP_LAUNCH_STATE_LOADING_TOKEN_SERVICE: |
- // TODO(zelidrag): Add better string for this one than "Please wait..." |
- return IDS_SYNC_SETUP_SPINNER_TITLE; |
- case APP_LAUNCH_STATE_PREPARING_NETWORK: |
- return IDS_APP_START_NETWORK_WAIT_MESSAGE; |
- case APP_LAUNCH_STATE_INSTALLING_APPLICATION: |
- return IDS_APP_START_APP_WAIT_MESSAGE; |
- } |
- return IDS_APP_START_NETWORK_WAIT_MESSAGE; |
-} |
- |
-// static |
-void AppLaunchView::ShowAppLaunchSplashScreen(const std::string& app_id) { |
- if (!g_instance) { |
- g_instance = new AppLaunchView(app_id); |
- g_instance->Show(); |
- } |
-} |
- |
-void AppLaunchView::UpdateAppLaunchState(AppLaunchState state) { |
- if (g_instance) |
- g_instance->UpdateState(state); |
-} |
- |
- |
-// static |
-void AppLaunchView::CloseAppLaunchSplashScreen() { |
- if (g_instance) { |
- g_instance->GetWidget()->Close(); |
- g_instance = NULL; |
- } |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// AppLaunchView, views::WidgetDelegateView implementation. |
-views::View* AppLaunchView::GetContentsView() { |
- return this; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// AppLaunchView, content::WebContentsObserver implementation. |
-void AppLaunchView::RenderProcessGone( |
- base::TerminationStatus status) { |
- LOG(ERROR) << "Splash screen terminated with status " << status; |
- AppLaunchView::CloseAppLaunchSplashScreen(); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// AppLaunchView private methods. |
-AppLaunchView::AppLaunchView(const std::string& app_id) |
- : app_launch_webview_(NULL), |
- container_window_(NULL), |
- app_id_(app_id), |
- state_(APP_LAUNCH_STATE_LOADING_AUTH_FILE), |
- app_launch_ui_(NULL) { |
-} |
- |
-AppLaunchView::~AppLaunchView() { |
-} |
- |
-void AppLaunchView::Show() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- // Add the WebView to our view. |
- AddChildWebContents(); |
- // Initialize container window. |
- InitializeWindow(); |
- // Show the window. |
- ShowWindow(); |
-} |
- |
-void AppLaunchView::AddChildWebContents() { |
- content::BrowserContext* context = |
- ash::Shell::GetInstance()->delegate()->GetCurrentBrowserContext(); |
- app_launch_webview_ = new views::WebView(context); |
- SetLayoutManager(new views::FillLayout); |
- AddChildView(app_launch_webview_); |
- |
- LoadSplashScreen(); |
- content::WebContentsObserver::Observe( |
- app_launch_webview_->GetWebContents()); |
-} |
- |
-void AppLaunchView::UpdateState(AppLaunchState state) { |
- if (state == state_) |
- return; |
- |
- state_ = state; |
- if (!app_launch_ui_) |
- return; |
- |
- app_launch_ui_->SetLaunchText( |
- l10n_util::GetStringUTF8(GetProgressMessageFromState(state_))); |
-} |
- |
-void AppLaunchView::LoadSplashScreen() { |
- std::string url = chrome::kChromeUIAppLaunchURL; |
- url += "?app=" + app_id_; |
- |
- app_launch_webview_->GetWebContents()->GetController().LoadURL( |
- GURL(url), |
- content::Referrer(), |
- content::PAGE_TRANSITION_AUTO_TOPLEVEL, |
- std::string()); |
- |
- app_launch_ui_ = static_cast<AppLaunchUI*>( |
- app_launch_webview_->GetWebContents()->GetWebUI()->GetController()); |
- |
- // Use a background with transparency to trigger transparency in Webkit. |
- SkBitmap background; |
- background.setConfig(SkBitmap::kARGB_8888_Config, 1, 1); |
- background.allocPixels(); |
- background.eraseARGB(0x00, 0x00, 0x00, 0x00); |
- content::RenderViewHost* host = |
- app_launch_webview_->GetWebContents()->GetRenderViewHost(); |
- host->GetView()->SetBackground(background); |
-} |
- |
-void AppLaunchView::InitializeWindow() { |
- DCHECK(!container_window_); |
- aura::RootWindow* root_window = ash::Shell::GetPrimaryRootWindow(); |
- |
- // We want to be the fullscreen topmost child of the root window. |
- // There should be nothing ever really that should show up on top of us. |
- container_window_ = new views::Widget(); |
- views::Widget::InitParams params( |
- views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
- params.delegate = this; |
- params.parent = ash::Shell::GetContainer( |
- root_window, |
- ash::internal::kShellWindowId_LockScreenContainer); |
- params.show_state = ui::SHOW_STATE_FULLSCREEN; |
- container_window_->Init(params); |
-} |
- |
-void AppLaunchView::ShowWindow() { |
- DCHECK(container_window_); |
- container_window_->Show(); |
-} |
- |
-} // namespace internal |
- |
-} // namespace chromeos |