# 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],
  },
  "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],
  },
  "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/android/java/strings/android_ui_strings.grd": {},

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