Avoid assert failure in LastRememberedSizeCallback.

HandleLastRememberedSize() only observes an element when HidesContent()
is false, so LastRememberedSizeCallback() expects it to still be false.

The problem was that it could change due to nsIFrame::Init() doing
ClearContentRelevancy().

It seems weird to use ClearContentRelevancy() for non-primary frames,
so this patch adds a InitPrimaryFrame() method which is called when a
frame becomes primary, and takes care of ClearContentRelevancy() and
HandleLastRememberedSize().

Differential Revision: https://phabricator.services.mozilla.com/D165463

bugzilla-url: https://bugzilla.mozilla.org/show_bug.cgi?id=1806902
gecko-commit: b9af9ace5269c30d5a1c453874bf5cbbd6ddba5a
gecko-reviewers: emilio
diff --git a/css/css-contain/content-visibility/crashtests/first-line-and-inline-block.html b/css/css-contain/content-visibility/crashtests/first-line-and-inline-block.html
new file mode 100644
index 0000000..6d6c660
--- /dev/null
+++ b/css/css-contain/content-visibility/crashtests/first-line-and-inline-block.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<style>
+div, span {
+  content-visibility: auto;
+  contain-intrinsic-width: auto 100vw;
+}
+div::first-line {
+  color: blue;
+}
+</style>
+<div>
+  <span style="display: inline-block">foo</span>
+</div>