diff --git a/content/events/public/nsIPrivateDOMEvent.h b/content/events/public/nsIPrivateDOMEvent.h index 59426072a46..ca2c0d3a7ad 100644 --- a/content/events/public/nsIPrivateDOMEvent.h +++ b/content/events/public/nsIPrivateDOMEvent.h @@ -69,8 +69,6 @@ public: NS_IMETHOD HasOriginalTarget(PRBool* aResult)=0; NS_IMETHOD IsTrustedEvent(PRBool* aResult)=0; NS_IMETHOD SetTrusted(PRBool aTrusted)=0; - - NS_IMETHOD GetOriginalTargetTrusted(nsIDOMEventTarget** aTarget) = 0; }; extern nsresult NS_NewDOMEvent(nsIDOMEvent** aInstancePtrResult, nsIPresContext* aPresContext, nsEvent *aEvent); diff --git a/content/events/src/nsDOMEvent.cpp b/content/events/src/nsDOMEvent.cpp index f5f917ca988..659d8b2cc16 100644 --- a/content/events/src/nsDOMEvent.cpp +++ b/content/events/src/nsDOMEvent.cpp @@ -62,7 +62,6 @@ #include "nsContentUtils.h" #include "nsIDOMKeyEvent.h" #include "nsIDOMMutationEvent.h" -#include "nsIFormControl.h" static const char* const mEventNames[] = { "mousedown", "mouseup", "click", "dblclick", "mouseover", @@ -198,7 +197,6 @@ nsDOMEvent::nsDOMEvent(nsIPresContext* aPresContext, nsEvent* aEvent, mTarget = nsnull; mCurrentTarget = nsnull; mOriginalTarget = nsnull; - mRealOriginalTarget = nsnull; mText = nsnull; mTextRange = nsnull; mButton = -1; @@ -269,7 +267,6 @@ nsDOMEvent::~nsDOMEvent() NS_IF_RELEASE(mTarget); NS_IF_RELEASE(mCurrentTarget); NS_IF_RELEASE(mOriginalTarget); - NS_IF_RELEASE(mRealOriginalTarget); NS_IF_RELEASE(mTextRange); if (mEventIsInternal) { @@ -378,23 +375,6 @@ nsDOMEvent::GetOriginalTarget(nsIDOMEventTarget** aOriginalTarget) return NS_OK; } -NS_IMETHODIMP -nsDOMEvent::GetOriginalTargetTrusted(nsIDOMEventTarget** aOriginalTarget) -{ - if (mRealOriginalTarget) { - *aOriginalTarget = mRealOriginalTarget; - NS_ADDREF(*aOriginalTarget); - return NS_OK; - } - - if (!mOriginalTarget) - return GetTarget(aOriginalTarget); - - *aOriginalTarget = mOriginalTarget; - NS_ADDREF(*aOriginalTarget); - return NS_OK; -} - NS_IMETHODIMP nsDOMEvent::HasOriginalTarget(PRBool* aResult) { @@ -1365,46 +1345,6 @@ NS_METHOD nsDOMEvent::SetCurrentTarget(nsIDOMEventTarget* aCurrentTarget) NS_METHOD nsDOMEvent::SetOriginalTarget(nsIDOMEventTarget* aOriginalTarget) { if (mOriginalTarget != aOriginalTarget) { - // Fix for bug 163598. Do not expose anonymous content via originalTarget for - // file upload controls. To accomplish this we look to see if the - // originalTarget is inside a file upload control. - nsCOMPtr content(do_QueryInterface(aOriginalTarget)); - if (content) { - PRUint32 numParentsChecked = 0; - nsCOMPtr parent; - content->GetParent(*getter_AddRefs(parent)); - while (parent) { - numParentsChecked++; - // Only matters if we're an HTML form control. |originalTarget| is - // defined all over the place for XUL, so this saves XUL (and non-form - // controls) from paying the cost of a failed QI. - if (parent->IsContentOfType(nsIContent::eHTML_FORM_CONTROL)) { - nsCOMPtr inputControl(do_QueryInterface(parent)); - if (inputControl) { - PRInt32 type; - inputControl->GetType(&type); - if (type == NS_FORM_INPUT_FILE) { - NS_IF_RELEASE(mOriginalTarget); - mOriginalTarget = nsnull; - mRealOriginalTarget = aOriginalTarget; - NS_IF_ADDREF(mRealOriginalTarget); - return NS_OK; - } - } - } - - // We're looking for input type=file, and anonymous content doesn't go any - // deeper than 3 deep under input type=file (input type=text, div, - // textnode) - if (numParentsChecked >= 3) { - break; - } - - content = parent; - content->GetParent(*getter_AddRefs(parent)); - } - } - NS_IF_RELEASE(mOriginalTarget); NS_IF_ADDREF(aOriginalTarget); mOriginalTarget = aOriginalTarget; diff --git a/content/events/src/nsDOMEvent.h b/content/events/src/nsDOMEvent.h index af257bb1b07..dc1f45b0d13 100644 --- a/content/events/src/nsDOMEvent.h +++ b/content/events/src/nsDOMEvent.h @@ -180,7 +180,6 @@ public: NS_IMETHOD SetTarget(nsIDOMEventTarget* aTarget); NS_IMETHOD SetCurrentTarget(nsIDOMEventTarget* aCurrentTarget); NS_IMETHOD SetOriginalTarget(nsIDOMEventTarget* aOriginalTarget); - NS_IMETHOD GetOriginalTargetTrusted(nsIDOMEventTarget** aOriginalTarget); NS_IMETHOD IsDispatchStopped(PRBool* aIsDispatchStopped); NS_IMETHOD GetInternalNSEvent(nsEvent** aNSEvent); NS_IMETHOD HasOriginalTarget(PRBool* aResult); @@ -233,7 +232,6 @@ protected: nsIDOMEventTarget* mTarget; nsIDOMEventTarget* mCurrentTarget; nsIDOMEventTarget* mOriginalTarget; - nsIDOMEventTarget* mRealOriginalTarget; nsString* mText; nsIPrivateTextRangeList* mTextRange; PRPackedBool mEventIsInternal; diff --git a/content/html/content/src/nsHTMLInputElement.cpp b/content/html/content/src/nsHTMLInputElement.cpp index b42c979ef26..a4298e96581 100644 --- a/content/html/content/src/nsHTMLInputElement.cpp +++ b/content/html/content/src/nsHTMLInputElement.cpp @@ -1356,8 +1356,13 @@ nsHTMLInputElement::HandleDOMEvent(nsIPresContext* aPresContext, (*aDOMEvent)->GetTarget(getter_AddRefs(oldTarget)); nsCOMPtr originalTarget; - privateEvent->GetOriginalTargetTrusted(getter_AddRefs(originalTarget)); - + + nsCOMPtr nsevent(do_QueryInterface(*aDOMEvent)); + + if (nsevent) { + nsevent->GetOriginalTarget(getter_AddRefs(originalTarget)); + } + if (!originalTarget) { privateEvent->SetOriginalTarget(oldTarget); } diff --git a/dom/src/base/nsFocusController.cpp b/dom/src/base/nsFocusController.cpp index a35acb20bfe..1df9df69f42 100644 --- a/dom/src/base/nsFocusController.cpp +++ b/dom/src/base/nsFocusController.cpp @@ -29,7 +29,7 @@ #include "nsIDOMNSHTMLInputElement.h" #include "nsIDOMNSHTMLTextAreaElement.h" #include "nsIDOMUIEvent.h" -#include "nsIPrivateDOMEvent.h" +#include "nsIDOMNSEvent.h" #include "nsIDOMWindowInternal.h" #include "nsIDocument.h" #include "nsIPresContext.h" @@ -274,9 +274,10 @@ nsFocusController::Focus(nsIDOMEvent* aEvent) nsCOMPtr t; - nsCOMPtr privateEvent(do_QueryInterface(aEvent)); - if (privateEvent) - privateEvent->GetOriginalTargetTrusted(getter_AddRefs(t)); + nsCOMPtr nsevent(do_QueryInterface(aEvent)); + if (nsevent) { + nsevent->GetOriginalTarget(getter_AddRefs(t)); + } nsCOMPtr domElement = do_QueryInterface(t); if (domElement && (domElement != mCurrentElement)) { @@ -329,10 +330,11 @@ nsFocusController::Blur(nsIDOMEvent* aEvent) nsCOMPtr t; - nsCOMPtr privateEvent(do_QueryInterface(aEvent)); + nsCOMPtr nsevent(do_QueryInterface(aEvent)); - if (privateEvent) - privateEvent->GetOriginalTargetTrusted(getter_AddRefs(t)); + if (nsevent) { + nsevent->GetOriginalTarget(getter_AddRefs(t)); + } nsCOMPtr domElement = do_QueryInterface(t); if (domElement) {