10529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 20529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 30529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// found in the LICENSE file. 40529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 50529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#ifndef CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_H_ 60529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_H_ 70529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 80529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/basictypes.h" 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "base/memory/scoped_ptr.h" 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "components/password_manager/core/browser/password_manager_metrics_util.h" 110529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass ManagePasswordsBubbleModel; 130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 140529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochnamespace content { 150529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass WebContents; 160529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} // namespace content 170529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// Base class for platform-specific password management bubble views. This class 190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// is responsible for creating and destroying the model associated with the view 200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// and providing a platform-agnostic interface to the bubble. 210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass ManagePasswordsBubble { 220529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch public: 230529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch enum DisplayReason { AUTOMATIC, USER_ACTION }; 240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 250529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch protected: 260529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // Creates a ManagePasswordsBubble. |contents| is used only to create a 270529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // ManagePasswordsBubbleModel; this class neither takes ownership of the 280529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch // object nor stores the pointer. 290529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch ManagePasswordsBubble(content::WebContents* contents, DisplayReason reason); 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~ManagePasswordsBubble(); 310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch ManagePasswordsBubbleModel* model() { return model_.get(); } 33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) const ManagePasswordsBubbleModel* model() const { return model_.get(); } 340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch private: 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch scoped_ptr<ManagePasswordsBubbleModel> model_; 370529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 380529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch DISALLOW_COPY_AND_ASSIGN(ManagePasswordsBubble); 390529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}; 400529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch 410529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#endif // CHROME_BROWSER_UI_PASSWORDS_MANAGE_PASSWORDS_BUBBLE_H_ 42