mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 14:18:48 +00:00
7254e4308f
- Bug 1048131 - Remove MOZ_CAPTIVEDETECT and enable captive portal detector for all products. r=mcmanus (d2b2980c1) - Bug 1048131 - Implement CaptivePortalService using nsICaptivePortalDetector r=mcmanus (d62c390d4) - Bug 1048131 - Make some network events trigger a captive portal recheck r=mcmanus (8c19273f0) - Bug 1166910 - Gecko changes for adding referrer attribute. r=hsivonen (46676ae77) - Bug 1166910 - Referrer attribute for img tag. r=ckerschb, r=hsivonen, r=bz (f833f3e6c) - Bug 1174913 - anchor and area referrer attributes. r=ckerschb, r=bz (f99a956be) (backend parts only) - missing bits of Bug 1210302 - Part 1: Rename nsINetUtil.parseContentType() to parseResponseContentType(); r=mcmanus (eb8fba336) - Bug 1210302 - Part 2: Rename NS_ParseContentType to NS_ParseResponseContentType; r=mcmanus,sicking (74f4cd98d) - remaining bits of Bug 1210302 - Part 3: Add a NS_ParseRequestContentType API; r=mcmanus,sicking (56477b434) - pointer style (ca5142301) - Bug 1172109 - Name some anonymous structs to help out the analysis, r=terrence (775d17318) - Bug 1173042 - Remove unused GCChunkSet and chunk hashing functions; r=ehoogeveen (357e0887d) - Bug 1177778 - Allow HeapPtr destruction while shutting down the GC r=terrence (793654cb2) - Bug 1181306 - Skip compacting phase when finishing an incremental GC non-incrementally r=terrence (7547c11ad) - Bug 1162961 - Fix logspam in mochitest-dt by passing the URL along in network progress events;r=past (3b4c9048f) - Bug 1149235 part 1. Move nsScriptLoadRequest into nsScriptLoader.h. r=sicking (df56a3e9d) - Bug 1149235 part 2. Switch to using linked lists for nsScriptLoadRequest. r=sicking (7a0536b53) - Bug 1149235 part 3. Store async requests in the scriptloader in two lists, so we don't have to grovel about looking for loaded ones. r=sicking (db45689c6) - Bug 1154598. Keep better track of our script requests. r=smaug (a2232a237) - Bug 1157995 - Tell the cycle collector about Navigator::mMediaDevices. r=smaug (9a9147bdf) - Bug 1181619. Make sure we've entered a microtask before we call nsJSUtils::EvaluateString, and put those microtasks outside the relevant AutoEntryScripts so we report any possible exceptions before doing the microtask checkpoint. r=bholley (851e371ac)
245 lines
7.1 KiB
C++
245 lines
7.1 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* 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/. */
|
|
|
|
#ifndef mozilla_dom_HTMLAnchorElement_h
|
|
#define mozilla_dom_HTMLAnchorElement_h
|
|
|
|
#include "mozilla/Attributes.h"
|
|
#include "mozilla/dom/Link.h"
|
|
#include "nsGenericHTMLElement.h"
|
|
#include "nsIDOMHTMLAnchorElement.h"
|
|
#include "nsDOMTokenList.h"
|
|
|
|
namespace mozilla {
|
|
class EventChainPostVisitor;
|
|
class EventChainPreVisitor;
|
|
namespace dom {
|
|
|
|
class HTMLAnchorElement final : public nsGenericHTMLElement,
|
|
public nsIDOMHTMLAnchorElement,
|
|
public Link
|
|
{
|
|
public:
|
|
using Element::GetText;
|
|
using Element::SetText;
|
|
|
|
explicit HTMLAnchorElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
|
|
: nsGenericHTMLElement(aNodeInfo)
|
|
, Link(this)
|
|
{
|
|
}
|
|
|
|
// nsISupports
|
|
NS_DECL_ISUPPORTS_INHERITED
|
|
|
|
// CC
|
|
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLAnchorElement,
|
|
nsGenericHTMLElement)
|
|
|
|
virtual int32_t TabIndexDefault() override;
|
|
virtual bool Draggable() const override;
|
|
|
|
// Element
|
|
virtual bool IsInteractiveHTMLContent(bool aIgnoreTabindex) const override;
|
|
|
|
// nsIDOMHTMLAnchorElement
|
|
NS_DECL_NSIDOMHTMLANCHORELEMENT
|
|
|
|
// DOM memory reporter participant
|
|
NS_DECL_SIZEOF_EXCLUDING_THIS
|
|
|
|
virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
|
|
nsIContent* aBindingParent,
|
|
bool aCompileEventHandlers) override;
|
|
virtual void UnbindFromTree(bool aDeep = true,
|
|
bool aNullParent = true) override;
|
|
virtual bool IsHTMLFocusable(bool aWithMouse, bool *aIsFocusable, int32_t *aTabIndex) override;
|
|
|
|
virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) override;
|
|
virtual nsresult PostHandleEvent(
|
|
EventChainPostVisitor& aVisitor) override;
|
|
virtual bool IsLink(nsIURI** aURI) const override;
|
|
virtual void GetLinkTarget(nsAString& aTarget) override;
|
|
virtual already_AddRefed<nsIURI> GetHrefURI() const override;
|
|
|
|
nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
|
|
const nsAString& aValue, bool aNotify)
|
|
{
|
|
return SetAttr(aNameSpaceID, aName, nullptr, aValue, aNotify);
|
|
}
|
|
virtual nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
|
|
nsIAtom* aPrefix, const nsAString& aValue,
|
|
bool aNotify) override;
|
|
virtual nsresult UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute,
|
|
bool aNotify) override;
|
|
virtual bool ParseAttribute(int32_t aNamespaceID,
|
|
nsIAtom* aAttribute,
|
|
const nsAString& aValue,
|
|
nsAttrValue& aResult) override;
|
|
|
|
virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult) const override;
|
|
|
|
virtual EventStates IntrinsicState() const override;
|
|
|
|
virtual void OnDNSPrefetchDeferred() override;
|
|
virtual void OnDNSPrefetchRequested() override;
|
|
virtual bool HasDeferredDNSPrefetchRequest() override;
|
|
|
|
// WebIDL API
|
|
void GetHref(nsAString& aValue, ErrorResult& rv)
|
|
{
|
|
GetHTMLURIAttr(nsGkAtoms::href, aValue);
|
|
}
|
|
void SetHref(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::href, aValue, rv);
|
|
}
|
|
// The XPCOM GetTarget is OK for us
|
|
void SetTarget(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::target, aValue, rv);
|
|
}
|
|
void GetDownload(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::download, aValue);
|
|
}
|
|
void SetDownload(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::download, aValue, rv);
|
|
}
|
|
// The XPCOM GetPing is OK for us
|
|
void SetPing(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::ping, aValue, rv);
|
|
}
|
|
void GetRel(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::rel, aValue);
|
|
}
|
|
void SetRel(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::rel, aValue, rv);
|
|
}
|
|
void SetReferrer(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::referrer, aValue, rv);
|
|
}
|
|
void GetReferrer(nsAString& aReferrer)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::referrer, aReferrer);
|
|
}
|
|
nsDOMTokenList* RelList();
|
|
void GetHreflang(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::hreflang, aValue);
|
|
}
|
|
void SetHreflang(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::hreflang, aValue, rv);
|
|
}
|
|
void GetType(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::type, aValue);
|
|
}
|
|
void SetType(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::type, aValue, rv);
|
|
}
|
|
// The XPCOM GetText is OK for us
|
|
void SetText(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
rv = SetText(aValue);
|
|
}
|
|
|
|
// Link::GetOrigin is OK for us
|
|
|
|
using Link::GetProtocol;
|
|
using Link::SetProtocol;
|
|
|
|
// Link::GetUsername is OK for us
|
|
// Link::SetUsername is OK for us
|
|
|
|
// Link::GetPassword is OK for us
|
|
// Link::SetPassword is OK for us
|
|
|
|
using Link::GetHost;
|
|
using Link::SetHost;
|
|
|
|
using Link::GetHostname;
|
|
using Link::SetHostname;
|
|
|
|
using Link::GetPort;
|
|
using Link::SetPort;
|
|
|
|
using Link::GetPathname;
|
|
using Link::SetPathname;
|
|
|
|
using Link::GetSearch;
|
|
using Link::SetSearch;
|
|
|
|
using Link::GetHash;
|
|
using Link::SetHash;
|
|
|
|
// The XPCOM URI decomposition attributes are fine for us
|
|
void GetCoords(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::coords, aValue);
|
|
}
|
|
void SetCoords(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::coords, aValue, rv);
|
|
}
|
|
void GetCharset(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::charset, aValue);
|
|
}
|
|
void SetCharset(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::charset, aValue, rv);
|
|
}
|
|
void GetName(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::name, aValue);
|
|
}
|
|
void SetName(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::name, aValue, rv);
|
|
}
|
|
void GetRev(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::rev, aValue);
|
|
}
|
|
void SetRev(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::rev, aValue, rv);
|
|
}
|
|
void GetShape(DOMString& aValue)
|
|
{
|
|
GetHTMLAttr(nsGkAtoms::shape, aValue);
|
|
}
|
|
void SetShape(const nsAString& aValue, mozilla::ErrorResult& rv)
|
|
{
|
|
SetHTMLAttr(nsGkAtoms::shape, aValue, rv);
|
|
}
|
|
void Stringify(nsAString& aResult, ErrorResult& aError)
|
|
{
|
|
GetHref(aResult, aError);
|
|
}
|
|
|
|
protected:
|
|
virtual ~HTMLAnchorElement();
|
|
|
|
virtual void GetItemValueText(DOMString& text) override;
|
|
virtual void SetItemValueText(const nsAString& text) override;
|
|
virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto) override;
|
|
nsRefPtr<nsDOMTokenList > mRelList;
|
|
};
|
|
|
|
} // namespace dom
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_dom_HTMLAnchorElement_h
|