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 14 class GURL; 15 16 namespace content { 17 class WebContents; 18 } 19 20 namespace views { 21 class 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. 27 class 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 string16 GetDialogButtonLabel(ui::DialogButton button) const OVERRIDE; 37 virtual string16 GetWindowTitle() const OVERRIDE; 38 virtual void DeleteDelegate() OVERRIDE; 39 virtual bool Accept() OVERRIDE; 40 virtual views::View* GetContentsView() OVERRIDE; 41 42 // views::WidgetDelegate Methods: 43 virtual const views::Widget* GetWidget() const OVERRIDE; 44 virtual views::Widget* GetWidget() OVERRIDE; 45 46 private: 47 // The message box view whose commands we handle. 48 views::MessageBoxView* message_box_view_; 49 50 // The time at which this dialog was created. 51 base::TimeTicks creation_time_; 52 53 // The scheme of the url. 54 std::string scheme_; 55 56 DISALLOW_COPY_AND_ASSIGN(ExternalProtocolDialog); 57 }; 58 59 #endif // CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_ 60