Invalidation of background-attachment:fixed on inline elements on scroll

Previously only LayoutBoxes with background-attachment:fixed are managed
in LocalFrameView. Now move related code from LayoutBox to
LayoutBoxModelObject to ensure LayoutInlines are also managed.

Change-Id: I56b235af6f12158a1718759b0814e4c15ce7ea7f
Bug: 1413872
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4425611
Commit-Queue: Xianzhu Wang <wangxianzhu@chromium.org>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#1130712}
diff --git a/css/css-backgrounds/background-attachment-fixed-inline-scrolled-ref.html b/css/css-backgrounds/background-attachment-fixed-inline-scrolled-ref.html
new file mode 100644
index 0000000..1767c84
--- /dev/null
+++ b/css/css-backgrounds/background-attachment-fixed-inline-scrolled-ref.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<style>
+body {
+  /* suppress scrollbars */
+  overflow: hidden;
+}
+#target {
+  background-attachment: fixed;
+  background-image: linear-gradient(green 50%, yellow 50%);
+  font-size: 130px;
+  line-height: 100px;
+}
+</style>
+<span id="target">
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+</span>
diff --git a/css/css-backgrounds/background-attachment-fixed-inline-scrolled.html b/css/css-backgrounds/background-attachment-fixed-inline-scrolled.html
new file mode 100644
index 0000000..746997d
--- /dev/null
+++ b/css/css-backgrounds/background-attachment-fixed-inline-scrolled.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<link rel="help" href="https://www.w3.org/TR/css-backgrounds-3/#background-attachment">
+<link rel="match" href="background-attachment-fixed-inline-scrolled-ref.html">
+<meta name="assert" content="Background with background-attachment-fixed on an inline element should be fixed to the viewport">
+<style>
+body {
+  /* suppress scrollbars */
+  overflow: hidden;
+}
+#target {
+  background-attachment: fixed;
+  background-image: linear-gradient(green 50%, yellow 50%);
+  font-size: 130px;
+  line-height: 100px;
+}
+</style>
+<span id="target">
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+</span>
+<script>
+requestAnimationFrame(() => {
+  requestAnimationFrame(() => {
+    scrollTo(0, 300);
+    document.documentElement.classList.remove("reftest-wait");
+  });
+});
+</script>