Bug 1427512 - Part 9: Remove nsIDOMCSSImportRule. r=xidorn,jryans

MozReview-Commit-ID: 9XG6412Z5iY
This commit is contained in:
Cameron McCormack 2018-01-11 16:17:55 +08:00
Родитель 7d9dd0ec73
Коммит 457039956c
11 изменённых файлов: 16 добавлений и 94 удалений

Просмотреть файл

@ -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