# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# This file is used to assign starting resource ids for resources and strings
# used by Chromium.  This is done to ensure that resource ids are unique
# across all the grd files.  If you are adding a new grd file, please add
# a new entry to this file.
#
# The first entry in the file, SRCDIR, is special: It is a relative path from
# this file to the base of your checkout.
#
# The range of ID values, which is used by pak files, is from 0 to 2^16 - 1.
{
  "SRCDIR": "../..",

  "chrome/browser/browser_resources.grd": {
    "includes": [400],
    "structures": [750],
  },
  "chrome/browser/resources/component_extension_resources.grd": {
    "includes": [1000],
    "structures": [1450],
  },
  "chrome/browser/resources/net_internals_resources.grd": {
    "includes": [1500],
  },
  "ui/webui/resources/webui_resources.grd": {
    "includes": [2000],
    "structures": [2200],
  },
  "chrome/common/common_resources.grd": {
    "includes": [2500],
  },
  "chrome/renderer/resources/renderer_resources.grd": {
    "includes": [3500],
    "structures": [3700],
  },
  "net/base/net_resources.grd": {
    "includes": [4000],
  },
  "ui/resources/ui_unscaled_resources.grd": {
    "includes": [4500],
  },
  "content/app/resources/content_resources.grd": {
    "structures": [4700],
  },
  "ui/resources/ui_resources.grd": {
    "structures": [5500],
  },
  "ash/resources/ash_resources.grd": {
    "includes": [6100],
    "structures": [6150],
  },
  "athena/resources/athena_resources.grd": {
    "structures": [6400],
  },
  "athena/strings/athena_strings.grd": {
    "messages": [6500],
  },
  "chrome/app/theme/theme_resources.grd": {
    "structures": [7000],
  },
  "chrome/app/theme/chrome_unscaled_resources.grd": {
    "includes": [8000],
  },
  "ui/strings/app_locale_settings.grd": {
    "messages": [9000],
  },
  "chrome/app/resources/locale_settings.grd": {
    "includes": [9500],
    "messages": [10000],
  },
  # These each start with the same resource id because we only use one
  # file for each build (chromiumos, google_chromeos, linux, mac, or win).
  "chrome/app/resources/locale_settings_chromiumos.grd": {
    "messages": [10500],
  },
  "chrome/app/resources/locale_settings_google_chromeos.grd": {
    "messages": [10500],
  },
  "chrome/app/resources/locale_settings_linux.grd": {
    "messages": [10500],
  },
  "chrome/app/resources/locale_settings_mac.grd": {
    "messages": [10500],
  },
  "chrome/app/resources/locale_settings_win.grd": {
    "messages": [10500],
  },
  "ui/strings/ui_strings.grd": {
    "messages": [11000],
  },
  # Chromium strings and Google Chrome strings must start at the same id.
  # We only use one file depending on whether we're building Chromium or
  # Google Chrome.
  "chrome/app/chromium_strings.grd": {
    "messages": [11500],
  },
  "chrome/app/google_chrome_strings.grd": {
    "messages": [11500],
  },
  # Leave lots of space for generated_resources since it has most of our
  # strings.
  "chrome/app/generated_resources.grd": {
    "structures": [12000],
    "messages": [12500],
  },
  "content/app/strings/content_strings.grd": {
    "messages": [18500],
  },
  "components/policy/resources/policy_templates.grd": {
    "structures": [20500],
    "messages": [20510],
  },
  "chrome/browser/resources/sync_internals_resources.grd": {
    "includes": [21500],
  },
  "chrome/browser/resources/signin_internals_resources.grd": {
    "includes": [21750],
  },
  "chrome/browser/resources/invalidations_resources.grd": {
    "includes": [21950],
  },
  # This file is generated during the build.
  "<(SHARED_INTERMEDIATE_DIR)/devtools/devtools_resources.grd": {
    "includes": [22000],
  },
  "devtools_resources.grd": {
    "includes": [22000],
  },
  "chrome/browser/resources/options_resources.grd": {
    "includes": [23000],
    "structures": [23200],
  },
  "cloud_print/virtual_driver/win/install/virtual_driver_setup_resources.grd": {
    "messages": [23500],
    "includes": [23550],
  },
  "cloud_print/service/win/service_resources.grd": {
    "messages": [23600],
    "includes": [23700],
    "structures": [23750],
  },
  "cloud_print/gcp20/prototype/gcp20_device.grd": {
    "messages": [23800],
    "includes": [23830],
    "structures": [23860],
  },
  "chrome/browser/resources/quota_internals_resources.grd": {
    "includes": [24000],
  },
  "content/content_resources.grd": {
    "includes": [25000],
  },
  "content/shell/shell_resources.grd": {
    "includes": [25500],
  },
  # This file is generated during the build.
  "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd": {
    "includes": [25750],
  },
  "ash/ash_strings.grd": {
    "messages": [26000],
  },
  "ui/chromeos/resources/ui_chromeos_resources.grd": {
    "structures": [26200],
  },
  "ui/chromeos/ui_chromeos_strings.grd": {
    "messages": [26300],
  },
  "chrome/common/extensions_api_resources.grd": {
    "includes": [26400],
  },
  "extensions/extensions_resources.grd": {
    "includes": [26600],
  },
  "extensions/browser/resources/extensions_browser_resources.grd": {
    "structures": [26800],
  },
  "extensions/renderer/resources/extensions_renderer_resources.grd": {
    "includes": [26850],
    "structures": [26950],
  },
  "extensions/extensions_strings.grd": {
    "messages": [27000],
  },
  "extensions/shell/app_shell_resources.grd": {
    "includes": [27400],
  },
  "chrome/browser/resources/memory_internals_resources.grd": {
    "includes": [27500],
  },
  "chrome/browser/resources/password_manager_internals_resources.grd": {
    "includes": [27800],
  },
  "device/bluetooth/bluetooth_strings.grd": {
    "messages": [28000],
  },
  "ui/keyboard/keyboard_resources.grd": {
    "includes": [28050],
  },
  "ui/file_manager/file_manager_resources.grd": {
    "includes": [28100],
  },
  "ui/login/login_resources.grd": {
    "includes": [28300],
  },
  "chrome/browser/resources/translate_internals_resources.grd": {
    "includes": [28500],
  },
  "chrome/browser/resources/sync_file_system_internals_resources.grd": {
    "includes": [29000],
  },
  "chrome/app/address_input_strings.grd": {
    "messages": [29100],
  },
  "remoting/resources/remoting_strings.grd": {
    "messages": [29550],
  },
  "components/components_strings.grd": {
    "messages": [30000],
  },
  "components/resources/components_resources.grd": {
    "includes": [30250],
  },
  "components/resources/components_scaled_resources.grd": {
    "structures": [30350],
  },
  "third_party/WebKit/public/blink_resources.grd": {
    "includes": [30500],
  },

  # These files don't need to reserve resource ids, but are listed here so that
  # translation scripts know of their existence.
  "android_webview/java/strings/android_webview_strings.grd": {},
  "chrome/android/java/strings/android_chrome_strings.grd": {},
  "content/public/android/java/strings/android_content_strings.grd": {},
  "ui/accessibility/extensions/strings/accessibility_extensions_strings.grd": {},
  "ui/android/java/strings/android_ui_strings.grd": {},

  # Resource ids starting at 31000 are reserved for projects built on Chromium.
}
