1 // Copyright (c) 2011 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 #pragma once 8 9 #include "base/time.h" 10 #include "views/window/dialog_delegate.h" 11 12 class GURL; 13 class TabContents; 14 15 namespace views { 16 class MessageBoxView; 17 } 18 19 // An external protocol dialog for ChromeOS. Unlike other platforms, 20 // ChromeOS does not support launching external program, therefore, 21 // this dialog simply says it is not supported. 22 class ExternalProtocolDialog : public views::DialogDelegate { 23 public: 24 // RunExternalProtocolDialog calls this private constructor. 25 ExternalProtocolDialog(TabContents* tab_contents, const GURL& url); 26 27 virtual ~ExternalProtocolDialog(); 28 29 // views::DialogDelegate Methods: 30 virtual int GetDialogButtons() const; 31 virtual std::wstring GetDialogButtonLabel( 32 MessageBoxFlags::DialogButton button) const; 33 virtual std::wstring GetWindowTitle() const; 34 virtual void DeleteDelegate(); 35 virtual bool Accept(); 36 virtual views::View* GetContentsView(); 37 38 // views::WindowDelegate Methods: 39 virtual bool IsAlwaysOnTop() const { return false; } 40 virtual bool IsModal() const { return false; } 41 42 private: 43 // The message box view whose commands we handle. 44 views::MessageBoxView* message_box_view_; 45 46 // The time at which this dialog was created. 47 base::TimeTicks creation_time_; 48 49 // The scheme of the url. 50 std::string scheme_; 51 52 DISALLOW_COPY_AND_ASSIGN(ExternalProtocolDialog); 53 }; 54 55 #endif // CHROME_BROWSER_CHROMEOS_EXTERNAL_PROTOCOL_DIALOG_H_ 56