1// Copyright (c) 2012 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/website_settings/permission_menu_model.h" 6 7#include "grit/generated_resources.h" 8#include "ui/base/l10n/l10n_util.h" 9 10PermissionMenuModel::PermissionMenuModel( 11 Delegate* delegate, 12 const GURL& url, 13 ContentSettingsType type, 14 ContentSetting default_setting, 15 ContentSetting current_setting) 16 : ui::SimpleMenuModel(this), 17 delegate_(delegate), 18 site_url_(url) { 19 base::string16 label; 20 switch (default_setting) { 21 case CONTENT_SETTING_ALLOW: 22 label = l10n_util::GetStringUTF16( 23 IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_ALLOW); 24 break; 25 case CONTENT_SETTING_BLOCK: 26 label = l10n_util::GetStringUTF16( 27 IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_BLOCK); 28 break; 29 case CONTENT_SETTING_ASK: 30 label = l10n_util::GetStringUTF16( 31 IDS_WEBSITE_SETTINGS_MENU_ITEM_DEFAULT_ASK); 32 break; 33 default: 34 break; 35 } 36 AddCheckItem(COMMAND_SET_TO_DEFAULT, label); 37 38 // Media only support COMMAND_SET_TO_ALLOW for https. 39 if (type != CONTENT_SETTINGS_TYPE_MEDIASTREAM || 40 url.SchemeIsSecure()) { 41 label = l10n_util::GetStringUTF16( 42 IDS_WEBSITE_SETTINGS_MENU_ITEM_ALLOW); 43 AddCheckItem(COMMAND_SET_TO_ALLOW, label); 44 } 45 if (type != CONTENT_SETTINGS_TYPE_FULLSCREEN) { 46 label = l10n_util::GetStringUTF16( 47 IDS_WEBSITE_SETTINGS_MENU_ITEM_BLOCK); 48 AddCheckItem(COMMAND_SET_TO_BLOCK, label); 49 } 50} 51 52bool PermissionMenuModel::IsCommandIdChecked(int command_id) const { 53 if (delegate_) 54 return delegate_->IsCommandIdChecked(command_id); 55 return false; 56} 57 58bool PermissionMenuModel::IsCommandIdEnabled(int command_id) const { 59 return true; 60} 61 62bool PermissionMenuModel::GetAcceleratorForCommandId( 63 int command_id, 64 ui::Accelerator* accelerator) { 65 // Accelerators are not supported. 66 return false; 67} 68 69void PermissionMenuModel::ExecuteCommand(int command_id, int event_flags) { 70 if (delegate_) 71 delegate_->ExecuteCommand(command_id); 72} 73