From dc8f1d9152df5d6b3d18027ca54a57411097e3c0 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 27 Feb 2014 08:44:52 -0500 Subject: [PATCH] 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 --- content/base/src/nsContentSink.cpp | 10 +++++----- content/base/src/nsStyleLinkElement.cpp | 12 ++++++------ content/base/src/nsStyleLinkElement.h | 15 +++++++++------ content/html/content/src/HTMLLinkElement.cpp | 7 ++++--- content/xml/document/src/nsXMLContentSink.cpp | 6 +++--- parser/html/nsHtml5TreeOpExecutor.cpp | 6 +++--- 6 files changed, 30 insertions(+), 26 deletions(-) diff --git a/content/base/src/nsContentSink.cpp b/content/base/src/nsContentSink.cpp index 77226000e57..cdf270a5c5f 100644 --- a/content/base/src/nsContentSink.cpp +++ b/content/base/src/nsContentSink.cpp @@ -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); } diff --git a/content/base/src/nsStyleLinkElement.cpp b/content/base/src/nsStyleLinkElement.cpp index 18853b9c34f..108e1bb49d5 100644 --- a/content/base/src/nsStyleLinkElement.cpp +++ b/content/base/src/nsStyleLinkElement.cpp @@ -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; } diff --git a/content/base/src/nsStyleLinkElement.h b/content/base/src/nsStyleLinkElement.h index e2ff714e210..ff9a8eb9c63 100644 --- a/content/base/src/nsStyleLinkElement.h +++ b/content/base/src/nsStyleLinkElement.h @@ -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() diff --git a/content/html/content/src/HTMLLinkElement.cpp b/content/html/content/src/HTMLLinkElement.cpp index 87f69e93001..eed719f6214 100644 --- a/content/html/content/src/HTMLLinkElement.cpp +++ b/content/html/content/src/HTMLLinkElement.cpp @@ -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 { diff --git a/content/xml/document/src/nsXMLContentSink.cpp b/content/xml/document/src/nsXMLContentSink.cpp index 976a262391d..4da374bdba2 100644 --- a/content/xml/document/src/nsXMLContentSink.cpp +++ b/content/xml/document/src/nsXMLContentSink.cpp @@ -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()) { diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp index b724c22fddd..e0c7024e43f 100644 --- a/parser/html/nsHtml5TreeOpExecutor.cpp +++ b/parser/html/nsHtml5TreeOpExecutor.cpp @@ -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()) {