зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1427512 - Part 9: Remove nsIDOMCSSImportRule. r=xidorn,jryans
MozReview-Commit-ID: 9XG6412Z5iY
This commit is contained in:
Родитель
7d9dd0ec73
Коммит
457039956c
|
@ -1738,7 +1738,7 @@ DebuggerServer.ObjectActorPreviewers.Object = [
|
|||
},
|
||||
|
||||
function ObjectWithURL({obj, hooks}, grip, rawObj) {
|
||||
if (isWorker || !rawObj || !(rawObj instanceof Ci.nsIDOMCSSImportRule ||
|
||||
if (isWorker || !rawObj || !(obj.class == "CSSImportRule" ||
|
||||
rawObj instanceof Ci.nsIDOMCSSStyleSheet ||
|
||||
obj.class == "Location" ||
|
||||
rawObj instanceof Ci.nsIDOMWindow)) {
|
||||
|
|
|
@ -1314,8 +1314,7 @@ var StyleRuleActor = protocol.ActorClassWithSpec(styleRuleSpec, {
|
|||
document = this.rawNode.ownerDocument;
|
||||
} else {
|
||||
let parentStyleSheet = this._parentSheet;
|
||||
while (parentStyleSheet.ownerRule &&
|
||||
parentStyleSheet.ownerRule instanceof Ci.nsIDOMCSSImportRule) {
|
||||
while (parentStyleSheet.ownerRule) {
|
||||
parentStyleSheet = parentStyleSheet.ownerRule.parentStyleSheet;
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ with Files("**"):
|
|||
|
||||
XPIDL_SOURCES += [
|
||||
'nsIDOMCounter.idl',
|
||||
'nsIDOMCSSImportRule.idl',
|
||||
'nsIDOMCSSKeyframeRule.idl',
|
||||
'nsIDOMCSSKeyframesRule.idl',
|
||||
'nsIDOMCSSPageRule.idl',
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
interface nsIDOMMediaList;
|
||||
interface nsIDOMCSSStyleSheet;
|
||||
|
||||
[scriptable, uuid(d3b2b914-01ef-4663-beda-a6475a26f491)]
|
||||
interface nsIDOMCSSImportRule : nsISupports
|
||||
{
|
||||
readonly attribute DOMString href;
|
||||
readonly attribute nsIDOMMediaList media;
|
||||
readonly attribute nsIDOMCSSStyleSheet styleSheet;
|
||||
};
|
|
@ -12,14 +12,6 @@
|
|||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
NS_IMPL_ADDREF_INHERITED(CSSImportRule, css::Rule)
|
||||
NS_IMPL_RELEASE_INHERITED(CSSImportRule, css::Rule)
|
||||
|
||||
// QueryInterface implementation for CSSImportRule
|
||||
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(CSSImportRule)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMCSSImportRule)
|
||||
NS_INTERFACE_MAP_END_INHERITING(css::Rule)
|
||||
|
||||
bool
|
||||
CSSImportRule::IsCCLeaf() const
|
||||
{
|
||||
|
@ -27,22 +19,6 @@ CSSImportRule::IsCCLeaf() const
|
|||
return false;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
CSSImportRule::GetMedia(nsIDOMMediaList** aMedia)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aMedia);
|
||||
NS_IF_ADDREF(*aMedia = GetMedia());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
CSSImportRule::GetStyleSheet(nsIDOMCSSStyleSheet** aStyleSheet)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aStyleSheet);
|
||||
NS_IF_ADDREF(*aStyleSheet = GetStyleSheet());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* virtual */ JSObject*
|
||||
CSSImportRule::WrapObject(JSContext* aCx,
|
||||
JS::Handle<JSObject*> aGivenProto)
|
||||
|
|
|
@ -8,20 +8,17 @@
|
|||
#define mozilla_dom_CSSImportRule_h
|
||||
|
||||
#include "mozilla/css/Rule.h"
|
||||
#include "nsIDOMCSSImportRule.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
class CSSImportRule : public css::Rule
|
||||
, public nsIDOMCSSImportRule
|
||||
{
|
||||
protected:
|
||||
using Rule::Rule;
|
||||
virtual ~CSSImportRule() {}
|
||||
|
||||
public:
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
bool IsCCLeaf() const final;
|
||||
|
||||
int32_t GetType() const final { return css::Rule::IMPORT_RULE; }
|
||||
|
@ -30,13 +27,9 @@ public:
|
|||
size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf)
|
||||
const override = 0;
|
||||
|
||||
// nsIDOMCSSImportRule interface
|
||||
NS_IMETHOD GetMedia(nsIDOMMediaList** aMedia) final;
|
||||
NS_IMETHOD GetStyleSheet(nsIDOMCSSStyleSheet** aStyleSheet) final;
|
||||
|
||||
// WebIDL interface
|
||||
uint16_t Type() const final { return nsIDOMCSSRule::IMPORT_RULE; }
|
||||
// The XPCOM GetHref is fine, since it never fails.
|
||||
virtual void GetHref(nsAString& aHref) const = 0;
|
||||
virtual dom::MediaList* GetMedia() const = 0;
|
||||
virtual StyleSheet* GetStyleSheet() const = 0;
|
||||
|
||||
|
|
|
@ -149,18 +149,9 @@ CSSStyleSheet::RebuildChildList(css::Rule* aRule,
|
|||
return false;
|
||||
}
|
||||
|
||||
// XXXbz We really need to decomtaminate all this stuff. Is there a reason
|
||||
// that I can't just QI to ImportRule and get a CSSStyleSheet
|
||||
// directly from it?
|
||||
nsCOMPtr<nsIDOMCSSImportRule> importRule(do_QueryInterface(aRule));
|
||||
NS_ASSERTION(importRule, "GetType lied");
|
||||
css::ImportRule* importRule = static_cast<css::ImportRule*>(aRule);
|
||||
StyleSheet* sheet = importRule->GetStyleSheet();
|
||||
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> childSheet;
|
||||
importRule->GetStyleSheet(getter_AddRefs(childSheet));
|
||||
|
||||
// Have to do this QI to be safe, since XPConnect can fake
|
||||
// nsIDOMCSSStyleSheets
|
||||
RefPtr<CSSStyleSheet> sheet = do_QueryObject(childSheet);
|
||||
if (!sheet) {
|
||||
return true;
|
||||
}
|
||||
|
@ -898,15 +889,10 @@ CSSStyleSheet::ReparseSheet(const nsAString& aInput)
|
|||
Inner()->mOrderedRules.RemoveObjectAt(ruleCount - 1);
|
||||
rule->SetStyleSheet(nullptr);
|
||||
if (rule->GetType() == css::Rule::IMPORT_RULE) {
|
||||
nsCOMPtr<nsIDOMCSSImportRule> importRule(do_QueryInterface(rule));
|
||||
NS_ASSERTION(importRule, "GetType lied");
|
||||
|
||||
nsCOMPtr<nsIDOMCSSStyleSheet> childSheet;
|
||||
importRule->GetStyleSheet(getter_AddRefs(childSheet));
|
||||
|
||||
RefPtr<CSSStyleSheet> cssSheet = do_QueryObject(childSheet);
|
||||
if (cssSheet && cssSheet->GetOriginalURI()) {
|
||||
reusableSheets.AddReusableSheet(cssSheet);
|
||||
auto importRule = static_cast<css::ImportRule*>(rule.get());
|
||||
RefPtr<StyleSheet> sheet = importRule->GetStyleSheet();
|
||||
if (sheet && sheet->GetOriginalURI()) {
|
||||
reusableSheets.AddReusableSheet(sheet);
|
||||
}
|
||||
}
|
||||
RuleRemoved(*rule);
|
||||
|
|
|
@ -39,12 +39,8 @@ private:
|
|||
ImportRule(const ImportRule& aCopy);
|
||||
~ImportRule();
|
||||
public:
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ImportRule, Rule)
|
||||
NS_DECL_ISUPPORTS_INHERITED
|
||||
|
||||
// unhide since nsIDOMCSSImportRule has its own GetStyleSheet and GetMedia
|
||||
using dom::CSSImportRule::GetStyleSheet;
|
||||
using dom::CSSImportRule::GetMedia;
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ImportRule, Rule)
|
||||
|
||||
// Rule methods
|
||||
#ifdef DEBUG
|
||||
|
@ -56,11 +52,9 @@ public:
|
|||
|
||||
virtual size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const override;
|
||||
|
||||
// nsIDOMCSSImportRule interface
|
||||
NS_IMETHOD GetHref(nsAString& aHref) final;
|
||||
|
||||
// WebIDL interface
|
||||
void GetCssTextImpl(nsAString& aCssText) const override;
|
||||
void GetHref(nsAString& aHref) const final;
|
||||
dom::MediaList* GetMedia() const final;
|
||||
StyleSheet* GetStyleSheet() const final;
|
||||
|
||||
|
|
|
@ -96,11 +96,10 @@ ServoImportRule::GetStyleSheet() const
|
|||
return mChildSheet;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
ServoImportRule::GetHref(nsAString& aHref)
|
||||
void
|
||||
ServoImportRule::GetHref(nsAString& aHref) const
|
||||
{
|
||||
Servo_ImportRule_GetHref(mRawRule, &aHref);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* virtual */ void
|
||||
|
|
|
@ -26,21 +26,15 @@ public:
|
|||
NS_DECL_ISUPPORTS_INHERITED
|
||||
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(ServoImportRule, dom::CSSImportRule)
|
||||
|
||||
// unhide since nsIDOMCSSImportRule has its own GetStyleSheet and GetMedia
|
||||
using dom::CSSImportRule::GetStyleSheet;
|
||||
using dom::CSSImportRule::GetMedia;
|
||||
|
||||
#ifdef DEBUG
|
||||
void List(FILE* out = stdout, int32_t aIndent = 0) const final;
|
||||
#endif
|
||||
already_AddRefed<css::Rule> Clone() const final;
|
||||
size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const final;
|
||||
|
||||
// nsIDOMCSSImportRule interface
|
||||
NS_IMETHOD GetHref(nsAString& aHref) final;
|
||||
|
||||
// WebIDL interface
|
||||
void GetCssTextImpl(nsAString& aCssText) const override;
|
||||
void GetHref(nsAString& aHref) const final;
|
||||
dom::MediaList* GetMedia() const final;
|
||||
StyleSheet* GetStyleSheet() const final;
|
||||
|
||||
|
|
|
@ -184,11 +184,10 @@ ImportRule::GetStyleSheet() const
|
|||
return mChildSheet;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
ImportRule::GetHref(nsAString & aHref)
|
||||
void
|
||||
ImportRule::GetHref(nsAString& aHref) const
|
||||
{
|
||||
aHref = mURLSpec;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* virtual */ size_t
|
||||
|
|
Загрузка…
Ссылка в новой задаче