blob: 934cac9e0047b3acabfe62b3c1409a628e84c190 [file] [log] [blame]
// Copyright 2013 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_PROFILES_AVATAR_MENU_ACTIONS_H_
#define CHROME_BROWSER_PROFILES_AVATAR_MENU_ACTIONS_H_
#include <string>
#include "chrome/browser/profiles/avatar_menu.h"
#include "chrome/browser/profiles/profile_metrics.h"
class Profile;
// This interface controls the behavior of avatar menu actions.
class AvatarMenuActions {
public:
virtual ~AvatarMenuActions() {}
static AvatarMenuActions* Create();
// Allows the user to create a new profile.
virtual void AddNewProfile(ProfileMetrics::ProfileAdd type) = 0;
// Allows the user to edit the profile at the given index in the cache.
virtual void EditProfile(Profile* profile, size_t index) = 0;
// Returns true if the add profile link should be shown.
virtual bool ShouldShowAddNewProfileLink() const = 0;
// Returns true if the edit profile link should be shown.
virtual bool ShouldShowEditProfileLink() const = 0;
// Starts the sign-out process for this profile.
virtual content::WebContents* BeginSignOut() = 0;
// Sets a different URL to use for logout (for testing only).
virtual void SetLogoutURL(const std::string& logout_url) = 0;
// Updates the browser.
// TODO: Delegate browser actions to remove dependency on Browser class.
virtual void ActiveBrowserChanged(Browser* browser) = 0;
};
#endif // CHROME_BROWSER_PROFILES_AVATAR_MENU_ACTIONS_H_