Hi Jon,

Javadoc styles for header/navbar will appear as it is and will not get disturbed. I meant for any html content in doc-files, if there is any user-defined style, then those should override the javadoc styles. In html head element, default(javadoc) styles will be placed first and then those defined in doc-file.

Thanks,
Priya

On 12/21/2018 9:24 PM, Jonathan Gibbons wrote:

I've not yet read the full webrev, but I do have one immediate question, given below.

-- Jon

On 12/21/18 2:13 AM, Priya Lakshmi Muthuswamy wrote:

Hi Jon,

Thanks for the review.

I have made the following changes:
1)Added style tag in HtmlTag.java, before we were using style attribute for comparison. 2)utils.getPreamble(element) ignores new lines after html tags, so I can included them while fetching the localHeadTags.
3)In Head.java, used addContent() itself instead of new methods.
I had seen the addContent(), but it was adding the content before the scripts/styles tags. The doc-files script/style needed to added at the end of the other styles it that it overrides them.

This is a red flag.  Why is it important that the user styles override the javadoc styles?  Given that we're adding javadoc styles for the javadoc header/navbar, isn't it important that those should appear as intended?


When I checked the usage of addContent, i see that its been used only by IndexRedirectWriter to include script/noscript tags.
I think that can be added at the end of existing tags as well.

updated webrev: http://cr.openjdk.java.net/~pmuthuswamy/8214738/webrev.01/
api: http://cr.openjdk.java.net/~pmuthuswamy/8214738/api/

some of the doc-file with user specific styles.
api/jdk.jdi/com/sun/jdi/doc-files/signature.html
api/java.base/java/lang/doc-files/threadPrimitiveDeprecation.html
api/java.desktop/java/awt/doc-files/Modality.html

Thanks,
Priya

On 12/21/2018 3:16 AM, Jonathan Gibbons wrote:

Priya,

In DocFilesHandlerImpl, you have a boolean flag titleOrMetaTags. Since <meta> elements never have content, and so never have end elements, it seems misleading/incorrect to set the flag to true.  Also, you omit to handle ENTITY in the <title> element, so I added that in as well.  You could also write this code as a visitor if you wanted, but the switch form is not too bad.

I suggest the code should look something like this:

205 List<DocTree> localTags = new ArrayList<>();  206 boolean inHead = false;
207 boolean inTitle = false; loop:   208 for (DocTree dt : dtrees) {
209 switch (dt.getKind()) {
210 case START_ELEMENT:
211 StartElementTree startElem = (StartElementTree) dt; switch (HtmlTag.get(startElem)) { case HEAD: inHead = true; break;case META: break; case TITLE: inTitle=true; break; default: if (inHead) { localTags.add(startElem); } } 223 break; 224 case END_ELEMENT:  211 EndElementTree endElem = (EndElementTree) dt; switch (HtmlTag.get(endElem)) { case HEAD: break loop; case TITLE:
                                  inTitle = false;
                                  break loop;default: if (inHead) { 
localTags.add(startElem); } }
235 break; case ENTITY:   236 case TEXT:
237 if (inHead && !inTitle) {
238 localTags.add(dt);
  239                     }
240 break;
  241             }
-- Jon

On 12/20/2018 11:31 AM, Jonathan Gibbons wrote:



On 12/19/2018 08:38 PM, Priya Lakshmi Muthuswamy wrote:
Hi,

Kindly review the fix for https://bugs.openjdk.java.net/browse/JDK-8214738
webrev : http://cr.openjdk.java.net/~pmuthuswamy/8214738/webrev.00/

Thanks,
Priya



I don't think you need to add anything (userHeaderTags etc) to Head.
Head already has the requisite feature, "extraContent" and "addContent"
which can be used to add content into the <head> element.

Re: Utils.toLowerCase(nodeEnd.getName().toString()).equals(HtmlTag.HEAD.getText()) Don't use long-winded String comparison when you have type-safe comparison.
In this case, you should be able to do something like
    HtmlTag.get(nodeEnd.getName()) == HtmlTag.HEAD

getLocalHeaderTags needlessly walks through all the <body> element. You can
break out of the loop once you hit </head>.

DocFilesHandlerImpl:196.
The "if" statement is a waste of time and effort. The code will work perfectly well when localTagsContent is an empty list, so you can simplify 196-199 to just 197.

TestCopyFiles.java
(style) re: indenting the continuation of multi-line strings
The general Java style for breaking long expressions is to break before a binary operator, not after. The style in other javadoc tests is to not indent the continuation expressions, so that it is easier
to see how the first line and subsequent lines are aligned.

-- Jon

Reply via email to