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