1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_ 6#define CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_ 7 8#include <string> 9 10#include "base/strings/string16.h" 11#include "base/time/time.h" 12#include "ui/views/window/dialog_delegate.h" 13 14class GURL; 15 16namespace content { 17class WebContents; 18} 19 20namespace views { 21class MessageBoxView; 22} 23 24// An external protocol dialog for ChromeOS. Unlike other platforms, 25// ChromeOS does not support launching external program, therefore, 26// this dialog simply says it is not supported. 27class ExternalProtocolDialog : public views::DialogDelegate { 28 public: 29 // RunExternalProtocolDialog calls this private constructor. 30 ExternalProtocolDialog(content::WebContents* web_contents, const GURL& url); 31 32 virtual ~ExternalProtocolDialog(); 33 34 // views::DialogDelegate Methods: 35 virtual int GetDialogButtons() const OVERRIDE; 36 virtual base::string16 GetDialogButtonLabel( 37 ui::DialogButton button) const OVERRIDE; 38 virtual base::string16 GetWindowTitle() const OVERRIDE; 39 virtual void DeleteDelegate() OVERRIDE; 40 virtual bool Accept() OVERRIDE; 41 virtual views::View* GetContentsView() OVERRIDE; 42 43 // views::WidgetDelegate Methods: 44 virtual const views::Widget* GetWidget() const OVERRIDE; 45 virtual views::Widget* GetWidget() OVERRIDE; 46 47 private: 48 // The message box view whose commands we handle. 49 views::MessageBoxView* message_box_view_; 50 51 // The time at which this dialog was created. 52 base::TimeTicks creation_time_; 53 54 // The scheme of the url. 55 std::string scheme_; 56 57 DISALLOW_COPY_AND_ASSIGN(ExternalProtocolDialog); 58}; 59 60#endif // CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_ 61