<?xml version="1.0" encoding="UTF-8"?>
<!-- This grd file contains images that are not pre-scaled for device
     scale factors. The image returned by
     |base::ResourceBundle::GetImageNamed| only contains 100P, and
     it is the caller's responsibility to do the right thing when the
     display is not at 100P device scale factor.
  -->
<grit latest_public_release="0" current_release="1">
  <outputs>
    <output filename="grit/chrome_unscaled_resources.h" type="rc_header">
      <emit emit_type='prepend'></emit>
    </output>
    <output filename="chrome_unscaled_resources.pak" type="data_package" />
    <output filename="chrome_unscaled_resources.rc" type="rc_all" />
  </outputs>
  <release seq="1">
    <includes>
      <if expr="pp_ifdef('_google_chrome')">
        <include name="IDR_PRODUCT_LOGO_64" file="google_chrome/product_logo_64.png" type="BINDATA" />
        <include name="IDR_PRODUCT_LOGO_128" file="google_chrome/product_logo_128.png" type="BINDATA" />
        <!-- NOTE: product_logo_*.* files beyond what's listed above are
             referenced by installer code; don't remove them unless you know
             what you're doing! -->
        <if expr="is_macosx">
          <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22_mono.png" type="BINDATA" />
          <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="google_chrome/product_logo_22_mono_invert.png" type="BINDATA" />
        </if>
        <if expr="not is_macosx">
          <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22.png" type="BINDATA" />
          <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="google_chrome/product_logo_22.png" type="BINDATA" />
        </if>
        <include name="IDR_WIZARD_ICON" file="google_chrome/wizard_icon.png" type="BINDATA" />
        <include name="IDR_WIZARD_ICON_RTL" file="google_chrome/wizard_icon_rtl.png" type="BINDATA" />
      </if>
      <if expr="not pp_ifdef('_google_chrome')">
        <include name="IDR_PRODUCT_LOGO_64" file="chromium/product_logo_64.png" type="BINDATA" />
        <include name="IDR_PRODUCT_LOGO_128" file="chromium/product_logo_128.png" type="BINDATA" />
        <!-- NOTE: product_logo_*.* files beyond what's listed above are
             referenced by installer code; don't remove them unless you know
             what you're doing! -->
        <if expr="is_macosx">
          <include name="IDR_STATUS_TRAY_ICON" file="chromium/product_logo_22_mono.png" type="BINDATA" />
          <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="chromium/product_logo_22_mono_invert.png" type="BINDATA" />
        </if>
        <if expr="not is_macosx">
          <include name="IDR_STATUS_TRAY_ICON" file="chromium/product_logo_22.png" type="BINDATA" />
          <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="chromium/product_logo_22.png" type="BINDATA" />
        </if>
      </if>
      <if expr="is_win">
        <!-- Double-size profile avatar images used for generating .ico
             files for Windows profile shortcuts. Included here because
             they do not depend on the UI scale factor.
             See: http://crbug.com/167277. -->
        <include name="IDR_PROFILE_AVATAR_2X_0" file="default_200_percent/profile_avatar_generic.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_1" file="default_200_percent/profile_avatar_generic_aqua.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_2" file="default_200_percent/profile_avatar_generic_blue.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_3" file="default_200_percent/profile_avatar_generic_green.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_4" file="default_200_percent/profile_avatar_generic_orange.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_5" file="default_200_percent/profile_avatar_generic_purple.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_6" file="default_200_percent/profile_avatar_generic_red.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_7" file="default_200_percent/profile_avatar_generic_yellow.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_8" file="default_200_percent/profile_avatar_secret_agent.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_9" file="default_200_percent/profile_avatar_superhero.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_10" file="default_200_percent/profile_avatar_volley_ball.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_11" file="default_200_percent/profile_avatar_businessman.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_12" file="default_200_percent/profile_avatar_ninja.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_13" file="default_200_percent/profile_avatar_alien.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_14" file="default_200_percent/profile_avatar_awesome.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_15" file="default_200_percent/profile_avatar_flower.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_16" file="default_200_percent/profile_avatar_pizza.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_17" file="default_200_percent/profile_avatar_soccer.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_18" file="default_200_percent/profile_avatar_burger.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_19" file="default_200_percent/profile_avatar_cat.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_20" file="default_200_percent/profile_avatar_cupcake.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_21" file="default_200_percent/profile_avatar_dog.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_22" file="default_200_percent/profile_avatar_horse.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_23" file="default_200_percent/profile_avatar_margarita.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_24" file="default_200_percent/profile_avatar_note.png" type="BINDATA" />
        <include name="IDR_PROFILE_AVATAR_2X_25" file="default_200_percent/profile_avatar_sun_cloud.png" type="BINDATA" />
      </if>
      <if expr="is_macosx and pp_ifdef('enable_app_list')">
        <!-- App Launcher icons for .app shim, dock icon. Unscaled, because the
             icon file built does not depend on UI scale factor. -->
        <if expr="pp_ifdef('_google_chrome')">
          <include name="IDR_APP_LIST_16" file="google_chrome/app_list_16.png" type="BINDATA" />
          <include name="IDR_APP_LIST_32" file="google_chrome/app_list_32.png" type="BINDATA" />
          <include name="IDR_APP_LIST_128" file="google_chrome/app_list_128.png" type="BINDATA" />
          <include name="IDR_APP_LIST_256" file="google_chrome/app_list_256.png" type="BINDATA" />
          <include name="IDR_APP_LIST_CANARY_16" file="google_chrome/app_list_canary_16.png" type="BINDATA" />
          <include name="IDR_APP_LIST_CANARY_32" file="google_chrome/app_list_canary_32.png" type="BINDATA" />
          <include name="IDR_APP_LIST_CANARY_128" file="google_chrome/app_list_canary_128.png" type="BINDATA" />
          <include name="IDR_APP_LIST_CANARY_256" file="google_chrome/app_list_canary_256.png" type="BINDATA" />
        </if>
        <if expr="not pp_ifdef('_google_chrome')">
          <include name="IDR_APP_LIST_16" file="chromium/app_list_16.png" type="BINDATA" />
          <include name="IDR_APP_LIST_32" file="chromium/app_list_32.png" type="BINDATA" />
          <include name="IDR_APP_LIST_128" file="chromium/app_list_128.png" type="BINDATA" />
          <include name="IDR_APP_LIST_256" file="chromium/app_list_256.png" type="BINDATA" />
        </if>
      </if>
    </includes>
  </release>
</grit>
