1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/content_settings/media_setting_changed_infobar_delegate.h"
6
7#include "base/logging.h"
8#include "chrome/browser/infobars/infobar_service.h"
9#include "chrome/grit/generated_resources.h"
10#include "components/infobars/core/infobar.h"
11#include "content/public/browser/web_contents.h"
12#include "grit/theme_resources.h"
13#include "ui/base/l10n/l10n_util.h"
14
15// static
16void MediaSettingChangedInfoBarDelegate::Create(
17    InfoBarService* infobar_service) {
18  infobar_service->AddInfoBar(ConfirmInfoBarDelegate::CreateInfoBar(
19      scoped_ptr<ConfirmInfoBarDelegate>(
20          new MediaSettingChangedInfoBarDelegate())));
21}
22
23MediaSettingChangedInfoBarDelegate::MediaSettingChangedInfoBarDelegate()
24    : ConfirmInfoBarDelegate() {
25}
26
27MediaSettingChangedInfoBarDelegate::~MediaSettingChangedInfoBarDelegate() {
28}
29
30int MediaSettingChangedInfoBarDelegate::GetIconID() const {
31  return IDR_INFOBAR_MEDIA_STREAM_CAMERA;
32}
33
34infobars::InfoBarDelegate::Type
35MediaSettingChangedInfoBarDelegate::GetInfoBarType() const {
36  return PAGE_ACTION_TYPE;
37}
38
39base::string16 MediaSettingChangedInfoBarDelegate::GetMessageText() const {
40  return l10n_util::GetStringUTF16(
41      IDS_MEDIASTREAM_SETTING_CHANGED_INFOBAR_MESSAGE);
42}
43
44int MediaSettingChangedInfoBarDelegate::GetButtons() const {
45  return BUTTON_OK;
46}
47
48base::string16 MediaSettingChangedInfoBarDelegate::GetButtonLabel(
49    InfoBarButton button) const {
50  DCHECK_EQ(BUTTON_OK, button);
51  return l10n_util::GetStringUTF16(IDS_CONTENT_SETTING_CHANGED_INFOBAR_BUTTON);
52}
53
54bool MediaSettingChangedInfoBarDelegate::Accept() {
55  content::WebContents* web_contents =
56      InfoBarService::WebContentsFromInfoBar(infobar());
57  web_contents->GetController().Reload(true);
58  return true;
59}
60