134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// found in the LICENSE file.
434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "chrome/browser/ui/content_settings/media_setting_changed_infobar_delegate.h"
634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "base/logging.h"
834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "chrome/browser/infobars/infobar_service.h"
934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "chrome/grit/generated_resources.h"
1034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "components/infobars/core/infobar.h"
1134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "content/public/browser/web_contents.h"
1234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "grit/theme_resources.h"
1334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h"
1434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
1534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// static
1634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)void MediaSettingChangedInfoBarDelegate::Create(
1734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    InfoBarService* infobar_service) {
1834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
1934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)      scoped_ptr<ConfirmInfoBarDelegate>(
2034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)          new MediaSettingChangedInfoBarDelegate())));
2134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
2234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
2334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)MediaSettingChangedInfoBarDelegate::MediaSettingChangedInfoBarDelegate()
2434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    : ConfirmInfoBarDelegate() {
2534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
2634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
2734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)MediaSettingChangedInfoBarDelegate::~MediaSettingChangedInfoBarDelegate() {
2834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
2934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
3034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)int MediaSettingChangedInfoBarDelegate::GetIconID() const {
3134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return IDR_INFOBAR_MEDIA_STREAM_CAMERA;
3234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
3334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
3434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)infobars::InfoBarDelegate::Type
3534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)MediaSettingChangedInfoBarDelegate::GetInfoBarType() const {
3634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return PAGE_ACTION_TYPE;
3734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
3834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
3934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)base::string16 MediaSettingChangedInfoBarDelegate::GetMessageText() const {
4034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return l10n_util::GetStringUTF16(
4134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)      IDS_MEDIASTREAM_SETTING_CHANGED_INFOBAR_MESSAGE);
4234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
4334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
4434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)int MediaSettingChangedInfoBarDelegate::GetButtons() const {
4534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return BUTTON_OK;
4634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
4734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
4834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)base::string16 MediaSettingChangedInfoBarDelegate::GetButtonLabel(
4934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)    InfoBarButton button) const {
5034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  DCHECK_EQ(BUTTON_OK, button);
5134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return l10n_util::GetStringUTF16(IDS_CONTENT_SETTING_CHANGED_INFOBAR_BUTTON);
5234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
5334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)
5434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)bool MediaSettingChangedInfoBarDelegate::Accept() {
5534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  content::WebContents* web_contents =
5634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)      InfoBarService::WebContentsFromInfoBar(infobar());
5734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  web_contents->GetController().Reload(true);
5834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)  return true;
5934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)}
60