1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2020 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 ASH_IN_SESSION_AUTH_IN_SESSION_AUTH_DIALOG_H_
- #define ASH_IN_SESSION_AUTH_IN_SESSION_AUTH_DIALOG_H_
- #include <memory>
- #include "ash/ash_export.h"
- #include "ash/in_session_auth/auth_dialog_contents_view.h"
- namespace aura {
- class Window;
- }
- namespace views {
- class Widget;
- }
- namespace ash {
- // InSessionAuthDialog gets instantiated on every request to show
- // an authentication dialog, and gets destroyed when the request is
- // completed.
- class InSessionAuthDialog {
- public:
- InSessionAuthDialog(
- uint32_t auth_methods,
- aura::Window* parent_window,
- const std::string& origin_name,
- const AuthDialogContentsView::AuthMethodsMetadata& auth_metadata,
- const UserAvatar& avatar);
- InSessionAuthDialog(const InSessionAuthDialog&) = delete;
- InSessionAuthDialog& operator=(const InSessionAuthDialog&) = delete;
- ~InSessionAuthDialog();
- views::Widget* widget() { return widget_.get(); }
- bool is_shown() const { return !!widget_; }
- uint32_t GetAuthMethods() const;
- private:
- // The dialog widget. Owned by this class so that we can close the widget
- // when auth completes.
- std::unique_ptr<views::Widget> widget_;
- // Pointer to the contents view. Used to query and update the set of available
- // auth methods.
- const uint32_t auth_methods_;
- };
- } // namespace ash
- #endif // ASH_IN_SESSION_AUTH_IN_SESSION_AUTH_DIALOG_H_
|