summaryrefslogtreecommitdiff
path: root/Source/WebCore/inspector/InspectorStyleSheet.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/inspector/InspectorStyleSheet.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/inspector/InspectorStyleSheet.h')
-rw-r--r--Source/WebCore/inspector/InspectorStyleSheet.h166
1 files changed, 65 insertions, 101 deletions
diff --git a/Source/WebCore/inspector/InspectorStyleSheet.h b/Source/WebCore/inspector/InspectorStyleSheet.h
index bc1f1ac79..df95d1ce5 100644
--- a/Source/WebCore/inspector/InspectorStyleSheet.h
+++ b/Source/WebCore/inspector/InspectorStyleSheet.h
@@ -22,27 +22,21 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef InspectorStyleSheet_h
-#define InspectorStyleSheet_h
+#pragma once
#include "CSSPropertySourceData.h"
#include "CSSStyleDeclaration.h"
-#include "ExceptionCode.h"
-#include "InspectorStyleTextEditor.h"
-#include "InspectorWebTypeBuilders.h"
+#include <inspector/InspectorProtocolObjects.h>
#include <inspector/InspectorValues.h>
#include <wtf/HashMap.h>
-#include <wtf/HashSet.h>
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
-#include <wtf/text/WTFString.h>
class ParsedStyleSheet;
namespace WebCore {
class CSSRuleList;
+class CSSSelector;
class CSSStyleDeclaration;
class CSSStyleRule;
class CSSStyleSheet;
@@ -50,27 +44,20 @@ class Document;
class Element;
class InspectorPageAgent;
class InspectorStyleSheet;
-class Node;
-
-#if ENABLE(INSPECTOR)
typedef String ErrorString;
class InspectorCSSId {
public:
- InspectorCSSId()
- : m_ordinal(0)
- {
- }
+ InspectorCSSId() { }
- explicit InspectorCSSId(RefPtr<Inspector::InspectorObject> value)
+ explicit InspectorCSSId(const Inspector::InspectorObject& value)
{
- if (!value->getString("styleSheetId", &m_styleSheetId))
+ if (!value.getString(ASCIILiteral("styleSheetId"), m_styleSheetId))
return;
-
- RefPtr<Inspector::InspectorValue> ordinalValue = value->get("ordinal");
- if (!ordinalValue || !ordinalValue->asNumber(&m_ordinal))
- m_styleSheetId = "";
+
+ if (!value.getInteger(ASCIILiteral("ordinal"), m_ordinal))
+ m_styleSheetId = String();
}
InspectorCSSId(const String& styleSheetId, unsigned ordinal)
@@ -84,22 +71,22 @@ public:
const String& styleSheetId() const { return m_styleSheetId; }
unsigned ordinal() const { return m_ordinal; }
- // ID type is either Inspector::TypeBuilder::CSS::CSSStyleId or Inspector::TypeBuilder::CSS::CSSRuleId.
+ // ID type is either Inspector::Protocol::CSS::CSSStyleId or Inspector::Protocol::CSS::CSSRuleId.
template<typename ID>
- PassRefPtr<ID> asProtocolValue() const
+ RefPtr<ID> asProtocolValue() const
{
if (isEmpty())
return nullptr;
- RefPtr<ID> result = ID::create()
+ return ID::create()
.setStyleSheetId(m_styleSheetId)
- .setOrdinal(m_ordinal);
- return result.release();
+ .setOrdinal(m_ordinal)
+ .release();
}
private:
String m_styleSheetId;
- unsigned m_ordinal;
+ unsigned m_ordinal = {0};
};
struct InspectorStyleProperty {
@@ -133,42 +120,31 @@ struct InspectorStyleProperty {
String rawText;
};
-class InspectorStyle : public RefCounted<InspectorStyle> {
+class InspectorStyle final : public RefCounted<InspectorStyle> {
public:
- static PassRefPtr<InspectorStyle> create(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet);
- virtual ~InspectorStyle();
+ static Ref<InspectorStyle> create(const InspectorCSSId& styleId, RefPtr<CSSStyleDeclaration>&&, InspectorStyleSheet* parentStyleSheet);
+ ~InspectorStyle();
CSSStyleDeclaration* cssStyle() const { return m_style.get(); }
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSStyle> buildObjectForStyle() const;
- PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::CSS::CSSComputedStyleProperty>> buildArrayForComputedStyle() const;
- bool hasDisabledProperties() const { return !m_disabledProperties.isEmpty(); }
- bool setPropertyText(unsigned index, const String& text, bool overwrite, String* oldText, ExceptionCode&);
- bool toggleProperty(unsigned index, bool disable, ExceptionCode&);
+ RefPtr<Inspector::Protocol::CSS::CSSStyle> buildObjectForStyle() const;
+ Ref<Inspector::Protocol::Array<Inspector::Protocol::CSS::CSSComputedStyleProperty>> buildArrayForComputedStyle() const;
- bool getText(String* result) const;
- bool setText(const String&, ExceptionCode&);
+ ExceptionOr<String> text() const;
+ ExceptionOr<void> setText(const String&);
private:
- InspectorStyle(const InspectorCSSId& styleId, PassRefPtr<CSSStyleDeclaration> style, InspectorStyleSheet* parentStyleSheet);
+ InspectorStyle(const InspectorCSSId& styleId, RefPtr<CSSStyleDeclaration>&&, InspectorStyleSheet* parentStyleSheet);
- // FIXME: Remove these aliases and update all the current call sites to use the new public methods.
- bool styleText(String* result) const { return getText(result); }
- bool applyStyleText(const String& text) { ExceptionCode ec = 0; return setText(text, ec); }
-
- bool populateAllProperties(Vector<InspectorStyleProperty>* result) const;
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSStyle> styleWithProperties() const;
- PassRefPtr<CSSRuleSourceData> extractSourceData() const;
+ void populateAllProperties(Vector<InspectorStyleProperty>* result) const;
+ Ref<Inspector::Protocol::CSS::CSSStyle> styleWithProperties() const;
+ RefPtr<CSSRuleSourceData> extractSourceData() const;
String shorthandValue(const String& shorthandProperty) const;
String shorthandPriority(const String& shorthandProperty) const;
Vector<String> longhandProperties(const String& shorthandProperty) const;
- NewLineAndWhitespace& newLineAndWhitespaceDelimiters() const;
InspectorCSSId m_styleId;
RefPtr<CSSStyleDeclaration> m_style;
InspectorStyleSheet* m_parentStyleSheet;
- Vector<InspectorStyleProperty> m_disabledProperties;
- mutable std::pair<String, String> m_format;
- mutable bool m_formatAcquired;
};
class InspectorStyleSheet : public RefCounted<InspectorStyleSheet> {
@@ -181,7 +157,7 @@ public:
};
typedef HashMap<CSSStyleDeclaration*, RefPtr<InspectorStyle>> InspectorStyleMap;
- static PassRefPtr<InspectorStyleSheet> create(InspectorPageAgent*, const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, Inspector::TypeBuilder::CSS::StyleSheetOrigin::Enum, const String& documentURL, Listener*);
+ static Ref<InspectorStyleSheet> create(InspectorPageAgent*, const String& id, RefPtr<CSSStyleSheet>&& pageStyleSheet, Inspector::Protocol::CSS::StyleSheetOrigin, const String& documentURL, Listener*);
static String styleSheetURL(CSSStyleSheet* pageStyleSheet);
virtual ~InspectorStyleSheet();
@@ -190,21 +166,19 @@ public:
String finalURL() const;
CSSStyleSheet* pageStyleSheet() const { return m_pageStyleSheet.get(); }
void reparseStyleSheet(const String&);
- bool setText(const String&, ExceptionCode&);
- String ruleSelector(const InspectorCSSId&, ExceptionCode&);
- bool setRuleSelector(const InspectorCSSId&, const String& selector, ExceptionCode&);
- CSSStyleRule* addRule(const String& selector, ExceptionCode&);
- bool deleteRule(const InspectorCSSId&, ExceptionCode&);
+ ExceptionOr<void> setText(const String&);
+ ExceptionOr<String> ruleSelector(const InspectorCSSId&);
+ ExceptionOr<void> setRuleSelector(const InspectorCSSId&, const String& selector);
+ ExceptionOr<CSSStyleRule*> addRule(const String& selector);
+ ExceptionOr<void> deleteRule(const InspectorCSSId&);
CSSStyleRule* ruleForId(const InspectorCSSId&) const;
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSStyleSheetBody> buildObjectForStyleSheet();
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSStyleSheetHeader> buildObjectForStyleSheetInfo();
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSRule> buildObjectForRule(CSSStyleRule*);
- PassRefPtr<Inspector::TypeBuilder::CSS::CSSStyle> buildObjectForStyle(CSSStyleDeclaration*);
- bool setStyleText(const InspectorCSSId&, const String& text, String* oldText, ExceptionCode&);
- bool setPropertyText(const InspectorCSSId&, unsigned propertyIndex, const String& text, bool overwrite, String* oldPropertyText, ExceptionCode&);
- bool toggleProperty(const InspectorCSSId&, unsigned propertyIndex, bool disable, ExceptionCode&);
-
- virtual bool getText(String* result) const;
+ RefPtr<Inspector::Protocol::CSS::CSSStyleSheetBody> buildObjectForStyleSheet();
+ RefPtr<Inspector::Protocol::CSS::CSSStyleSheetHeader> buildObjectForStyleSheetInfo();
+ RefPtr<Inspector::Protocol::CSS::CSSRule> buildObjectForRule(CSSStyleRule*, Element*);
+ RefPtr<Inspector::Protocol::CSS::CSSStyle> buildObjectForStyle(CSSStyleDeclaration*);
+ ExceptionOr<void> setStyleText(const InspectorCSSId&, const String& text, String* oldText);
+
+ virtual ExceptionOr<String> text() const;
virtual CSSStyleDeclaration* styleForId(const InspectorCSSId&) const;
void fireStyleSheetChanged();
@@ -212,78 +186,72 @@ public:
InspectorCSSId styleId(CSSStyleDeclaration* style) const { return ruleOrStyleId(style); }
protected:
- InspectorStyleSheet(InspectorPageAgent*, const String& id, PassRefPtr<CSSStyleSheet> pageStyleSheet, Inspector::TypeBuilder::CSS::StyleSheetOrigin::Enum, const String& documentURL, Listener*);
+ InspectorStyleSheet(InspectorPageAgent*, const String& id, RefPtr<CSSStyleSheet>&& pageStyleSheet, Inspector::Protocol::CSS::StyleSheetOrigin, const String& documentURL, Listener*);
- bool canBind() const { return m_origin != Inspector::TypeBuilder::CSS::StyleSheetOrigin::UserAgent && m_origin != Inspector::TypeBuilder::CSS::StyleSheetOrigin::User; }
- InspectorCSSId ruleOrStyleId(CSSStyleDeclaration* style) const;
+ bool canBind() const { return m_origin != Inspector::Protocol::CSS::StyleSheetOrigin::UserAgent && m_origin != Inspector::Protocol::CSS::StyleSheetOrigin::User; }
+ InspectorCSSId ruleOrStyleId(CSSStyleDeclaration*) const;
virtual Document* ownerDocument() const;
- virtual RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const;
+ virtual RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration*) const;
virtual unsigned ruleIndexByStyle(CSSStyleDeclaration*) const;
virtual bool ensureParsedDataReady();
- virtual PassRefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&);
- virtual void rememberInspectorStyle(RefPtr<InspectorStyle> inspectorStyle);
- virtual void forgetInspectorStyle(CSSStyleDeclaration* style);
+ virtual RefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&);
// Also accessed by friend class InspectorStyle.
- virtual bool setStyleText(CSSStyleDeclaration*, const String&, ExceptionCode&);
- virtual PassOwnPtr<Vector<size_t>> lineEndings() const;
+ virtual ExceptionOr<void> setStyleText(CSSStyleDeclaration*, const String&);
+ virtual std::unique_ptr<Vector<size_t>> lineEndings() const;
private:
typedef Vector<RefPtr<CSSStyleRule>> CSSStyleRuleVector;
friend class InspectorStyle;
- static void collectFlatRules(PassRefPtr<CSSRuleList>, CSSStyleRuleVector* result);
- bool checkPageStyleSheet(ExceptionCode&) const;
+ static void collectFlatRules(RefPtr<CSSRuleList>&&, CSSStyleRuleVector* result);
+ bool styleSheetMutated() const;
bool ensureText() const;
bool ensureSourceData();
void ensureFlatRules() const;
bool styleSheetTextWithChangedStyle(CSSStyleDeclaration*, const String& newStyleText, String* result);
- void revalidateStyle(CSSStyleDeclaration*);
bool originalStyleSheetText(String* result) const;
bool resourceStyleSheetText(String* result) const;
bool inlineStyleSheetText(String* result) const;
- PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::CSS::CSSRule>> buildArrayForRuleList(CSSRuleList*);
- PassRefPtr<Inspector::TypeBuilder::CSS::SelectorList> buildObjectForSelectorList(CSSStyleRule*);
+ Ref<Inspector::Protocol::Array<Inspector::Protocol::CSS::CSSRule>> buildArrayForRuleList(CSSRuleList*);
+ Ref<Inspector::Protocol::CSS::CSSSelector> buildObjectForSelector(const CSSSelector*, Element*);
+ Ref<Inspector::Protocol::CSS::SelectorList> buildObjectForSelectorList(CSSStyleRule*, Element*, int& endingLine);
InspectorPageAgent* m_pageAgent;
String m_id;
RefPtr<CSSStyleSheet> m_pageStyleSheet;
- Inspector::TypeBuilder::CSS::StyleSheetOrigin::Enum m_origin;
+ Inspector::Protocol::CSS::StyleSheetOrigin m_origin;
String m_documentURL;
- bool m_isRevalidating;
ParsedStyleSheet* m_parsedStyleSheet;
- InspectorStyleMap m_inspectorStyles;
mutable CSSStyleRuleVector m_flatRules;
Listener* m_listener;
};
-class InspectorStyleSheetForInlineStyle : public InspectorStyleSheet {
+class InspectorStyleSheetForInlineStyle final : public InspectorStyleSheet {
public:
- static PassRefPtr<InspectorStyleSheetForInlineStyle> create(InspectorPageAgent*, const String& id, PassRefPtr<Element>, Inspector::TypeBuilder::CSS::StyleSheetOrigin::Enum, Listener*);
+ static Ref<InspectorStyleSheetForInlineStyle> create(InspectorPageAgent*, const String& id, RefPtr<Element>&&, Inspector::Protocol::CSS::StyleSheetOrigin, Listener*);
void didModifyElementAttribute();
- virtual bool getText(String* result) const override;
- virtual CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const override { ASSERT_UNUSED(id, !id.ordinal()); return inlineStyle(); }
+ ExceptionOr<String> text() const final;
+ CSSStyleDeclaration* styleForId(const InspectorCSSId& id) const final { ASSERT_UNUSED(id, !id.ordinal()); return inlineStyle(); }
protected:
- InspectorStyleSheetForInlineStyle(InspectorPageAgent*, const String& id, PassRefPtr<Element>, Inspector::TypeBuilder::CSS::StyleSheetOrigin::Enum, Listener*);
+ InspectorStyleSheetForInlineStyle(InspectorPageAgent*, const String& id, RefPtr<Element>&&, Inspector::Protocol::CSS::StyleSheetOrigin, Listener*);
- virtual Document* ownerDocument() const override;
- virtual RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const override { ASSERT_UNUSED(style, style == inlineStyle()); return m_ruleSourceData; }
- virtual unsigned ruleIndexByStyle(CSSStyleDeclaration*) const override { return 0; }
- virtual bool ensureParsedDataReady() override;
- virtual PassRefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&) override;
- virtual void rememberInspectorStyle(RefPtr<InspectorStyle>) override { }
- virtual void forgetInspectorStyle(CSSStyleDeclaration*) override { }
+ Document* ownerDocument() const final;
+ RefPtr<CSSRuleSourceData> ruleSourceDataFor(CSSStyleDeclaration* style) const final { ASSERT_UNUSED(style, style == inlineStyle()); return m_ruleSourceData; }
+ unsigned ruleIndexByStyle(CSSStyleDeclaration*) const final { return 0; }
+ bool ensureParsedDataReady() final;
+ RefPtr<InspectorStyle> inspectorStyleForId(const InspectorCSSId&) final;
// Also accessed by friend class InspectorStyle.
- virtual bool setStyleText(CSSStyleDeclaration*, const String&, ExceptionCode&) override;
- virtual PassOwnPtr<Vector<size_t>> lineEndings() const override;
+ ExceptionOr<void> setStyleText(CSSStyleDeclaration*, const String&) final;
+ std::unique_ptr<Vector<size_t>> lineEndings() const final;
private:
CSSStyleDeclaration* inlineStyle() const;
const String& elementStyleText() const;
- bool getStyleAttributeRanges(CSSRuleSourceData* result) const;
+ Ref<CSSRuleSourceData> ruleSourceData() const;
RefPtr<Element> m_element;
RefPtr<CSSRuleSourceData> m_ruleSourceData;
@@ -294,8 +262,4 @@ private:
mutable bool m_isStyleTextValid;
};
-#endif
-
} // namespace WebCore
-
-#endif // !defined(InspectorStyleSheet_h)