text: // Copyright 2015 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.
  
  #ifndef CHROME_BROWSER_UI_COCOA_WEB_CONTENTS_DIALOG_HOST_COCOA_H_
  #define CHROME_BROWSER_UI_COCOA_WEB_CONTENTS_DIALOG_HOST_COCOA_H_
  
  #include "base/macros.h"
  #include "components/web_modal/web_contents_modal_dialog_host.h"
  
  @class ConstrainedWindowSheetController;
  
  // In a Cocoa browser, the modal dialog host is a simple bridge to the
  // ConstrainedWindowSheetController to get the dialog size and parent window.
  class WebContentsModalDialogHostCocoa
      : public web_modal::WebContentsModalDialogHost {
   public:
    explicit WebContentsModalDialogHostCocoa(
        ConstrainedWindowSheetController* sheet_controller);
    ~WebContentsModalDialogHostCocoa() override;
  
    // web_modal::ModalDialogHost:
    gfx::NativeView GetHostView() const override;
    gfx::Point GetDialogPosition(const gfx::Size& size) override;
    void AddObserver(web_modal::ModalDialogHostObserver* observer) override;
    void RemoveObserver(web_modal::ModalDialogHostObserver* observer) override;
  
    // web_modal::WebContentsModalDialogHost:
    gfx::Size GetMaximumDialogSize() override;
  
   private:
    ConstrainedWindowSheetController* sheet_controller_;  // Weak. Owns |this|.
  
    DISALLOW_COPY_AND_ASSIGN(WebContentsModalDialogHostCocoa);
  };
  
  #endif  // CHROME_BROWSER_UI_COCOA_WEB_CONTENTS_DIALOG_HOST_COCOA_H_
  