mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
1ca91ce6a1
Fixes the assertion failure with text: "###!!! ASSERTION: Wrong line container hint: '!aForFrame || (aLineContainer == FindLineContainer(aForFrame) || aLineContainer->GetType() == nsGkAtoms::rubyTextContainerFrame || (aLineContainer->GetType() == nsGkAtoms::letterFrame && aLineContainer->IsFloating()))', file /home/sgbowen/builds/mozilla-central/layout/generic/nsTextFrame.cpp, line 1259" which occasionally appears when opening pages with ruby or when running ruby reftests. Updates the manifest for ruby reftests to the current expectations (adjust assertion counts, etc.)
62 lines
2.1 KiB
C++
62 lines
2.1 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=2 et sw=2 tw=80: */
|
|
/* This Source Code is subject to the terms of the Mozilla Public License
|
|
* version 2.0 (the "License"). You can obtain a copy of the License at
|
|
* http://mozilla.org/MPL/2.0/. */
|
|
|
|
/* rendering object for CSS "display: ruby-base-container" */
|
|
|
|
#ifndef nsRubyBaseContainerFrame_h___
|
|
#define nsRubyBaseContainerFrame_h___
|
|
|
|
#include "nsContainerFrame.h"
|
|
#include "nsRubyTextContainerFrame.h"
|
|
#include "nsRubyBaseFrame.h"
|
|
#include "nsRubyTextFrame.h"
|
|
|
|
/**
|
|
* Factory function.
|
|
* @return a newly allocated nsRubyBaseContainerFrame (infallible)
|
|
*/
|
|
nsContainerFrame* NS_NewRubyBaseContainerFrame(nsIPresShell* aPresShell,
|
|
nsStyleContext* aContext);
|
|
|
|
class nsRubyBaseContainerFrame MOZ_FINAL : public nsContainerFrame
|
|
{
|
|
public:
|
|
NS_DECL_FRAMEARENA_HELPERS
|
|
NS_DECL_QUERYFRAME_TARGET(nsRubyBaseContainerFrame)
|
|
NS_DECL_QUERYFRAME
|
|
|
|
// nsIFrame overrides
|
|
virtual nsIAtom* GetType() const MOZ_OVERRIDE;
|
|
virtual bool IsFrameOfType(uint32_t aFlags) const MOZ_OVERRIDE;
|
|
virtual bool CanContinueTextRun() const MOZ_OVERRIDE;
|
|
virtual void Reflow(nsPresContext* aPresContext,
|
|
nsHTMLReflowMetrics& aDesiredSize,
|
|
const nsHTMLReflowState& aReflowState,
|
|
nsReflowStatus& aStatus) MOZ_OVERRIDE;
|
|
|
|
#ifdef DEBUG_FRAME_DUMP
|
|
virtual nsresult GetFrameName(nsAString& aResult) const MOZ_OVERRIDE;
|
|
#endif
|
|
|
|
void AppendTextContainer(nsIFrame* aFrame);
|
|
void ClearTextContainers();
|
|
|
|
protected:
|
|
friend nsContainerFrame*
|
|
NS_NewRubyBaseContainerFrame(nsIPresShell* aPresShell,
|
|
nsStyleContext* aContext);
|
|
nsRubyBaseContainerFrame(nsStyleContext* aContext) : nsContainerFrame(aContext) {}
|
|
/*
|
|
* The ruby text containers that belong to the ruby segment defined by
|
|
* this ruby base container. These text containers are located at the start
|
|
* of reflow for the ruby frame (parent) and cleared at the end of that
|
|
* reflow.
|
|
*/
|
|
nsTArray<nsRubyTextContainerFrame*> mTextContainers;
|
|
};
|
|
|
|
#endif /* nsRubyBaseContainerFrame_h___ */
|