Closed
Bug 170413
Opened 22 years ago
Closed 22 years ago
User-defined elements are all created as children of the <head>
Categories
(Core :: DOM: HTML Parser, defect)
Core
DOM: HTML Parser
Tracking
()
RESOLVED
DUPLICATE
of bug 167493
People
(Reporter: rbs, Assigned: jesup)
References
Details
(Keywords: regression)
This is a regression from bug 167493. This patch used for that bug had some issues. I traced what goes on when a user-defined tag is outside the <HEAD> and saw something strange happening. Suppose <MyElement> is inside the <BODY> instead of the <HEAD>. The code will roll into HandleStartToken() and do what I illustrate below (traced in the debugger): nsresult CNavDTD::HandleStartToken(CToken* aToken) { [...] //XXXrbs const nsAString& tag = ((CStartToken*)aToken)->GetStringValue(); if (tag.Equals(NS_LITERAL_STRING("myElement"))) NS_BREAK(); PRBool theExclusive=PR_FALSE; theHeadIsParent=nsHTMLElement::IsChildOfHead(theChildTag,theExclusive); >>>with the patch, this *always* returns |theHeadIsParent=true| for a >>>user-defined tag [...] #if 0 //we'll move to this approach after beta... if(!isTokenHandled) { if(theHeadIsParent && (theExclusive || mOpenHeadCount>0)) { result=AddHeadLeaf(theNode); } else result=HandleDefaultStartToken(aToken,theChildTag,theNode); } #else //the old way... if(!isTokenHandled) { if(theHeadIsParent || (mOpenHeadCount>0 && (eHTMLTag_newline==theChildTag || eHTMLTag_whitespace==theChildTag))) { result=AddHeadLeaf(theNode); >>>since |theHeadIsParent| is true, the smippet above >>>will *always* add userdefined as a _leaf_ of the head } else result=HandleDefaultStartToken(aToken,theChildTag,theNode); } #endif //now do any post processing necessary on the tag... if(NS_OK==result) DidHandleStartTag(*theNode,theChildTag); }//if } //if [...] }
-> re-assigning to rjesup who handled bug 167493.
Assignee | ||
Comment 2•22 years ago
|
||
Duping to bug 167493; all the discussion is there. I'm going to back the patch out until we can figure out a solution. *** This bug has been marked as a duplicate of 167493 ***
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
![]() |
||
Comment 3•22 years ago
|
||
*** Bug 171324 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•