Here's a stack when the freeze occurred: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsIFrame::GetOffsetFromView(struct nsPoint * aOffset = <Value unavailable error>, class nsView ** aView = <Value unavailable error>)+0x13 [C:\Users\jamie\src\g ecko2\layout\generic\nsIFrame.cpp @ 7115] 01 00000044`405fd570 00007ff9`e18cf077 xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Val ue unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x223 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8387] 02 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0xe7 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8962] 03 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 04 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Val ue unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 05 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x000 00044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] 06 00000044`405fdb10 00007ffa`47e54dbe xul!mozilla::a11y::ia2AccessibleText::get_textAtOffset(long aOffset = 0n0, IA2TextBoundaryType aBoundaryType = <Value unavailable error>, long * aStartOffset = 0x0 0000044`4427e150, long * aEndOffset = 0x00000044`4427e160, wchar_t ** aText = 0x00000044`4427e170)+0x14f [C:\Users\jamie\src\gecko2\accessible\windows\ia2\ia2AccessibleText.cpp @ 322] ... ``` A second or so later, I took another stack: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsFrameIterator::nsFrameIterator(class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame * aStart = 0x0000017e`2e61c020, nsIteratorType aType = ePostOrder (0n2), bool aLockInScrollView = false, bool aFollowOOFs = false, bool aSkipPopupChecks = false)+0x32 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 192] 01 00000044`405fd4f0 00007ff9`e18cf576 xul!NS_NewFrameTraversal(class nsIFrameEnumerator ** aEnumerator = 0x00000044`405fd620, class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame * aStart = 0x0000017e`2e61c020, nsIteratorType aType = ePostOrder (0n2), bool aVisual = <Value unavailable error>, bool aLockInScrollView = <Value unavailable error>, bool aFollowOOFs = <Value unavailable error>, bool aSkipPopupChecks = <Value unavailable error>)+0xf4 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 153] 02 00000044`405fd570 00007ff9`e18cf0ff xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Val ue unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x2f6 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8408] 03 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0x16f [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8959] 04 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 05 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Val ue unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 06 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x000 00044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] ... ``` This suggests we're stuck in an infinite loop in GetNextPrevLineFromBlockFrame.
Bug 1794265 Comment 6 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Here's a stack when the freeze occurred: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsIFrame::GetOffsetFromView(struct nsPoint * aOffset = <Value unavailable error>, class nsView ** aView = <Value unavailable error>)+0x13 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 7115] 01 00000044`405fd570 00007ff9`e18cf077 xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Value unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x223 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8387] 02 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0xe7 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8962] 03 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 04 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Value unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 05 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x000 00044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] 06 00000044`405fdb10 00007ffa`47e54dbe xul!mozilla::a11y::ia2AccessibleText::get_textAtOffset(long aOffset = 0n0, IA2TextBoundaryType aBoundaryType = <Value unavailable error>, long * aStartOffset = 0x00000044`4427e150, long * aEndOffset = 0x00000044`4427e160, wchar_t ** aText = 0x00000044`4427e170)+0x14f [C:\Users\jamie\src\gecko2\accessible\windows\ia2\ia2AccessibleText.cpp @ 322] ... ``` A second or so later, I took another stack: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsFrameIterator::nsFrameIterator(class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame * aStart = 0x0000017e`2e61c020, nsIteratorType aType= ePostOrder (0n2), bool aLockInScrollView = false, bool aFollowOOFs = false, bool aSkipPopupChecks = false)+0x32 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 192] 01 00000044`405fd4f0 00007ff9`e18cf576 xul!NS_NewFrameTraversal(class nsIFrameEnumerator ** aEnumerator = 0x00000044`405fd620, class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame *aStart = 0x0000017e`2e61c020, nsIteratorType aType = ePostOrder (0n2), bool aVisual = <Value unavailable error>, bool aLockInScrollView = <Value unavailable error>, bool aFollowOOFs = <Value unavailable error>, bool aSkipPopupChecks = <Value unavailable error>)+0xf4 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 153] 02 00000044`405fd570 00007ff9`e18cf0ff xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Value unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x2f6 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8408] 03 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0x16f [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8959] 04 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 05 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Value unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 06 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x000 00044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] ... ``` This suggests we're stuck in an infinite loop in GetNextPrevLineFromBlockFrame.
Here's a stack when the freeze occurred: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsIFrame::GetOffsetFromView(struct nsPoint * aOffset = <Value unavailable error>, class nsView ** aView = <Value unavailable error>)+0x13 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 7115] 01 00000044`405fd570 00007ff9`e18cf077 xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Value unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x223 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8387] 02 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0xe7 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8962] 03 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 04 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Value unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 05 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x00000044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] 06 00000044`405fdb10 00007ffa`47e54dbe xul!mozilla::a11y::ia2AccessibleText::get_textAtOffset(long aOffset = 0n0, IA2TextBoundaryType aBoundaryType = <Value unavailable error>, long * aStartOffset = 0x00000044`4427e150, long * aEndOffset = 0x00000044`4427e160, wchar_t ** aText = 0x00000044`4427e170)+0x14f [C:\Users\jamie\src\gecko2\accessible\windows\ia2\ia2AccessibleText.cpp @ 322] ... ``` A second or so later, I took another stack: ``` # Child-SP RetAddr Call Site 00 (Inline Function) --------`-------- xul!nsFrameIterator::nsFrameIterator(class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame * aStart = 0x0000017e`2e61c020, nsIteratorType aType= ePostOrder (0n2), bool aLockInScrollView = false, bool aFollowOOFs = false, bool aSkipPopupChecks = false)+0x32 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 192] 01 00000044`405fd4f0 00007ff9`e18cf576 xul!NS_NewFrameTraversal(class nsIFrameEnumerator ** aEnumerator = 0x00000044`405fd620, class nsPresContext * aPresContext = 0x0000017e`2b546000, class nsIFrame *aStart = 0x0000017e`2e61c020, nsIteratorType aType = ePostOrder (0n2), bool aVisual = <Value unavailable error>, bool aLockInScrollView = <Value unavailable error>, bool aFollowOOFs = <Value unavailable error>, bool aSkipPopupChecks = <Value unavailable error>)+0xf4 [C:\Users\jamie\src\gecko2\layout\base\nsFrameTraversal.cpp @ 153] 02 00000044`405fd570 00007ff9`e18cf0ff xul!GetNextPrevLineFromBlockFrame(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8, class nsIFrame * aBlockFrame = 0x0000017e`2e618d20, int aLineStart = <Value unavailable error>, char aOutSideLimit = <Value unavailable error>)+0x2f6 [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8408] 03 00000044`405fd6b0 00007ff9`e27ee740 xul!nsIFrame::PeekOffsetForLine(struct nsPeekOffsetStruct * aPos = 0x00000044`405fd7b8)+0x16f [C:\Users\jamie\src\gecko2\layout\generic\nsIFrame.cpp @ 8959] 04 00000044`405fd740 00007ff9`e27ef058 xul!mozilla::a11y::HyperTextAccessible::FindOffset(void)+0x2c0 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 535] 05 00000044`405fd8f0 00007ff9`e27efebd xul!mozilla::a11y::HyperTextAccessible::FindLineBoundary(unsigned int aOffset = 0, mozilla::a11y::HyperTextAccessible::EWhichLineBoundary aWhichLineBoundary = <Value unavailable error>)+0x448 [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 738] 06 00000044`405fda00 00007ff9`e279f91f xul!mozilla::a11y::HyperTextAccessible::TextAtOffset(int aOffset = 0n0, int aBoundaryType = 0n5, int * aStartOffset = 0x00000044`405fdb4c, int * aEndOffset = 0x00000044`405fdb48, class nsTSubstring<char16_t> * aText = 0x00000044`405fdb50 "")+0x23d [C:\Users\jamie\src\gecko2\accessible\generic\HyperTextAccessible.cpp @ 1064] ... ``` This suggests we're stuck in an infinite loop in GetNextPrevLineFromBlockFrame.