| Index: Source/core/css/analyzer/RuleSetAnalyzer.h
|
| diff --git a/Source/platform/graphics/GraphicsLayerDebugInfo.h b/Source/core/css/analyzer/RuleSetAnalyzer.h
|
| similarity index 50%
|
| copy from Source/platform/graphics/GraphicsLayerDebugInfo.h
|
| copy to Source/core/css/analyzer/RuleSetAnalyzer.h
|
| index 8ef0716d66b786edb67ef8aa7c7f53779b9996dc..a461a7199773ac5792c9933926cbd3b0217ed8b7 100644
|
| --- a/Source/platform/graphics/GraphicsLayerDebugInfo.h
|
| +++ b/Source/core/css/analyzer/RuleSetAnalyzer.h
|
| @@ -28,42 +28,53 @@
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| */
|
|
|
| -#ifndef GraphicsLayerDebugInfo_h
|
| -#define GraphicsLayerDebugInfo_h
|
| +#ifndef RuleSetAnalyzer_h
|
| +#define RuleSetAnalyzer_h
|
|
|
| -#include "platform/JSONValues.h"
|
| -#include "platform/geometry/LayoutRect.h"
|
| -#include "platform/graphics/CompositingReasons.h"
|
| -#include "public/platform/WebGraphicsLayerDebugInfo.h"
|
| -
|
| -#include "wtf/Vector.h"
|
| +#include "core/css/analyzer/DescendantInvalidationSet.h"
|
| +#include "wtf/RefCounted.h"
|
|
|
| namespace WebCore {
|
|
|
| -class GraphicsLayerDebugInfo FINAL : public blink::WebGraphicsLayerDebugInfo {
|
| -public:
|
| - GraphicsLayerDebugInfo();
|
| - virtual ~GraphicsLayerDebugInfo();
|
| +class CSSSelector;
|
| +class Document;
|
| +class RuleFeatureSet;
|
| +class RuleData;
|
| +class ShadowRoot;
|
|
|
| - virtual void appendAsTraceFormat(blink::WebString* out) const OVERRIDE;
|
| +// Keeps track of information about a set of CSS rules in order to answer style questions about them.
|
| +class RuleSetAnalyzer : public RefCounted<RuleSetAnalyzer> {
|
| +public:
|
| + static PassRefPtr<RuleSetAnalyzer> create();
|
|
|
| - GraphicsLayerDebugInfo* clone() const;
|
| + void collectFeaturesFromRuleData(RuleFeatureSet& features, const RuleData&);
|
| + void combine(const RuleSetAnalyzer& other);
|
|
|
| - void setDebugName(const String& name) { m_debugName = name; }
|
| - CompositingReasons compositingReasons() const { return m_compositingReasons; }
|
| - void setCompositingReasons(CompositingReasons reasons) { m_compositingReasons = reasons; }
|
| - Vector<LayoutRect>& currentLayoutRects() { return m_currentLayoutRects; }
|
| + bool scheduleClassInvalidationForElement(const AtomicString& className, Element*);
|
| + void recalcInvalidation(Document*);
|
|
|
| + bool needsInvalidation(const Element*) const;
|
| private:
|
| - void appendLayoutRects(JSONObject*) const;
|
| - void appendCompositingReasons(JSONObject*) const;
|
| - void appendDebugName(JSONObject*) const;
|
| + RuleSetAnalyzer();
|
| + typedef HashMap<AtomicString, RefPtr<DescendantInvalidationSet> > InvalidationSetMap;
|
| + typedef Vector<DescendantInvalidationSet*> InvalidationVec;
|
| + typedef HashMap<Element*, InvalidationVec* > PendingInvalidationMap;
|
| +
|
| + DescendantInvalidationSet* ensureClassInvalidationSet(const AtomicString& className);
|
| +
|
| + bool updateClassInvalidationSets(const CSSSelector*);
|
| +
|
| + bool recalcInvalidationInternal(Element*, Vector<AtomicString>&, bool foundInvalidationSet);
|
| + bool recalcInvalidationInternalForShadowRoot(ShadowRoot*, Vector<AtomicString>& invalidationClasses, bool foundInvalidationSet);
|
| +
|
| + InvalidationVec* ensurePendingInvalidationVector(Element*);
|
| +
|
| + InvalidationSetMap classInvalidationSets;
|
|
|
| - String m_debugName;
|
| - CompositingReasons m_compositingReasons;
|
| - Vector<LayoutRect> m_currentLayoutRects;
|
| +
|
| + PendingInvalidationMap m_pendingInvalidationMap;
|
| };
|
|
|
| } // namespace WebCore
|
|
|
| -#endif
|
| +#endif // RuleSetAnalyzer_h
|
|
|