Bug 977553. Use an enum instead of macros for the nsStyleLinkElement rel types, so they won't collide with macros in wingdi.h. r=smaug

This commit is contained in:
Boris Zbarsky 2014-02-27 08:44:52 -05:00
parent 46c75107b3
commit dc8f1d9152
6 changed files with 30 additions and 26 deletions

View File

@ -675,22 +675,22 @@ nsContentSink::ProcessLink(const nsSubstring& aAnchor, const nsSubstring& aHref,
return NS_OK;
}
bool hasPrefetch = linkTypes & PREFETCH;
bool hasPrefetch = linkTypes & nsStyleLinkElement::ePREFETCH;
// prefetch href if relation is "next" or "prefetch"
if (hasPrefetch || (linkTypes & NEXT)) {
if (hasPrefetch || (linkTypes & nsStyleLinkElement::eNEXT)) {
PrefetchHref(aHref, mDocument, hasPrefetch);
}
if (!aHref.IsEmpty() && (linkTypes & DNS_PREFETCH)) {
if (!aHref.IsEmpty() && (linkTypes & nsStyleLinkElement::eDNS_PREFETCH)) {
PrefetchDNS(aHref);
}
// is it a stylesheet link?
if (!(linkTypes & STYLESHEET)) {
if (!(linkTypes & nsStyleLinkElement::eSTYLESHEET)) {
return NS_OK;
}
bool isAlternate = linkTypes & ALTERNATE;
bool isAlternate = linkTypes & nsStyleLinkElement::eALTERNATE;
return ProcessStyleLink(nullptr, aHref, isAlternate, aTitle, aType,
aMedia);
}

View File

@ -120,18 +120,18 @@ nsStyleLinkElement::SetLineNumber(uint32_t aLineNumber)
mLineNumber = aLineNumber;
}
uint32_t ToLinkMask(const nsAString& aLink)
static uint32_t ToLinkMask(const nsAString& aLink)
{
if (aLink.EqualsLiteral("prefetch"))
return PREFETCH;
return nsStyleLinkElement::ePREFETCH;
else if (aLink.EqualsLiteral("dns-prefetch"))
return DNS_PREFETCH;
return nsStyleLinkElement::eDNS_PREFETCH;
else if (aLink.EqualsLiteral("stylesheet"))
return STYLESHEET;
return nsStyleLinkElement::eSTYLESHEET;
else if (aLink.EqualsLiteral("next"))
return NEXT;
return nsStyleLinkElement::eNEXT;
else if (aLink.EqualsLiteral("alternate"))
return ALTERNATE;
return nsStyleLinkElement::eALTERNATE;
else
return 0;
}

View File

@ -20,12 +20,6 @@
#include "nsTArray.h"
#include "mozilla/CORSMode.h"
#define PREFETCH 0x00000001
#define DNS_PREFETCH 0x00000002
#define STYLESHEET 0x00000004
#define NEXT 0x00000008
#define ALTERNATE 0x00000010
class nsIDocument;
class nsIURI;
@ -58,6 +52,15 @@ public:
virtual void OverrideBaseURI(nsIURI* aNewBaseURI) MOZ_OVERRIDE;
virtual void SetLineNumber(uint32_t aLineNumber) MOZ_OVERRIDE;
enum RelValue {
ePREFETCH = 0x00000001,
eDNS_PREFETCH = 0x00000002,
eSTYLESHEET = 0x00000004,
eNEXT = 0x00000008,
eALTERNATE = 0x00000010,
};
// The return value is a bitwise or of 0 or more RelValues
static uint32_t ParseLinkTypes(const nsAString& aTypes);
void UpdateStyleSheetInternal()

View File

@ -1,3 +1,4 @@
/* -*- Mode: C++; 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
@ -255,7 +256,7 @@ HTMLLinkElement::SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
bool dropSheet = false;
if (aName == nsGkAtoms::rel && GetSheet()) {
uint32_t linkTypes = nsStyleLinkElement::ParseLinkTypes(aValue);
dropSheet = !(linkTypes & STYLESHEET);
dropSheet = !(linkTypes & nsStyleLinkElement::eSTYLESHEET);
}
UpdateStyleSheetInternal(nullptr, nullptr,
@ -360,7 +361,7 @@ HTMLLinkElement::GetStyleSheetInfo(nsAString& aTitle,
GetAttr(kNameSpaceID_None, nsGkAtoms::rel, rel);
uint32_t linkTypes = nsStyleLinkElement::ParseLinkTypes(rel);
// Is it a stylesheet link?
if (!(linkTypes & STYLESHEET)) {
if (!(linkTypes & nsStyleLinkElement::eSTYLESHEET)) {
return;
}
@ -370,7 +371,7 @@ HTMLLinkElement::GetStyleSheetInfo(nsAString& aTitle,
aTitle.Assign(title);
// If alternate, does it have title?
if (linkTypes & ALTERNATE) {
if (linkTypes & nsStyleLinkElement::eALTERNATE) {
if (aTitle.IsEmpty()) { // alternates must have title
return;
} else {

View File

@ -606,15 +606,15 @@ nsXMLContentSink::CloseElement(nsIContent* aContent)
aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::rel, relVal);
if (!relVal.IsEmpty()) {
uint32_t linkTypes = nsStyleLinkElement::ParseLinkTypes(relVal);
bool hasPrefetch = linkTypes & PREFETCH;
if (hasPrefetch || (linkTypes & NEXT)) {
bool hasPrefetch = linkTypes & nsStyleLinkElement::ePREFETCH;
if (hasPrefetch || (linkTypes & nsStyleLinkElement::eNEXT)) {
nsAutoString hrefVal;
aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::href, hrefVal);
if (!hrefVal.IsEmpty()) {
PrefetchHref(hrefVal, aContent, hasPrefetch);
}
}
if (linkTypes & DNS_PREFETCH) {
if (linkTypes & nsStyleLinkElement::eDNS_PREFETCH) {
nsAutoString hrefVal;
aContent->GetAttr(kNameSpaceID_None, nsGkAtoms::href, hrefVal);
if (!hrefVal.IsEmpty()) {

View File

@ -339,15 +339,15 @@ nsHtml5TreeOpExecutor::UpdateStyleSheet(nsIContent* aElement)
aElement->GetAttr(kNameSpaceID_None, nsGkAtoms::rel, relVal);
if (!relVal.IsEmpty()) {
uint32_t linkTypes = nsStyleLinkElement::ParseLinkTypes(relVal);
bool hasPrefetch = linkTypes & PREFETCH;
if (hasPrefetch || (linkTypes & NEXT)) {
bool hasPrefetch = linkTypes & nsStyleLinkElement::ePREFETCH;
if (hasPrefetch || (linkTypes & nsStyleLinkElement::eNEXT)) {
nsAutoString hrefVal;
aElement->GetAttr(kNameSpaceID_None, nsGkAtoms::href, hrefVal);
if (!hrefVal.IsEmpty()) {
PrefetchHref(hrefVal, aElement, hasPrefetch);
}
}
if (linkTypes & DNS_PREFETCH) {
if (linkTypes & nsStyleLinkElement::eDNS_PREFETCH) {
nsAutoString hrefVal;
aElement->GetAttr(kNameSpaceID_None, nsGkAtoms::href, hrefVal);
if (!hrefVal.IsEmpty()) {