<?xml version="1.0" encoding="utf-8"?>
<grit-part>
  <if expr="not is_android">
    <message name="IDS_GEOLOCATION_INFOBAR_TEXT" desc="Text requesting permission for a site to access the user's physical location">
      <ph name="URL">$1<ex>maps.google.com</ex></ph> wants to use your computer's location
    </message>
  </if>
  <if expr="is_android">
    <message name="IDS_GEOLOCATION_INFOBAR_TEXT" desc="Mobile: Text requesting permission for a site to access the user's physical location">
      <ph name="URL">$1<ex>maps.google.com</ex></ph> wants to use your device's location
    </message>
    <message name="IDS_ACCESSIBILITY_EVENTS_INFOBAR_TEXT" desc="Text requesting permission for a site to listen to accessibility events, for example if the user has a screen reader or braille device enabled">
      <ph name="URL">$1<ex>maps.google.com</ex></ph> wants to respond to accessibility events
    </message>
    <message name="IDS_CLIPBOARD_INFOBAR_TEXT" desc="Text requesting permission for a site to read data from the system clipboard">
      <ph name="URL">$1<ex>maps.google.com</ex></ph> wants to see text and images copied to the clipboard
    </message>
    <message name="IDS_NFC_INFOBAR_TEXT" desc="Text requesting permission for a site to use NFC">
      <ph name="URL">$1<ex>google.com</ex></ph> wants to send and receive info when you tap your phone on an NFC device
    </message>
    <message name="IDS_VR_INFOBAR_TEXT" desc="Text requesting permission for a site to use VR">
      <ph name="URL">$1<ex>google.com</ex></ph> wants to use your virtual reality device and data
    </message>
    <message name="IDS_AR_INFOBAR_TEXT" desc="Text requesting permission for a site to use AR">
      <ph name="URL">$1<ex>google.com</ex></ph> wants to create a 3D map of your surroundings and track camera position
    </message>
    <!-- TODO(https://bugs.chromium.org/p/chromium/issues/detail?id=1106874) -->
    <message name="IDS_AR_AND_MEDIA_CAPTURE_VIDEO_INFOBAR_TEXT" desc="Text requesting permission for a site to use AR and the Camera Access Feature">
      <ph name="URL">$1<ex>google.com</ex></ph> wants to:
      • Create a 3D map of your surroundings and track camera position
      • Use your camera
    </message>
    <message name="IDS_IDLE_DETECTION_INFOBAR_TEXT" desc="Text requesting permission for a site to know when the user is idle.">
      <ph name="URL">$1<ex>google.com</ex></ph> wants to know when you're actively using this device
    </message>
    <message name="IDS_NOTIFICATION_QUIET_PERMISSION_PROMPT_TITLE" desc="Text used as notification title when requesting permission for Web Notifications via a notification.">
      Notifications for <ph name="ORIGIN">$1<ex>example.com</ex></ph> are blocked
    </message>
    <message name="IDS_NOTIFICATION_QUIET_PERMISSION_PROMPT_MESSAGE" desc="Text used as notification message when requesting permission for Web Notifications via a notification.">
      Notifications are automatically blocked for all sites except ones you allow
    </message>
    <message name="IDS_NOTIFICATION_QUIET_PERMISSION_INFOBAR_PREDICTION_SERVICE_MESSAGE" desc="Text used as notification message when requesting permission for Web Notifications via a notification. Used when the prediction service has decided that the user will be very unlikely to grant this permission.">
      Notifications were automatically blocked because you usually don't allow them
    </message>
    <message name="IDS_MEDIA_CAPTURE_AUDIO_ONLY_INFOBAR_TEXT" desc="Text requesting permission for a site to access the computer's microphone.">
      <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your microphone
    </message>
    <message name="IDS_MEDIA_CAPTURE_VIDEO_ONLY_INFOBAR_TEXT" desc="Text requesting permission for a site to access the computer's camera.">
      <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your camera
    </message>
    <message name="IDS_NOTIFICATIONS_INFOBAR_TEXT" desc="Text requesting permission for Web Notifications.">
      <ph name="site">$1<ex>mail.google.com</ex></ph> wants to send you notifications
    </message>
    <message name="IDS_MIDI_SYSEX_INFOBAR_TEXT" desc="Text requesting permission for a site to access MIDI devices with system exclusive messages.">
      <ph name="URL">$1<ex>www.google.com</ex></ph> wants to get full control of your MIDI devices
    </message>
    <message name="IDS_STORAGE_ACCESS_INFOBAR_TEXT" desc="Permission request shown if the user is visiting a site needs access to its data while it is embedded into another site.">
      <ph name="EMBEDDED_URL">$1<ex>news.site</ex></ph> wants to use cookies and site data on <ph name="TOP_LEVEL_URL">$2<ex>content_domain.site</ex></ph>
    </message>
    <message name="IDS_INFOBAR_UPDATE_PERMISSIONS_BUTTON_TEXT" desc="Button text shown when Chrome does not have the necessary permission required to complete the requested tasks (e.g. a website has request location information, but Chrome is missing that Android permission).">
      Continue
    </message>
    <message name="IDS_MEDIA_CAPTURE_AUDIO_AND_VIDEO_INFOBAR_TEXT" desc="Text requesting permission for a site to access the computer's microphone and camera.">
      <ph name="HOST">$1<ex>html5rocks.com</ex></ph> wants to use your camera and microphone
    </message>
      <message name="IDS_MULTI_DOWNLOAD_WARNING" desc="Warning invoked if multiple downloads are attempted without user interaction.">
      <ph name="ORIGIN">$1<ex>https://backgroundfetch.com</ex></ph> wants to download multiple files
    </message>

    <message name="IDS_MESSAGE_MISSING_CAMERA_PERMISSION_TITLE" desc="Title text shown in a prompt ui to ask whether user agrees to grant Android camera permission when a website has requested access to camera, but Chrome is missing the Android camera permission.">
      Allow camera?
    </message>
    <message name="IDS_MESSAGE_MISSING_STORAGE_ACCESS_PERMISSION_TITLE" desc="Title text shown in a prompt ui to ask whether user agrees to grant Android storage access permission when a website has requested access to storage access, but Chrome is missing the Android storage access permission.">
      Allow storage access?
    </message>
    <message name="IDS_MESSAGE_MISSING_MICROPHONE_PERMISSION_TITLE" desc="Title text shown in a prompt ui to ask whether user agrees to grant Android microphone permission when a website has requested access to microphone, but Chrome is missing the Android microphone permission.">
      Allow microphone?
    </message>
    <message name="IDS_MESSAGE_MISSING_LOCATION_PERMISSION_TITLE" desc="Title text shown in a prompt ui to ask whether user agrees to grant Android location permission when a website has requested access to location, but Chrome is missing the Android location permission.">
      Allow location?
    </message>
    <message name="IDS_MESSAGE_MISSING_MICROPHONE_CAMERA_PERMISSION_TITLE" desc="Title text shown in a prompt ui to ask whether user agrees to grant Android microphone and camera permission when a website has requested access to microphone and camera, but Chrome is missing the Android microphone and camera permission.">
      Allow 2 permissions?
    </message>
</if>
  <if expr="is_android or chromeos or lacros or is_win">
    <message name="IDS_PROTECTED_MEDIA_IDENTIFIER_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's protected media identifier.">
      Know your unique device identifier
    </message>
    <message name="IDS_PROTECTED_MEDIA_IDENTIFIER_PER_ORIGIN_PROVISIONING_INFOBAR_TEXT" desc="Text requesting permission for a site to access protected media identifier. It shows the origin of the URL.">
      <ph name="URL">$1<ex>https://www.youtube.com</ex></ph> wants to play protected content. Your device’s identity will be verified by Google.
    </message>
    <message name="IDS_PROTECTED_MEDIA_IDENTIFIER_PER_DEVICE_PROVISIONING_INFOBAR_TEXT" desc="Text requesting permission for a site to access protected media identifier. It shows the origin of the URL.">
      <ph name="URL">$1<ex>https://www.youtube.com</ex></ph> wants to play protected content. Your device's identity will be verified by Google and may be accessed by this site.
    </message>
  </if>
  <message name="IDS_GEOLOCATION_INFOBAR_PERMISSION_FRAGMENT" desc="Permission fragment used in the permission bubble, after 'This site wants to:' asking for permission to access the user's physical location.">
    Know your location
  </message>
  <message name="IDS_NOTIFICATION_PERMISSIONS_FRAGMENT" desc="Permission sentence fragment to show following the prompt 'This site wants to:' in a permissions request">
    Show notifications
  </message>
  <message name="IDS_MIDI_SYSEX_PERMISSION_FRAGMENT" desc="Permission asked in the permission bubble when a URL wants to access MIDI devices with system exclusive messages, along with other permissions requests. Preceded by the prompt 'This site would like to:'">
    Use your MIDI devices
  </message>
  <message name="IDS_MEDIA_CAPTURE_AUDIO_ONLY_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's microphone.">
    Use your microphone
  </message>
  <message name="IDS_MEDIA_CAPTURE_VIDEO_ONLY_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions bubble when a web page requests access to the computer's camera.">
    Use your camera
  </message>
  <message name="IDS_MEDIA_CAPTURE_CAMERA_PAN_TILT_ZOOM_PERMISSION_FRAGMENT" desc="Permission fragment shown in the permissions prompt when a web page requests access to the computer's camera, including zoom and move.">
    Use &amp; move your camera
  </message>
  <message name="IDS_ACCESSIBILITY_EVENTS_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to respond to accessibility events, for example if the user is using a screen reader and the site has custom accessibility features. Follows a prompt: 'This site would like to:'">
    Respond to Accessibility Events
  </message>
  <message name="IDS_CLIPBOARD_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to read data from the system clipboard. Follows a prompt: 'This site would like to:'">
    See text and images copied to the clipboard
  </message>
  <message name="IDS_VR_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to use VR. Follows a prompt: 'This site would like to:">
    Use virtual reality devices and data
  </message>
  <message name="IDS_AR_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to use AR. Follows a prompt: 'This site would like to:">
    Create a 3D map of your surroundings and track camera position
  </message>
  <message name="IDS_STORAGE_ACCESS_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site needs access to its data while it is embedded into another site. Follows a prompt: 'This site would like to:'">
    Access cookies and site data.
  </message>
  <message name="IDS_STORAGE_ACCESS_PERMISSION_EXPLANATION" desc="Explanation of the permission request shown if the user is visiting a site needs access to its data while it is embedded into another site. Follows this text: 'This site would like to: Access cookies and site data.'">
Do you want to allow <ph name="EMBEDDED_URL">$1<ex>news.site</ex></ph> to use cookies and site data on <ph name="TOP_LEVEL_URL">$2<ex>content_domain.site</ex></ph>?

This will otherwise be blocked by your privacy settings. This will allow the content you interacted with to work correctly, but may allow <ph name="EMBEDDED_URL">$1<ex>news.site</ex></ph> to track your activity.
  </message>
  <message name="IDS_WINDOW_PLACEMENT_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to place windows. Follows a prompt: 'This site would like to:'">
    Open and place windows on your screens
  </message>
  <message name="IDS_FONT_ACCESS_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to access locally installed font data. Follows a prompt: 'This site would like to:'">
    Use the fonts on your computer so you can create high-fidelity content
  </message>
  <message name="IDS_IDLE_DETECTION_PERMISSION_FRAGMENT" desc="Permission request shown if the user is visiting a site that wants to monitor when the user is interacting with their device. Follows a prompt: 'This site would like to:'">
    Know when you're actively using this device
  </message>
  <message name="IDS_MULTI_DOWNLOAD_PERMISSION_FRAGMENT" desc="Permission request shown if multiple downloads are attempted without user interaction and there are multiple permissions requested. Follows a prompt: 'This site would like to:'">
    Download multiple files
  </message>
  <message name="IDS_SECURITY_KEY_ATTESTATION_PERMISSION_FRAGMENT" desc="A permission prompt shown to a user when a website wants to see information that identifies the user's Security Key, such as make and model number. The text '[website URL] wants to:' precedes this string. The 'make' of a device is the brand name of the manufacturer, e.g. Yubikey is a make of Security Key. The 'model' of a device is the specific product, e.g. Yubikey Neo is a model of Security Key.">
    See the make and model of your Security Key
  </message>
  <message name="IDS_U2F_API_PERMISSION_FRAGMENT" desc="A permission prompt shown to a user when a website wants to make a request to access a user's Security Key. A 'Security Key' is a small USB device that a user can touch in order to sign into a website.">
    Use your Security Key
  </message>
  <message name="IDS_U2F_API_PERMISSION_EXPLANATION" desc="A permission prompt shown to a user when a website wants to make a request to access a user's Security Key. A 'Security Key' is a small USB device that a user can touch in order to sign into a website. 'U2F API' and 'Web Authentication API' are the names of two different web platform APIs for interacting with Security Keys.">
    This site won't be able to use the U2F API after February 2022. If you own this site, you should change it to use the Web Authentication API.
  </message>
  <message name="IDS_PERMISSION_ALLOW" desc="Label on button to allow a permissions request.">
    Allow
  </message>
  <message name="IDS_PERMISSION_DENY" desc="Label on button to deny a permissions request.">
    Block
  </message>
  <message name="IDS_PERMISSION_ALLOW_ONCE">
    Only this time
  </message>
  <message name="IDS_PERMISSION_ALLOW_ALWAYS">
    On every visit
  </message>
  <message name="IDS_PERMISSIONS_BUBBLE_PROMPT_ONE_TIME" desc="The label that is used to introduce permission request details to the user in a popup.">
    Allow <ph name="SITE_NAME">$1<ex>google.com</ex></ph> to:
  </message>
  <!-- Device Chooser -->
  <if expr="not is_android">
    <message name="IDS_BLUETOOTH_DEVICE_CHOOSER_PROMPT_ORIGIN" desc="The label that is used to introduce Bluetooth chooser details to the user in a popup when it is from a website.">
      <ph name="Origin">$1<ex>www.google.com</ex></ph> wants to pair
    </message>
    <message name="IDS_BLUETOOTH_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no Bluetooth devices were found matching the requirements that the application provided.">
      No compatible devices found.
    </message>
    <message name="IDS_BLUETOOTH_DEVICE_CHOOSER_PAIR_BUTTON_TEXT" desc="Label on the button that closes the Bluetooth chooser popup and pairs the selected device.">
      Pair
    </message>
    <message name="IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING_LABEL" desc="Text on label that indicates a scan for Bluetooth devices is in progress.">
      Scanning...
    </message>
    <message name="IDS_BLUETOOTH_DEVICE_CHOOSER_SCANNING_LABEL_TOOLTIP" desc="Tooltip for the label that shows while scanning for Bluetooth devices.">
      Scanning for Bluetooth devices...
    </message>
  </if>
  <message name="IDS_DEVICE_CHOOSER_DEVICE_NAME_WITH_ID" desc="To distinguish devices with the same name, the device chooser shows the device name with id.">
    <ph name="DEVICE_NAME">$1<ex>device name</ex></ph> (<ph name="DEVICE_ID">$2<ex>device id</ex></ph>)
  </message>

  <!-- Bluetooth Scanning Prompt -->
  <if expr="not is_android">
    <message name="IDS_BLUETOOTH_SCANNING_PROMPT_ORIGIN" desc="The label that is used to introduce Bluetooth scanning prompt details to the user when it is from a website.">
      <ph name="Origin">$1<ex>www.google.com</ex></ph> wants to scan for nearby Bluetooth devices. The following devices have been found:
    </message>
    <message name="IDS_BLUETOOTH_SCANNING_DEVICE_UNKNOWN" desc="Text to identify Bluetooth devices of unknown or unsupported class.">
      Unknown or unsupported device (<ph name="DEVICE_ID">$1<ex>A1:B2:C3:D4:E5:F6</ex></ph>)
    </message>
  </if>
  <message name="IDS_BLUETOOTH_SCANNING_PROMPT_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no nearby Bluetooth devices were found using the requirements that the application provided." formatter_data="android_java">
    No nearby devices found.
  </message>
  <message name="IDS_BLUETOOTH_SCANNING_PROMPT_ALLOW_BUTTON_TEXT" desc="Label on the button that allows Bluetooth scanning." formatter_data="android_java">
    Allow
  </message>
  <message name="IDS_BLUETOOTH_SCANNING_PROMPT_BLOCK_BUTTON_TEXT" desc="Label on the button that blocks Bluetooth scanning." formatter_data="android_java">
    Block
  </message>

  <message name="IDS_DEVICE_CHOOSER_CANCEL_BUTTON_TEXT" desc="Label on the button that closes the chooser popup without selecting an option.">
    Cancel
  </message>
  <message name="IDS_DEVICE_CHOOSER_NO_DEVICES_FOUND_PROMPT" desc="The label shown to the user to inform them that no USB devices were found matching the requirements that the application provided.">
    No compatible devices found.
  </message>
  <message name="IDS_USB_DEVICE_CHOOSER_PROMPT_ORIGIN" desc="The label that is used to introduce USB chooser details to the user in a popup when it is from a website.">
    <ph name="Origin">$1<ex>www.google.com</ex></ph> wants to connect
  </message>
  <message name="IDS_USB_DEVICE_CHOOSER_CONNECT_BUTTON_TEXT" desc="Label on the button that closes the USB chooser popup and connects the selected device.">
    Connect
  </message>
  <message name="IDS_USB_DEVICE_CHOOSER_LOADING_LABEL" desc="Text on label that the browser is loading the list of USB devices.">
    Finding devices...
  </message>
  <message name="IDS_USB_DEVICE_CHOOSER_LOADING_LABEL_TOOLTIP" desc="Tooltip for the label that the browser is loading the list of USB devices.">
    Finding USB devices...
  </message>

  <if expr="not is_android">
    <message name="IDS_GEOLOCATION_PERMISSION_CHIP" desc="Button text representing a request for the user's physical location from a website. When clicked, shows a permission prompt bubble with more information.">
      Use your location?
    </message>
    <message name="IDS_NOTIFICATION_PERMISSIONS_CHIP" desc="Button text representing a request for showing notifications from a website. When clicked, shows a permission prompt bubble with more information.">
      Get notifications?
    </message>
    <message name="IDS_MIDI_SYSEX_PERMISSION_CHIP" desc="Button text representing a request for accessing MIDI devices from a website. When clicked, shows a permission prompt bubble with more information.">
      Connect MIDI device?
    </message>
    <message name="IDS_MEDIA_CAPTURE_AUDIO_ONLY_PERMISSION_CHIP" desc="Button text representing a request for accessing the computer's microphone from a website. When clicked, shows a permission prompt bubble with more information.">
      Use microphone?
    </message>
    <message name="IDS_MEDIA_CAPTURE_VIDEO_ONLY_PERMISSION_CHIP" desc="Button text representing a request for accessing to the computer's camera from a website. When clicked, shows a permission prompt bubble with more information.">
      Use camera?
    </message>
    <message name="IDS_MEDIA_CAPTURE_VIDEO_AND_AUDIO_PERMISSION_CHIP" desc="Button text representing a request for accessing the computer's camera and microphone from a website. When clicked, shows a permission prompt bubble with more information.">
      Use camera &amp; microphone?
    </message>
    <message name="IDS_CLIPBOARD_PERMISSION_CHIP" desc="Button text representing a request for reading data from the system clipboard from a website. When clicked, shows a permission prompt bubble with more information.">
      Share clipboard?
    </message>
    <message name="IDS_VR_PERMISSION_CHIP" desc="Button text representing a request for using VR from a website. When clicked, shows a permission prompt bubble with more information.">
      Allow VR?
    </message>
    <message name="IDS_AR_PERMISSION_CHIP" desc="Button text representing a request for using AR from a website. When clicked, shows a permission prompt bubble with more information.">
      Allow AR?
    </message>
    <message name="IDS_IDLE_DETECTION_PERMISSION_CHIP" desc="Button text representing a request for using using idle detection from a website. When clicked, shows a permission prompt bubble with more information.">
      Know your device use?
    </message>

    <message name="IDS_GEOLOCATION_PERMISSION_BLOCKED_CHIP" desc="Button text representing a blocked or expired request for the user's physical location from a website. When clicked, shows a permission prompt bubble with more information.">
      Location blocked
    </message>
    <message name="IDS_NOTIFICATION_PERMISSIONS_BLOCKED_CHIP" desc="Button text representing a blocked or expired request for showing notifications from a website. When clicked, shows a permission prompt bubble with more information.">
      Notifications blocked
    </message>
  </if>

  <!-- Quota messages -->
  <if expr="is_android">
    <message name="IDS_REQUEST_QUOTA_INFOBAR_TEXT" desc="Mobile: For Android device. Text requesting permission for a site to use a new (larger) quota to persistently store data on the device (e.g. for persistent-type filesystem).">
      <ph name="URL">$1<ex>html5rocks.com</ex></ph> wants to permanently store data on your device
    </message>
    <message name="IDS_REQUEST_LARGE_QUOTA_INFOBAR_TEXT" desc="Mobile: For Android device. Text requesting permission for a site to use a new (larger) quota to persistently store large data on the user's device (e.g. for persistent-type filesystem).">
      <ph name="URL">$1<ex>html5rocks.com</ex></ph> wants to permanently store large data on your device
    </message>
  </if>
  <if expr="not is_android">
    <message name="IDS_REQUEST_QUOTA_INFOBAR_TEXT" desc="Text requesting permission for a site to use a new (larger) quota to persistently store data on the user's local computer (e.g. for persistent-type filesystem).">
      <ph name="URL">$1<ex>html5rocks.com</ex></ph> wants to permanently store data on your local computer
    </message>
    <message name="IDS_REQUEST_LARGE_QUOTA_INFOBAR_TEXT" desc="Text requesting permission for a site to use a new (larger) quota to persistently store large data on the user's local computer (e.g. for persistent-type filesystem).">
      <ph name="URL">$1<ex>html5rocks.com</ex></ph> wants to permanently store large data on your local computer
    </message>
  </if>
  <message name="IDS_REQUEST_QUOTA_PERMISSION_FRAGMENT" desc="Permission fragment presented in the permission bubble when the webapp requests new larger quota to persistently store data on the device. Follows a 'This site would like to:' prompt.">
    Store files on this device
  </message>
</grit-part>
