author | Masayuki Nakano <masayuki@d-toybox.com> |
Tue, 18 Mar 2014 13:48:20 +0900 | |
changeset 174006 | d3964cfadc3c6b169d821eec7be2bdf2347431b3 |
parent 174005 | 91778ceb580b76e4c1deb7bce53f4783781a004b |
child 174007 | b17a1bc1437d10e9ef353f6d39ccbf5fe9539fd3 |
push id | 41165 |
push user | masayuki@d-toybox.com |
push date | Tue, 18 Mar 2014 04:48:26 +0000 |
treeherder | mozilla-inbound@735beb5ce026 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | smaug |
bugs | 983049 |
milestone | 31.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/content/base/public/Element.h +++ b/content/base/public/Element.h @@ -97,16 +97,17 @@ enum { }; #undef ELEMENT_FLAG_BIT // Make sure we have space for our bits ASSERT_NODE_FLAGS_SPACE(ELEMENT_TYPE_SPECIFIC_BITS_OFFSET); namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; class EventChainVisitor; class EventListenerManager; namespace dom { class Link; class UndoManager; @@ -1113,17 +1114,17 @@ protected: /** * Handle status bar updates before they can be cancelled. */ nsresult PreHandleEventForLinks(EventChainPreVisitor& aVisitor); /** * Handle default actions for link event if the event isn't consumed yet. */ - nsresult PostHandleEventForLinks(nsEventChainPostVisitor& aVisitor); + nsresult PostHandleEventForLinks(EventChainPostVisitor& aVisitor); /** * Get the target of this link element. Consumers should established that * this element is a link (probably using IsLink) before calling this * function (or else why call it?) * * Note: for HTML this gets the value of the 'target' attribute; for XLink * this gets the value of the xlink:_moz_target attribute, or failing that,
--- a/content/base/src/Element.cpp +++ b/content/base/src/Element.cpp @@ -2391,17 +2391,17 @@ Element::PreHandleEventForLinks(EventCha NS_NOTREACHED("switch statements not in sync"); return NS_ERROR_UNEXPECTED; } return rv; } nsresult -Element::PostHandleEventForLinks(nsEventChainPostVisitor& aVisitor) +Element::PostHandleEventForLinks(EventChainPostVisitor& aVisitor) { // Optimisation: return early if this event doesn't interest us. // IMPORTANT: this switch and the switch below it must be kept in sync! switch (aVisitor.mEvent->message) { case NS_MOUSE_BUTTON_DOWN: case NS_MOUSE_CLICK: case NS_UI_ACTIVATE: case NS_KEY_PRESS:
--- a/content/base/src/nsINode.cpp +++ b/content/base/src/nsINode.cpp @@ -1164,17 +1164,17 @@ nsINode::DispatchEvent(nsIDOMEvent *aEve nsresult rv = nsEventDispatcher::DispatchDOMEvent(this, nullptr, aEvent, context, &status); *aRetVal = (status != nsEventStatus_eConsumeNoDefault); return rv; } nsresult -nsINode::PostHandleEvent(nsEventChainPostVisitor& /*aVisitor*/) +nsINode::PostHandleEvent(EventChainPostVisitor& /*aVisitor*/) { return NS_OK; } nsresult nsINode::DispatchDOMEvent(WidgetEvent* aEvent, nsIDOMEvent* aDOMEvent, nsPresContext* aPresContext,
--- a/content/html/content/src/HTMLAnchorElement.cpp +++ b/content/html/content/src/HTMLAnchorElement.cpp @@ -246,17 +246,17 @@ HTMLAnchorElement::IsHTMLFocusable(bool nsresult HTMLAnchorElement::PreHandleEvent(EventChainPreVisitor& aVisitor) { return PreHandleEventForAnchors(aVisitor); } nsresult -HTMLAnchorElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLAnchorElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { return PostHandleEventForAnchors(aVisitor); } bool HTMLAnchorElement::IsLink(nsIURI** aURI) const { return IsHTMLLink(aURI);
--- a/content/html/content/src/HTMLAnchorElement.h +++ b/content/html/content/src/HTMLAnchorElement.h @@ -9,16 +9,17 @@ #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 MOZ_FINAL : public nsGenericHTMLElement, public nsIDOMHTMLAnchorElement, public Link { public: @@ -51,17 +52,18 @@ public: virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; virtual void UnbindFromTree(bool aDeep = true, bool aNullParent = true) MOZ_OVERRIDE; virtual bool IsHTMLFocusable(bool aWithMouse, bool *aIsFocusable, int32_t *aTabIndex) MOZ_OVERRIDE; virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual bool IsLink(nsIURI** aURI) const MOZ_OVERRIDE; virtual void GetLinkTarget(nsAString& aTarget) MOZ_OVERRIDE; virtual already_AddRefed<nsIURI> GetHrefURI() const MOZ_OVERRIDE; nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName, const nsAString& aValue, bool aNotify) { return SetAttr(aNameSpaceID, aName, nullptr, aValue, aNotify);
--- a/content/html/content/src/HTMLAreaElement.cpp +++ b/content/html/content/src/HTMLAreaElement.cpp @@ -94,17 +94,17 @@ HTMLAreaElement::SetTarget(const nsAStri nsresult HTMLAreaElement::PreHandleEvent(EventChainPreVisitor& aVisitor) { return PreHandleEventForAnchors(aVisitor); } nsresult -HTMLAreaElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLAreaElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { return PostHandleEventForAnchors(aVisitor); } bool HTMLAreaElement::IsLink(nsIURI** aURI) const { return IsHTMLLink(aURI);
--- a/content/html/content/src/HTMLAreaElement.h +++ b/content/html/content/src/HTMLAreaElement.h @@ -13,16 +13,17 @@ #include "nsGkAtoms.h" #include "nsDOMTokenList.h" #include "nsIDOMHTMLAreaElement.h" #include "nsIURL.h" class nsIDocument; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLAreaElement MOZ_FINAL : public nsGenericHTMLElement, public nsIDOMHTMLAreaElement, public Link { public: @@ -40,17 +41,17 @@ public: NS_DECL_SIZEOF_EXCLUDING_THIS virtual int32_t TabIndexDefault() MOZ_OVERRIDE; // nsIDOMHTMLAreaElement NS_DECL_NSIDOMHTMLAREAELEMENT virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent(EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual bool IsLink(nsIURI** aURI) const MOZ_OVERRIDE; virtual void GetLinkTarget(nsAString& aTarget) MOZ_OVERRIDE; virtual already_AddRefed<nsIURI> GetHrefURI() const MOZ_OVERRIDE; virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; virtual void UnbindFromTree(bool aDeep = true,
--- a/content/html/content/src/HTMLButtonElement.cpp +++ b/content/html/content/src/HTMLButtonElement.cpp @@ -214,17 +214,17 @@ HTMLButtonElement::PreHandleEvent(EventC mForm->OnSubmitClickBegin(this); } } return nsGenericHTMLElement::PreHandleEvent(aVisitor); } nsresult -HTMLButtonElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLButtonElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { nsresult rv = NS_OK; if (!aVisitor.mPresContext) { return rv; } if (aVisitor.mEventStatus != nsEventStatus_eConsumeNoDefault) { WidgetMouseEvent* mouseEvent = aVisitor.mEvent->AsMouseEvent();
--- a/content/html/content/src/HTMLButtonElement.h +++ b/content/html/content/src/HTMLButtonElement.h @@ -7,16 +7,17 @@ #define mozilla_dom_HTMLButtonElement_h #include "mozilla/Attributes.h" #include "nsGenericHTMLElement.h" #include "nsIDOMHTMLButtonElement.h" #include "nsIConstraintValidation.h" namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLButtonElement MOZ_FINAL : public nsGenericHTMLFormElementWithState, public nsIDOMHTMLButtonElement, public nsIConstraintValidation { public: @@ -44,17 +45,18 @@ public: NS_IMETHOD Reset() MOZ_OVERRIDE; NS_IMETHOD SubmitNamesValues(nsFormSubmission* aFormSubmission) MOZ_OVERRIDE; NS_IMETHOD SaveState() MOZ_OVERRIDE; bool RestoreState(nsPresState* aState) MOZ_OVERRIDE; virtual bool IsDisabledForEvents(uint32_t aMessage) MOZ_OVERRIDE; // nsIDOMEventTarget virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; // nsINode virtual nsresult Clone(nsINodeInfo* aNodeInfo, nsINode** aResult) const MOZ_OVERRIDE; virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aScope) MOZ_OVERRIDE; // nsIContent virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
--- a/content/html/content/src/HTMLFormElement.cpp +++ b/content/html/content/src/HTMLFormElement.cpp @@ -506,32 +506,32 @@ HTMLFormElement::PreHandleEvent(EventCha } mGeneratingReset = true; } } return nsGenericHTMLElement::PreHandleEvent(aVisitor); } nsresult -HTMLFormElement::WillHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLFormElement::WillHandleEvent(EventChainPostVisitor& aVisitor) { // If this is the bubble stage and there is a nested form below us which // received a submit event we do *not* want to handle the submit event // for this form too. if ((aVisitor.mEvent->message == NS_FORM_SUBMIT || aVisitor.mEvent->message == NS_FORM_RESET) && aVisitor.mEvent->mFlags.mInBubblingPhase && aVisitor.mEvent->originalTarget != static_cast<nsIContent*>(this)) { aVisitor.mEvent->mFlags.mPropagationStopped = true; } return NS_OK; } nsresult -HTMLFormElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLFormElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { if (aVisitor.mEvent->originalTarget == static_cast<nsIContent*>(this)) { uint32_t msg = aVisitor.mEvent->message; if (msg == NS_FORM_SUBMIT) { // let the form know not to defer subsequent submissions mDeferSubmission = false; }
--- a/content/html/content/src/HTMLFormElement.h +++ b/content/html/content/src/HTMLFormElement.h @@ -22,16 +22,17 @@ #include "nsRefPtrHashtable.h" #include "nsDataHashtable.h" #include "jsfriendapi.h" // For js::ExpandoAndGeneration class nsIMutableArray; class nsIURI; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLFormControlsCollection; class HTMLImageElement; class HTMLFormElement MOZ_FINAL : public nsGenericHTMLElement, public nsIDOMHTMLFormElement, public nsIWebProgressListener, @@ -86,18 +87,20 @@ public: virtual nsEventStates IntrinsicState() const MOZ_OVERRIDE; // nsIContent virtual bool ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute, const nsAString& aValue, nsAttrValue& aResult) MOZ_OVERRIDE; virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult WillHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult WillHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; virtual void UnbindFromTree(bool aDeep = true, bool aNullParent = true) MOZ_OVERRIDE; nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName, const nsAString& aValue, bool aNotify)
--- a/content/html/content/src/HTMLInputElement.cpp +++ b/content/html/content/src/HTMLInputElement.cpp @@ -3726,17 +3726,17 @@ HTMLInputElement::ShouldPreventDOMActiva return target->GetParent() == this && target->IsRootOfNativeAnonymousSubtree() && target->AttrValueIs(kNameSpaceID_None, nsGkAtoms::type, nsGkAtoms::button, eCaseMatters); } nsresult -HTMLInputElement::MaybeInitPickers(nsEventChainPostVisitor& aVisitor) +HTMLInputElement::MaybeInitPickers(EventChainPostVisitor& aVisitor) { // Open a file picker when we receive a click on a <input type='file'>, or // open a color picker when we receive a click on a <input type='color'>. // A click is handled in the following cases: // - preventDefault() has not been called (or something similar); // - it's the left mouse button. // We do not prevent non-trusted click because authors can already use // .click(). However, the pickers will follow the rules of popup-blocking. @@ -3752,17 +3752,17 @@ HTMLInputElement::MaybeInitPickers(nsEve } if (mType == NS_FORM_INPUT_COLOR) { return InitColorPicker(); } return NS_OK; } nsresult -HTMLInputElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLInputElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { if (!aVisitor.mPresContext) { // Hack alert! In order to open file picker even in case the element isn't // in document, try to init picker even without PresContext. return MaybeInitPickers(aVisitor); } if (aVisitor.mEvent->message == NS_FOCUS_CONTENT || @@ -4235,17 +4235,17 @@ HTMLInputElement::PostHandleEvent(nsEven if (NS_SUCCEEDED(rv) && mType == NS_FORM_INPUT_RANGE) { PostHandleEventForRangeThumb(aVisitor); } return MaybeInitPickers(aVisitor); } void -HTMLInputElement::PostHandleEventForRangeThumb(nsEventChainPostVisitor& aVisitor) +HTMLInputElement::PostHandleEventForRangeThumb(EventChainPostVisitor& aVisitor) { MOZ_ASSERT(mType == NS_FORM_INPUT_RANGE); if (nsEventStatus_eConsumeNoDefault == aVisitor.mEventStatus || !(aVisitor.mEvent->eventStructType == NS_MOUSE_EVENT || aVisitor.mEvent->eventStructType == NS_TOUCH_EVENT || aVisitor.mEvent->eventStructType == NS_KEY_EVENT)) { return;
--- a/content/html/content/src/HTMLInputElement.h +++ b/content/html/content/src/HTMLInputElement.h @@ -25,16 +25,17 @@ class nsDOMFileList; class nsIRadioGroupContainer; class nsIRadioGroupVisitor; class nsIRadioVisitor; class nsTextEditorState; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class Date; class DirPickerFileListBuilderTask; class UploadLastDir MOZ_FINAL : public nsIObserver, public nsSupportsWeakReference { @@ -147,18 +148,19 @@ public: const nsAString& aValue, nsAttrValue& aResult) MOZ_OVERRIDE; virtual nsChangeHint GetAttributeChangeHint(const nsIAtom* aAttribute, int32_t aModType) const MOZ_OVERRIDE; NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const MOZ_OVERRIDE; virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const MOZ_OVERRIDE; virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; - void PostHandleEventForRangeThumb(nsEventChainPostVisitor& aVisitor); + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + void PostHandleEventForRangeThumb(EventChainPostVisitor& aVisitor); void StartRangeThumbDrag(WidgetGUIEvent* aEvent); void FinishRangeThumbDrag(WidgetGUIEvent* aEvent = nullptr); void CancelRangeThumbDrag(bool aIsForUserEvent = true); void SetValueOfRangeForUserEvent(Decimal aValue); virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; @@ -1177,17 +1179,17 @@ protected: */ bool ShouldPreventDOMActivateDispatch(EventTarget* aOriginalTarget); /** * Some input type (color and file) let user choose a value using a picker: * this function checks if it is needed, and if so, open the corresponding * picker (color picker or file picker). */ - nsresult MaybeInitPickers(nsEventChainPostVisitor& aVisitor); + nsresult MaybeInitPickers(EventChainPostVisitor& aVisitor); enum FilePickerType { FILE_PICKER_FILE, FILE_PICKER_DIRECTORY }; nsresult InitFilePicker(FilePickerType aType); nsresult InitColorPicker();
--- a/content/html/content/src/HTMLLabelElement.cpp +++ b/content/html/content/src/HTMLLabelElement.cpp @@ -107,17 +107,17 @@ DestroyMouseDownPoint(void * /*aObjec void * aPropertyValue, void * /*aData*/) { LayoutDeviceIntPoint* pt = static_cast<LayoutDeviceIntPoint*>(aPropertyValue); delete pt; } nsresult -HTMLLabelElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLLabelElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { WidgetMouseEvent* mouseEvent = aVisitor.mEvent->AsMouseEvent(); if (mHandlingEvent || (!(mouseEvent && mouseEvent->IsLeftClickEvent()) && aVisitor.mEvent->message != NS_MOUSE_BUTTON_DOWN) || aVisitor.mEventStatus == nsEventStatus_eConsumeNoDefault || !aVisitor.mPresContext || // Don't handle the event if it's already been handled by another label
--- a/content/html/content/src/HTMLLabelElement.h +++ b/content/html/content/src/HTMLLabelElement.h @@ -9,16 +9,17 @@ #ifndef HTMLLabelElement_h #define HTMLLabelElement_h #include "mozilla/Attributes.h" #include "nsGenericHTMLElement.h" #include "nsIDOMHTMLLabelElement.h" namespace mozilla { +class EventChainPostVisitor; namespace dom { class HTMLLabelElement MOZ_FINAL : public nsGenericHTMLFormElement, public nsIDOMHTMLLabelElement { public: HTMLLabelElement(already_AddRefed<nsINodeInfo>& aNodeInfo) : nsGenericHTMLFormElement(aNodeInfo), @@ -55,17 +56,18 @@ public: // nsIFormControl NS_IMETHOD_(uint32_t) GetType() const MOZ_OVERRIDE { return NS_FORM_LABEL; } NS_IMETHOD Reset() MOZ_OVERRIDE; NS_IMETHOD SubmitNamesValues(nsFormSubmission* aFormSubmission) MOZ_OVERRIDE; virtual bool IsDisabled() const MOZ_OVERRIDE { return false; } // nsIContent - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual void PerformAccesskey(bool aKeyCausesActivation, bool aIsTrustedEvent) MOZ_OVERRIDE; virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const MOZ_OVERRIDE; nsGenericHTMLElement* GetLabeledElement() const; protected: virtual JSObject* WrapNode(JSContext *aCx, JS::Handle<JSObject*> aScope) MOZ_OVERRIDE;
--- a/content/html/content/src/HTMLLinkElement.cpp +++ b/content/html/content/src/HTMLLinkElement.cpp @@ -304,17 +304,17 @@ HTMLLinkElement::UnsetAttr(int32_t aName nsresult HTMLLinkElement::PreHandleEvent(EventChainPreVisitor& aVisitor) { return PreHandleEventForAnchors(aVisitor); } nsresult -HTMLLinkElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLLinkElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { return PostHandleEventForAnchors(aVisitor); } bool HTMLLinkElement::IsLink(nsIURI** aURI) const { return IsHTMLLink(aURI);
--- a/content/html/content/src/HTMLLinkElement.h +++ b/content/html/content/src/HTMLLinkElement.h @@ -8,16 +8,17 @@ #include "mozilla/Attributes.h" #include "mozilla/dom/Link.h" #include "nsGenericHTMLElement.h" #include "nsIDOMHTMLLinkElement.h" #include "nsStyleLinkElement.h" namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLLinkElement MOZ_FINAL : public nsGenericHTMLElement, public nsIDOMHTMLLinkElement, public nsStyleLinkElement, public Link { @@ -38,17 +39,18 @@ public: // DOM memory reporter participant NS_DECL_SIZEOF_EXCLUDING_THIS void LinkAdded(); void LinkRemoved(); // nsIDOMEventTarget virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; // nsINode virtual nsresult Clone(nsINodeInfo* aNodeInfo, nsINode** aResult) const MOZ_OVERRIDE; virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aScope) MOZ_OVERRIDE; // nsIContent virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
--- a/content/html/content/src/HTMLMenuItemElement.cpp +++ b/content/html/content/src/HTMLMenuItemElement.cpp @@ -281,17 +281,17 @@ HTMLMenuItemElement::PreHandleEvent(Even // We must cache type because mType may change during JS event. aVisitor.mItemFlags |= mType; } return nsGenericHTMLElement::PreHandleEvent(aVisitor); } nsresult -HTMLMenuItemElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLMenuItemElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { // Check to see if the event was cancelled. if (aVisitor.mEvent->message == NS_MOUSE_CLICK && aVisitor.mItemFlags & NS_CHECKED_IS_TOGGLED && aVisitor.mEventStatus == nsEventStatus_eConsumeNoDefault) { bool originalCheckedValue = !!(aVisitor.mItemFlags & NS_ORIGINAL_CHECKED_VALUE); uint8_t oldType = NS_MENUITEM_TYPE(aVisitor.mItemFlags);
--- a/content/html/content/src/HTMLMenuItemElement.h +++ b/content/html/content/src/HTMLMenuItemElement.h @@ -32,17 +32,18 @@ public: // nsISupports NS_DECL_ISUPPORTS_INHERITED // nsIDOMHTMLMenuItemElement NS_DECL_NSIDOMHTMLMENUITEMELEMENT virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; virtual bool ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute, const nsAString& aValue,
--- a/content/html/content/src/HTMLSelectElement.cpp +++ b/content/html/content/src/HTMLSelectElement.cpp @@ -1484,17 +1484,17 @@ HTMLSelectElement::PreHandleEvent(EventC if (IsDisabledForEvents(aVisitor.mEvent->message)) { return NS_OK; } return nsGenericHTMLFormElementWithState::PreHandleEvent(aVisitor); } nsresult -HTMLSelectElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLSelectElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { if (aVisitor.mEvent->message == NS_FOCUS_CONTENT) { // If the invalid UI is shown, we should show it while focused and // update the invalid/valid UI. mCanShowInvalidUI = !IsValid() && ShouldShowValidityUI(); // If neither invalid UI nor valid UI is shown, we shouldn't show the valid // UI while focused.
--- a/content/html/content/src/HTMLSelectElement.h +++ b/content/html/content/src/HTMLSelectElement.h @@ -21,16 +21,17 @@ class nsContentList; class nsIDOMHTMLOptionElement; class nsIHTMLCollection; class nsISelectControlFrame; class nsPresState; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLSelectElement; #define NS_SELECT_STATE_IID \ { /* 4db54c7c-d159-455f-9d8e-f60ee466dbf3 */ \ @@ -258,17 +259,18 @@ public: // nsINode virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aScope) MOZ_OVERRIDE; // nsIContent virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual bool IsHTMLFocusable(bool aWithMouse, bool* aIsFocusable, int32_t* aTabIndex) MOZ_OVERRIDE; virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex, bool aNotify) MOZ_OVERRIDE; virtual void RemoveChildAt(uint32_t aIndex, bool aNotify) MOZ_OVERRIDE; // Overriden nsIFormControl methods NS_IMETHOD_(uint32_t) GetType() const MOZ_OVERRIDE { return NS_FORM_SELECT; }
--- a/content/html/content/src/HTMLTextAreaElement.cpp +++ b/content/html/content/src/HTMLTextAreaElement.cpp @@ -504,17 +504,17 @@ HTMLTextAreaElement::FireChangeEventIfNe mFocusedValue = value; nsContentUtils::DispatchTrustedEvent(OwnerDoc(), static_cast<nsIContent*>(this), NS_LITERAL_STRING("change"), true, false); } nsresult -HTMLTextAreaElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +HTMLTextAreaElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { if (aVisitor.mEvent->message == NS_FORM_SELECTED) { mHandlingSelect = false; } if (aVisitor.mEvent->message == NS_FOCUS_CONTENT || aVisitor.mEvent->message == NS_BLUR_CONTENT) { if (aVisitor.mEvent->message == NS_FOCUS_CONTENT) {
--- a/content/html/content/src/HTMLTextAreaElement.h +++ b/content/html/content/src/HTMLTextAreaElement.h @@ -25,16 +25,17 @@ class nsFormSubmission; class nsIControllers; class nsIDocument; class nsPresContext; class nsPresState; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class HTMLTextAreaElement MOZ_FINAL : public nsGenericHTMLFormElementWithState, public nsIDOMHTMLTextAreaElement, public nsITextControlElement, public nsIDOMNSEditableElement, @@ -112,17 +113,18 @@ public: const nsAString& aValue, nsAttrValue& aResult) MOZ_OVERRIDE; virtual nsMapRuleToAttributesFunc GetAttributeMappingFunction() const MOZ_OVERRIDE; virtual nsChangeHint GetAttributeChangeHint(const nsIAtom* aAttribute, int32_t aModType) const MOZ_OVERRIDE; NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const MOZ_OVERRIDE; virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual bool IsHTMLFocusable(bool aWithMouse, bool *aIsFocusable, int32_t *aTabIndex) MOZ_OVERRIDE; virtual void DoneAddingChildren(bool aHaveNotified) MOZ_OVERRIDE; virtual bool IsDoneAddingChildren() MOZ_OVERRIDE; virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const MOZ_OVERRIDE;
--- a/content/html/content/src/nsGenericHTMLElement.cpp +++ b/content/html/content/src/nsGenericHTMLElement.cpp @@ -726,17 +726,17 @@ nsGenericHTMLElement::PreHandleEventForA if (!CheckHandleEventForAnchorsPreconditions(aVisitor)) { return NS_OK; } return PreHandleEventForLinks(aVisitor); } nsresult -nsGenericHTMLElement::PostHandleEventForAnchors(nsEventChainPostVisitor& aVisitor) +nsGenericHTMLElement::PostHandleEventForAnchors(EventChainPostVisitor& aVisitor) { if (!CheckHandleEventForAnchorsPreconditions(aVisitor)) { return NS_OK; } return PostHandleEventForLinks(aVisitor); }
--- a/content/html/content/src/nsGenericHTMLElement.h +++ b/content/html/content/src/nsGenericHTMLElement.h @@ -35,16 +35,17 @@ class nsILayoutHistoryState; class nsIEditor; struct nsRect; struct nsSize; class nsIDOMHTMLMenuElement; class nsIDOMHTMLCollection; class nsDOMSettableTokenList; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; class EventChainVisitor; class EventListenerManager; namespace dom { class HTMLFormElement; class HTMLPropertiesCollection; class HTMLMenuElement; } @@ -588,17 +589,17 @@ public: /** * Check if an event for an anchor can be handled * @return true if the event can be handled, false otherwise */ bool CheckHandleEventForAnchorsPreconditions( mozilla::EventChainVisitor& aVisitor); nsresult PreHandleEventForAnchors(mozilla::EventChainPreVisitor& aVisitor); - nsresult PostHandleEventForAnchors(nsEventChainPostVisitor& aVisitor); + nsresult PostHandleEventForAnchors(mozilla::EventChainPostVisitor& aVisitor); bool IsHTMLLink(nsIURI** aURI) const; // HTML element methods void Compact() { mAttrsAndChildren.Compact(); } virtual void UpdateEditableState(bool aNotify) MOZ_OVERRIDE; virtual nsEventStates IntrinsicState() const MOZ_OVERRIDE;
--- a/content/mathml/content/src/nsMathMLElement.cpp +++ b/content/mathml/content/src/nsMathMLElement.cpp @@ -902,17 +902,17 @@ nsMathMLElement::PreHandleEvent(EventCha { nsresult rv = Element::PreHandleEvent(aVisitor); NS_ENSURE_SUCCESS(rv, rv); return PreHandleEventForLinks(aVisitor); } nsresult -nsMathMLElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +nsMathMLElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { return PostHandleEventForLinks(aVisitor); } NS_IMPL_ELEMENT_CLONE(nsMathMLElement) nsEventStates nsMathMLElement::IntrinsicState() const
--- a/content/mathml/content/src/nsMathMLElement.h +++ b/content/mathml/content/src/nsMathMLElement.h @@ -13,16 +13,17 @@ #include "Link.h" #include "mozilla/dom/DOMRect.h" class nsCSSValue; typedef nsMappedAttributeElement nsMathMLElementBase; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; } // namespace mozilla /* * The base class for MathML elements. */ class nsMathMLElement MOZ_FINAL : public nsMathMLElementBase, public nsIDOMElement, @@ -69,17 +70,18 @@ public: uint32_t aFlags, nsIDocument* aDocument); static void MapMathMLAttributesInto(const nsMappedAttributes* aAttributes, nsRuleData* aRuleData); virtual nsresult PreHandleEvent( mozilla::EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + mozilla::EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; nsresult Clone(nsINodeInfo*, nsINode**) const MOZ_OVERRIDE; virtual nsEventStates IntrinsicState() const MOZ_OVERRIDE; virtual bool IsNodeOfType(uint32_t aFlags) const MOZ_OVERRIDE; // Set during reflow as necessary. Does a style change notification, // aNotify must be true. void SetIncrementScriptLevel(bool aIncrementScriptLevel, bool aNotify); bool GetIncrementScriptLevel() const {
--- a/content/svg/content/src/SVGAElement.cpp +++ b/content/svg/content/src/SVGAElement.cpp @@ -81,17 +81,17 @@ SVGAElement::PreHandleEvent(EventChainPr { nsresult rv = Element::PreHandleEvent(aVisitor); NS_ENSURE_SUCCESS(rv, rv); return PreHandleEventForLinks(aVisitor); } nsresult -SVGAElement::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +SVGAElement::PostHandleEvent(EventChainPostVisitor& aVisitor) { return PostHandleEventForLinks(aVisitor); } NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGAElement) //----------------------------------------------------------------------
--- a/content/svg/content/src/SVGAElement.h +++ b/content/svg/content/src/SVGAElement.h @@ -10,16 +10,17 @@ #include "nsSVGString.h" #include "mozilla/dom/SVGGraphicsElement.h" nsresult NS_NewSVGAElement(nsIContent **aResult, already_AddRefed<nsINodeInfo>&& aNodeInfo); namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { typedef SVGGraphicsElement SVGAElementBase; class SVGAElement MOZ_FINAL : public SVGAElementBase, public Link @@ -32,17 +33,18 @@ protected: JS::Handle<JSObject*> scope) MOZ_OVERRIDE; public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(SVGAElement, SVGAElementBase) // nsINode interface methods virtual nsresult PreHandleEvent(EventChainPreVisitor& aVisitor) MOZ_OVERRIDE; - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const MOZ_OVERRIDE; // nsIContent virtual nsresult BindToTree(nsIDocument *aDocument, nsIContent *aParent, nsIContent *aBindingParent, bool aCompileEventHandlers) MOZ_OVERRIDE; virtual void UnbindFromTree(bool aDeep = true, bool aNullParent = true) MOZ_OVERRIDE;
--- a/dom/base/nsGlobalWindow.cpp +++ b/dom/base/nsGlobalWindow.cpp @@ -2946,17 +2946,17 @@ nsGlobalWindow::GetTargetForDOMEvent() EventTarget* nsGlobalWindow::GetTargetForEventTargetChain() { return IsInnerWindow() ? this : GetCurrentInnerWindowInternal(); } nsresult -nsGlobalWindow::WillHandleEvent(nsEventChainPostVisitor& aVisitor) +nsGlobalWindow::WillHandleEvent(EventChainPostVisitor& aVisitor) { return NS_OK; } JSContext* nsGlobalWindow::GetJSContextForEventHandlers() { return nullptr; @@ -3157,17 +3157,17 @@ nsGlobalWindow::EnableDialogs() // TODO: Warn if no top window? topWindow = topWindow->GetCurrentInnerWindowInternal(); if (topWindow) { topWindow->mAreDialogsEnabled = true; } } nsresult -nsGlobalWindow::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +nsGlobalWindow::PostHandleEvent(EventChainPostVisitor& aVisitor) { NS_PRECONDITION(IsInnerWindow(), "PostHandleEvent is used on outer window!?"); // Return early if there is nothing to do. switch (aVisitor.mEvent->message) { case NS_RESIZE_EVENT: case NS_PAGE_UNLOAD: case NS_LOAD:
--- a/dom/base/nsWindowRoot.cpp +++ b/dom/base/nsWindowRoot.cpp @@ -174,17 +174,17 @@ nsWindowRoot::PreHandleEvent(EventChainP aVisitor.mForceContentDispatch = true; //FIXME! Bug 329119 // To keep mWindow alive aVisitor.mItemData = static_cast<nsISupports *>(mWindow); aVisitor.mParentTarget = mParent; return NS_OK; } nsresult -nsWindowRoot::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +nsWindowRoot::PostHandleEvent(EventChainPostVisitor& aVisitor) { return NS_OK; } nsIDOMWindow* nsWindowRoot::GetOwnerGlobal() { return GetWindow();
--- a/dom/base/nsWindowRoot.h +++ b/dom/base/nsWindowRoot.h @@ -5,19 +5,19 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef nsWindowRoot_h__ #define nsWindowRoot_h__ class nsPIDOMWindow; class nsIDOMEventListener; class nsIDOMEvent; -class nsEventChainPostVisitor; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; } // namespace mozilla #include "mozilla/Attributes.h" #include "mozilla/EventListenerManager.h" #include "nsIDOMEventTarget.h" #include "nsPIWindowRoot.h" #include "nsCycleCollectionParticipant.h"
--- a/dom/devicestorage/nsDeviceStorage.cpp +++ b/dom/devicestorage/nsDeviceStorage.cpp @@ -4277,23 +4277,23 @@ nsDOMDeviceStorage::GetTargetForEventTar nsresult nsDOMDeviceStorage::PreHandleEvent(EventChainPreVisitor& aVisitor) { return nsDOMEventTargetHelper::PreHandleEvent(aVisitor); } nsresult -nsDOMDeviceStorage::WillHandleEvent(nsEventChainPostVisitor & aVisitor) +nsDOMDeviceStorage::WillHandleEvent(EventChainPostVisitor& aVisitor) { return nsDOMEventTargetHelper::WillHandleEvent(aVisitor); } nsresult -nsDOMDeviceStorage::PostHandleEvent(nsEventChainPostVisitor & aVisitor) +nsDOMDeviceStorage::PostHandleEvent(EventChainPostVisitor& aVisitor) { return nsDOMEventTargetHelper::PostHandleEvent(aVisitor); } nsresult nsDOMDeviceStorage::DispatchDOMEvent(WidgetEvent* aEvent, nsIDOMEvent* aDOMEvent, nsPresContext* aPresContext,
--- a/dom/events/nsDOMEventTargetHelper.cpp +++ b/dom/events/nsDOMEventTargetHelper.cpp @@ -300,17 +300,17 @@ nsresult nsDOMEventTargetHelper::PreHandleEvent(EventChainPreVisitor& aVisitor) { aVisitor.mCanHandle = true; aVisitor.mParentTarget = nullptr; return NS_OK; } nsresult -nsDOMEventTargetHelper::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +nsDOMEventTargetHelper::PostHandleEvent(EventChainPostVisitor& aVisitor) { return NS_OK; } nsresult nsDOMEventTargetHelper::DispatchDOMEvent(WidgetEvent* aEvent, nsIDOMEvent* aDOMEvent, nsPresContext* aPresContext,
--- a/dom/events/nsDOMEventTargetHelper.h +++ b/dom/events/nsDOMEventTargetHelper.h @@ -236,20 +236,22 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsDOMEvent return _to DispatchEvent(evt, _retval); \ } \ virtual mozilla::dom::EventTarget* GetTargetForDOMEvent() { \ return _to GetTargetForDOMEvent(); \ } \ virtual mozilla::dom::EventTarget* GetTargetForEventTargetChain() { \ return _to GetTargetForEventTargetChain(); \ } \ - virtual nsresult WillHandleEvent(nsEventChainPostVisitor & aVisitor) { \ + virtual nsresult WillHandleEvent( \ + mozilla::EventChainPostVisitor & aVisitor) { \ return _to WillHandleEvent(aVisitor); \ } \ - virtual nsresult PostHandleEvent(nsEventChainPostVisitor & aVisitor) { \ + virtual nsresult PostHandleEvent( \ + mozilla::EventChainPostVisitor & aVisitor) { \ return _to PostHandleEvent(aVisitor); \ } \ virtual nsresult DispatchDOMEvent(mozilla::WidgetEvent* aEvent, nsIDOMEvent* aDOMEvent, nsPresContext* aPresContext, nsEventStatus* aEventStatus) { \ return _to DispatchDOMEvent(aEvent, aDOMEvent, aPresContext, aEventStatus); \ } \ virtual mozilla::EventListenerManager* GetOrCreateListenerManager() { \ return _to GetOrCreateListenerManager(); \ } \
--- a/dom/events/nsEventDispatcher.cpp +++ b/dom/events/nsEventDispatcher.cpp @@ -151,31 +151,31 @@ public: /** * Dispatches event through the event target chain. * Handles capture, target and bubble phases both in default * and system event group and calls also PostHandleEvent for each * item in the chain. */ static void HandleEventTargetChain(nsTArray<nsEventTargetChainItem>& aChain, - nsEventChainPostVisitor& aVisitor, + EventChainPostVisitor& aVisitor, nsDispatchingCallback* aCallback, ELMCreationDetector& aCd); /** * Resets aVisitor object and calls PreHandleEvent. * Copies mItemFlags and mItemData to the current nsEventTargetChainItem. */ void PreHandleEvent(EventChainPreVisitor& aVisitor); /** * If the current item in the event target chain has an event listener * manager, this method calls EventListenerManager::HandleEvent(). */ - void HandleEvent(nsEventChainPostVisitor& aVisitor, + void HandleEvent(EventChainPostVisitor& aVisitor, ELMCreationDetector& aCd) { if (WantsWillHandleEvent()) { mTarget->WillHandleEvent(aVisitor); } if (aVisitor.mEvent->mFlags.mPropagationStopped) { return; } @@ -195,17 +195,17 @@ public: NS_ASSERTION(aVisitor.mEvent->currentTarget == nullptr, "CurrentTarget should be null!"); } } /** * Copies mItemFlags and mItemData to aVisitor and calls PostHandleEvent. */ - void PostHandleEvent(nsEventChainPostVisitor& aVisitor); + void PostHandleEvent(EventChainPostVisitor& aVisitor); nsCOMPtr<EventTarget> mTarget; uint16_t mFlags; uint16_t mItemFlags; nsCOMPtr<nsISupports> mItemData; // Event retargeting must happen whenever mNewTarget is non-null. nsCOMPtr<EventTarget> mNewTarget; // Cache mTarget's event listener manager. @@ -226,27 +226,27 @@ nsEventTargetChainItem::PreHandleEvent(E SetForceContentDispatch(aVisitor.mForceContentDispatch); SetWantsWillHandleEvent(aVisitor.mWantsWillHandleEvent); SetMayHaveListenerManager(aVisitor.mMayHaveListenerManager); mItemFlags = aVisitor.mItemFlags; mItemData = aVisitor.mItemData; } void -nsEventTargetChainItem::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +nsEventTargetChainItem::PostHandleEvent(EventChainPostVisitor& aVisitor) { aVisitor.mItemFlags = mItemFlags; aVisitor.mItemData = mItemData; mTarget->PostHandleEvent(aVisitor); } void nsEventTargetChainItem::HandleEventTargetChain( nsTArray<nsEventTargetChainItem>& aChain, - nsEventChainPostVisitor& aVisitor, + EventChainPostVisitor& aVisitor, nsDispatchingCallback* aCallback, ELMCreationDetector& aCd) { // Save the target so that it can be restored later. nsCOMPtr<EventTarget> firstTarget = aVisitor.mEvent->target; uint32_t chainLength = aChain.Length(); // Capture @@ -583,17 +583,17 @@ nsEventDispatcher::Dispatch(nsISupports* if (aTargets) { aTargets->Clear(); aTargets->SetCapacity(chain.Length()); for (uint32_t i = 0; i < chain.Length(); ++i) { aTargets->AppendObject(chain[i].CurrentTarget()->GetTargetForDOMEvent()); } } else { // Event target chain is created. Handle the chain. - nsEventChainPostVisitor postVisitor(preVisitor); + EventChainPostVisitor postVisitor(preVisitor); nsEventTargetChainItem::HandleEventTargetChain(chain, postVisitor, aCallback, cd); preVisitor.mEventStatus = postVisitor.mEventStatus; // If the DOM event was created during event flow. if (!preVisitor.mDOMEvent && postVisitor.mDOMEvent) {
--- a/dom/events/nsEventDispatcher.h +++ b/dom/events/nsEventDispatcher.h @@ -191,37 +191,37 @@ public: /** * If the event needs to be retargeted, this is the event target, * which should be used when the event is handled at mParentTarget. */ dom::EventTarget* mEventTargetAtParent; }; -} // namespace mozilla - -class nsEventChainPostVisitor : public mozilla::EventChainVisitor +class EventChainPostVisitor : public mozilla::EventChainVisitor { public: - nsEventChainPostVisitor(mozilla::EventChainVisitor& aOther) - : mozilla::EventChainVisitor(aOther.mPresContext, aOther.mEvent, - aOther.mDOMEvent, aOther.mEventStatus) + EventChainPostVisitor(EventChainVisitor& aOther) + : EventChainVisitor(aOther.mPresContext, aOther.mEvent, + aOther.mDOMEvent, aOther.mEventStatus) { } }; +} // namespace mozilla + /** * If an nsDispatchingCallback object is passed to Dispatch, * its HandleEvent method is called after handling the default event group, * before handling the system event group. * This is used in nsPresShell. */ class MOZ_STACK_CLASS nsDispatchingCallback { public: - virtual void HandleEvent(nsEventChainPostVisitor& aVisitor) = 0; + virtual void HandleEvent(mozilla::EventChainPostVisitor& aVisitor) = 0; }; /** * The generic class for event dispatching. * Must not be used outside Gecko! */ class nsEventDispatcher {
--- a/dom/events/nsEventStateManager.cpp +++ b/dom/events/nsEventStateManager.cpp @@ -4033,17 +4033,17 @@ nsEventStateManager::SetCursor(int32_t a return NS_OK; } class MOZ_STACK_CLASS nsESMEventCB : public nsDispatchingCallback { public: nsESMEventCB(nsIContent* aTarget) : mTarget(aTarget) {} - virtual void HandleEvent(nsEventChainPostVisitor& aVisitor) + virtual void HandleEvent(EventChainPostVisitor& aVisitor) { if (aVisitor.mPresContext) { nsIFrame* frame = aVisitor.mPresContext->GetPrimaryFrameFor(mTarget); if (frame) { frame->HandleEvent(aVisitor.mPresContext, aVisitor.mEvent->AsGUIEvent(), &aVisitor.mEventStatus); }
--- a/dom/indexedDB/IDBDatabase.cpp +++ b/dom/indexedDB/IDBDatabase.cpp @@ -10,16 +10,17 @@ #include "mozilla/Mutex.h" #include "mozilla/storage.h" #include "mozilla/dom/ContentParent.h" #include "mozilla/dom/DOMStringList.h" #include "mozilla/dom/DOMStringListBinding.h" #include "mozilla/dom/quota/Client.h" #include "mozilla/dom/quota/QuotaManager.h" +#include "nsEventDispatcher.h" #include "nsJSUtils.h" #include "nsProxyRelease.h" #include "nsThreadUtils.h" #include "AsyncConnectionHelper.h" #include "DatabaseInfo.h" #include "IDBEvents.h" #include "IDBFactory.h" @@ -38,16 +39,17 @@ #include "mozilla/dom/IDBDatabaseBinding.h" USING_INDEXEDDB_NAMESPACE using mozilla::dom::ContentParent; using mozilla::dom::quota::AssertIsOnIOThread; using mozilla::dom::quota::Client; using mozilla::dom::quota::QuotaManager; using mozilla::ErrorResult; +using namespace mozilla; using namespace mozilla::dom; namespace { class NoRequestDatabaseHelper : public AsyncConnectionHelper { public: NoRequestDatabaseHelper(IDBTransaction* aTransaction) @@ -770,17 +772,17 @@ IDBDatabase::IsOwned(nsPIDOMWindow* aOwn NS_IMETHODIMP_(const nsACString&) IDBDatabase::Origin() { return mASCIIOrigin; } nsresult -IDBDatabase::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +IDBDatabase::PostHandleEvent(EventChainPostVisitor& aVisitor) { return IndexedDatabaseManager::FireWindowOnError(GetOwner(), aVisitor); } AsyncConnectionHelper::ChildProcessSendResult NoRequestDatabaseHelper::SendResponseToChildProcess(nsresult aResultCode) { NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
--- a/dom/indexedDB/IDBDatabase.h +++ b/dom/indexedDB/IDBDatabase.h @@ -22,16 +22,17 @@ #include "mozilla/dom/indexedDB/FileManager.h" #include "mozilla/dom/indexedDB/IDBRequest.h" #include "mozilla/dom/indexedDB/IDBWrapperCache.h" class nsIScriptContext; class nsPIDOMWindow; namespace mozilla { +class EventChainPostVisitor; namespace dom { class ContentParent; namespace quota { class Client; } } } @@ -76,17 +77,18 @@ public: static IDBDatabase* FromStorage(nsIFileStorage* aStorage) { nsCOMPtr<nsIOfflineStorage> storage = do_QueryInterface(aStorage); return storage ? FromStorage(storage) : nullptr; } // nsIDOMEventTarget - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; DatabaseInfo* Info() const { return mDatabaseInfo; } const nsString& Name() const {
--- a/dom/indexedDB/IDBRequest.cpp +++ b/dom/indexedDB/IDBRequest.cpp @@ -452,17 +452,17 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(IDBOpenDBRequest) NS_INTERFACE_MAP_END_INHERITING(IDBRequest) NS_IMPL_ADDREF_INHERITED(IDBOpenDBRequest, IDBRequest) NS_IMPL_RELEASE_INHERITED(IDBOpenDBRequest, IDBRequest) nsresult -IDBOpenDBRequest::PostHandleEvent(nsEventChainPostVisitor& aVisitor) +IDBOpenDBRequest::PostHandleEvent(EventChainPostVisitor& aVisitor) { return IndexedDatabaseManager::FireWindowOnError(GetOwner(), aVisitor); } JSObject* IDBOpenDBRequest::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aScope) { return IDBOpenDBRequestBinding::Wrap(aCx, aScope, this);
--- a/dom/indexedDB/IDBRequest.h +++ b/dom/indexedDB/IDBRequest.h @@ -18,16 +18,17 @@ #include "nsWrapperCache.h" #include "mozilla/dom/indexedDB/IDBWrapperCache.h" class nsIScriptContext; class nsPIDOMWindow; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; namespace dom { class OwningIDBObjectStoreOrIDBIndexOrIDBCursor; class ErrorEventInit; } } BEGIN_INDEXEDDB_NAMESPACE @@ -187,17 +188,18 @@ public: already_AddRefed<IDBOpenDBRequest> Create(IDBFactory* aFactory, nsPIDOMWindow* aOwner, JS::Handle<JSObject*> aScriptOwner); void SetTransaction(IDBTransaction* aTransaction); // nsIDOMEventTarget - virtual nsresult PostHandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE; + virtual nsresult PostHandleEvent( + EventChainPostVisitor& aVisitor) MOZ_OVERRIDE; DOMError* GetError(ErrorResult& aRv) { return IDBRequest::GetError(aRv); } IDBFactory* Factory() const
--- a/dom/indexedDB/IndexedDatabaseManager.cpp +++ b/dom/indexedDB/IndexedDatabaseManager.cpp @@ -50,16 +50,17 @@ #define IDB_STR "indexedDB" // The two possible values for the data argument when receiving the disk space // observer notification. #define LOW_DISK_SPACE_DATA_FULL "full" #define LOW_DISK_SPACE_DATA_FREE "free" USING_INDEXEDDB_NAMESPACE +using namespace mozilla; using namespace mozilla::dom; USING_QUOTA_NAMESPACE BEGIN_INDEXEDDB_NAMESPACE class FileManagerInfo { public: @@ -301,17 +302,17 @@ IndexedDatabaseManager::Destroy() } delete this; } // static nsresult IndexedDatabaseManager::FireWindowOnError(nsPIDOMWindow* aOwner, - nsEventChainPostVisitor& aVisitor) + EventChainPostVisitor& aVisitor) { NS_ENSURE_TRUE(aVisitor.mDOMEvent, NS_ERROR_UNEXPECTED); if (!aOwner) { return NS_OK; } if (aVisitor.mEventStatus == nsEventStatus_eConsumeNoDefault) { return NS_OK;
--- a/dom/indexedDB/IndexedDatabaseManager.h +++ b/dom/indexedDB/IndexedDatabaseManager.h @@ -17,19 +17,19 @@ #include "mozilla/dom/quota/PersistenceType.h" #include "mozilla/Mutex.h" #include "nsClassHashtable.h" #include "nsHashKeys.h" #define INDEXEDDB_MANAGER_CONTRACTID "@mozilla.org/dom/indexeddb/manager;1" class nsPIDOMWindow; -class nsEventChainPostVisitor; namespace mozilla { +class EventChainPostVisitor; namespace dom { class TabContext; namespace quota { class OriginOrPatternString; } } } @@ -127,17 +127,17 @@ public: IndexedDatabaseManager* mgr = Get(); NS_ASSERTION(mgr, "Must have a manager here!"); return mgr->mFileMutex; } static nsresult FireWindowOnError(nsPIDOMWindow* aOwner, - nsEventChainPostVisitor& aVisitor); + EventChainPostVisitor& aVisitor); static bool TabContextMayAccessOrigin(const mozilla::dom::TabContext& aContext, const nsACString& aOrigin); static bool DefineIndexedDB(JSContext* aCx, JS::Handle<JSObject*> aGlobal);
--- a/dom/interfaces/events/nsIDOMEventTarget.idl +++ b/dom/interfaces/events/nsIDOMEventTarget.idl @@ -8,40 +8,40 @@ %{C++ #include "mozilla/EventForwards.h" #include "mozilla/dom/Nullable.h" #include "js/TypeDecls.h" using mozilla::dom::Nullable; namespace mozilla { +class EventChainPostVisitor; class EventChainPreVisitor; class EventListenerManager; namespace dom { class EventTarget; } // namespace dom } // namespace mozilla class nsPresContext; -class nsEventChainPostVisitor; %} /** * The nsIDOMEventTarget interface is the interface implemented by all * event targets in the Document Object Model. * * For more information on this interface please see * http://www.w3.org/TR/DOM-Level-2-Events/ */ -[ref] native nsEventChainPostVisitorRef(nsEventChainPostVisitor); [ptr] native WidgetEventPtr(mozilla::WidgetEvent); [ptr] native nsPresContextPtr(nsPresContext); [ptr] native nsEventStatusPtr(nsEventStatus); [ptr] native JSContextPtr(JSContext); +[ref] native EventChainPostVisitorRef(mozilla::EventChainPostVisitor); [ref] native EventChainPreVisitorRef(mozilla::EventChainPreVisitor); [ptr] native EventListenerManagerPtr(mozilla::EventListenerManager); [ptr] native EventTargetPtr(mozilla::dom::EventTarget); interface nsIScriptContext; interface nsIDOMEventListener; interface nsIDOMEvent; @@ -226,28 +226,28 @@ interface nsIDOMEventTarget : nsISupport [noscript, nostdcall] void PreHandleEvent(in EventChainPreVisitorRef aVisitor); /** * If EventChainPreVisitor.mWantsWillHandleEvent is set PR_TRUE, * called just before possible event handlers on this object will be called. */ [noscript, nostdcall] - void WillHandleEvent(in nsEventChainPostVisitorRef aVisitor); + void WillHandleEvent(in EventChainPostVisitorRef aVisitor); /** * Called after the bubble phase of the system event group. * The default handling of the event should happen here. * @param aVisitor the visitor object which is used during post handling. * * @see nsEventDispatcher.h for documentation about aVisitor. * @note Only nsEventDispatcher should call this method. */ [noscript, nostdcall] - void PostHandleEvent(in nsEventChainPostVisitorRef aVisitor); + void PostHandleEvent(in EventChainPostVisitorRef aVisitor); /** * Dispatch an event. * @param aEvent the event that is being dispatched. * @param aDOMEvent the event that is being dispatched, use if you want to * dispatch nsIDOMEvent, not only WidgetEvent. * @param aPresContext the current presentation context, can be nullptr. * @param aEventStatus the status returned from the function, can be nullptr. @@ -282,17 +282,17 @@ interface nsIDOMEventTarget : nsISupport [notxpcom, nostdcall] JSContextPtr GetJSContextForEventHandlers(); }; %{C++ #define NS_IMPL_DOMTARGET_DEFAULTS(_class) \ mozilla::dom::EventTarget* _class::GetTargetForDOMEvent() { return this; } \ mozilla::dom::EventTarget* _class::GetTargetForEventTargetChain() { return this; } \ -nsresult _class::WillHandleEvent(nsEventChainPostVisitor& aVisitor) { return NS_OK; } \ +nsresult _class::WillHandleEvent(mozilla::EventChainPostVisitor& aVisitor) { return NS_OK; } \ JSContext* _class::GetJSContextForEventHandlers() { return nullptr; } #define NS_IMPL_REMOVE_SYSTEM_EVENT_LISTENER(aClass) \ NS_IMETHODIMP \ aClass::RemoveSystemEventListener(const nsAString& aType, \ nsIDOMEventListener *aListener, \ bool aUseCapture) \ { \
--- a/layout/base/nsPresShell.cpp +++ b/layout/base/nsPresShell.cpp @@ -444,17 +444,17 @@ public: PresShell* mShell; }; class MOZ_STACK_CLASS nsPresShellEventCB : public nsDispatchingCallback { public: nsPresShellEventCB(PresShell* aPresShell) : mPresShell(aPresShell) {} - virtual void HandleEvent(nsEventChainPostVisitor& aVisitor) MOZ_OVERRIDE + virtual void HandleEvent(EventChainPostVisitor& aVisitor) MOZ_OVERRIDE { if (aVisitor.mPresContext && aVisitor.mEvent->eventStructType != NS_EVENT) { if (aVisitor.mEvent->message == NS_MOUSE_BUTTON_DOWN || aVisitor.mEvent->message == NS_MOUSE_BUTTON_UP) { // Mouse-up and mouse-down events call nsFrame::HandlePress/Release // which call GetContentOffsetsFromPoint which requires up-to-date layout. // Bring layout up-to-date now so that GetCurrentEventFrame() below // will return a real frame and we don't have to worry about