[css-grid] Fix referencing line both inside and after auto repeat()

When referencing a line name appearing both inside and after an auto
repeat(), the code used to just take the minim of:
 - The absolute index of the line inside the auto repeat(), i.e. the
   local index relative to the auto repeat() plus the insertion point of
   the auto repeat().
 - The index of the line outside the auto repeat(), without expanding
   repeated tracks.

This was correct if the line outside the auto repeat() preceded it.
Otherwise it was wrong due to not taking repeated tracks into account.

For example, with

  grid-template-columns: 1px repeat(auto-fill, 2px 3px [a]) [a];

the absolute index of the line inside the auto repeat() is 2 + 1 = 3.
And the absolute index of the line outside the auto repeat() is 1 + 2*n.
However, the used index wasn't including repeated tracks so it was 2.

Therefore, the minimum was 2 but should have been 3.

BUG=966090

TEST=external/wpt/css/css-grid/placement/grid-placement-using-named-grid-lines-003.html

Change-Id: I1777a64d7e7d39350a327185dcd13f82493adfdb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2071019
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Reviewed-by: Javier Fernandez <jfernandez@igalia.com>
Cr-Commit-Position: refs/heads/master@{#745925}
2 files changed
tree: 9a01aae71841c066af8ece29dab45521fd93ff2b
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. cloud_print/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. jingle/
  31. media/
  32. mojo/
  33. native_client_sdk/
  34. net/
  35. pdf/
  36. ppapi/
  37. printing/
  38. remoting/
  39. rlz/
  40. sandbox/
  41. services/
  42. skia/
  43. sql/
  44. storage/
  45. styleguide/
  46. testing/
  47. third_party/
  48. tools/
  49. ui/
  50. url/
  51. weblayer/
  52. .clang-format
  53. .clang-tidy
  54. .eslintrc.js
  55. .git-blame-ignore-revs
  56. .gitattributes
  57. .gitignore
  58. .gn
  59. .vpython
  60. .vpython3
  61. .yapfignore
  62. AUTHORS
  63. BUILD.gn
  64. CODE_OF_CONDUCT.md
  65. codereview.settings
  66. DEPS
  67. ENG_REVIEW_OWNERS
  68. LICENSE
  69. LICENSE.chromium_os
  70. OWNERS
  71. PRESUBMIT.py
  72. PRESUBMIT_test.py
  73. PRESUBMIT_test_mocks.py
  74. README.md
  75. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.