Fix incremental style updating of styles coming from the MPC.

SetInlineStyleLostCascade needs to be set before entry into the
MatchedPropertiesCache, otherwise the flag may be incorrectly missing
from ComputedStyles produced by cache hits. This is because the
StyleCascade will be empty in case of a (full) cache hit, and hence
no inline style lost the cascade, and our late call to
SetInlineStyleLostCascade is not effective.

Fixed: 1332956
Change-Id: I0534c79f3c406c186149a59f95d98cad1eed7bdd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3702470
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: Steinar H Gunderson <sesse@chromium.org>
Commit-Queue: Anders Hartvoll Ruud <andruud@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1013413}
diff --git a/css/css-cascade/important-vs-inline-003.html b/css/css-cascade/important-vs-inline-003.html
new file mode 100644
index 0000000..b1103ab
--- /dev/null
+++ b/css/css-cascade/important-vs-inline-003.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta charset="utf-8">
+  <title>CSS Cascade: inline style loses to !important</title>
+  <link rel="help" href="https://crbug.com/1332956">
+  <link rel="author" href="mailto:sesse@chromium.org">
+  <script src="/resources/testharness.js"></script>
+  <script src="/resources/testharnessreport.js"></script>
+  <style>
+    .cls {
+      visibility: inherit !important;
+    }
+  </style>
+</head>
+<body>
+  <div class="cls" id="el" style="visibility: hidden; height: 200px;"><iframe></iframe></div>
+</body>
+<script>
+test(() => {
+  el.setAttribute('disabled', 'disabled');
+  el.offsetTop;
+  el.style.height = '400px';
+  assert_equals(getComputedStyle(el).visibility, "visible", "!important has higher priority than inline style");
+});
+</script>
+</html>