# HG changeset patch # User pmuthuswamy # Date 1537339493 -19800 # Node ID 3efead10e303cd765951de6e83e3180d8fc08e47 # Parent 9d3a00c8c047b95f6f077f3af97315770eb28f7b 8210047: some pages contain content outside of landmark region Reviewed-by: jjg diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractModuleIndexWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -33,6 +33,7 @@ import javax.lang.model.element.ModuleElement; import javax.lang.model.element.PackageElement; +import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; @@ -81,30 +82,30 @@ /** * Adds the navigation bar header to the documentation tree. * - * @param body the document tree to which the navigation bar header will be added + * @param header the document tree to which the navigation bar header will be added */ - protected abstract void addNavigationBarHeader(Content body); + protected abstract void addNavigationBarHeader(Content header); /** * Adds the navigation bar footer to the documentation tree. * - * @param body the document tree to which the navigation bar footer will be added + * @param footer the document tree to which the navigation bar footer will be added */ - protected abstract void addNavigationBarFooter(Content body); + protected abstract void addNavigationBarFooter(Content footer); /** * Adds the overview header to the documentation tree. * - * @param body the document tree to which the overview header will be added + * @param main the document tree to which the overview header will be added */ - protected abstract void addOverviewHeader(Content body); + protected abstract void addOverviewHeader(Content main); /** * Adds the modules list to the documentation tree. * - * @param body the document tree to which the modules list will be added + * @param main the document tree to which the modules list will be added */ - protected abstract void addModulesList(Content body); + protected abstract void addModulesList(Content main); /** * Adds the module packages list to the documentation tree. @@ -112,11 +113,11 @@ * @param modules the set of modules * @param text caption for the table * @param tableSummary summary for the table - * @param body the document tree to which the modules list will be added + * @param main the document tree to which the modules list will be added * @param mdle the module being documented */ protected abstract void addModulePackagesList(Map> modules, String text, - String tableSummary, Content body, ModuleElement mdle); + String tableSummary, Content main, ModuleElement mdle); /** * Generate and prints the contents in the module index file. Call appropriate @@ -130,11 +131,17 @@ protected void buildModuleIndexFile(String title, boolean includeScript) throws DocFileIOException { String windowOverview = configuration.getText(title); Content body = getBody(includeScript, getWindowTitle(windowOverview)); - addNavigationBarHeader(body); - addOverviewHeader(body); - addIndex(body); - addOverview(body); - addNavigationBarFooter(body); + Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new); + addNavigationBarHeader(header); + Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new); + addOverviewHeader(main); + addIndex(header, main); + addOverview(main); + Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new); + addNavigationBarFooter(footer); + body.addContent(header); + body.addContent(main); + body.addContent(footer); printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title, configuration.doctitle), includeScript, body); } @@ -153,11 +160,17 @@ boolean includeScript, ModuleElement mdle) throws DocFileIOException { String windowOverview = configuration.getText(title); Content body = getBody(includeScript, getWindowTitle(windowOverview)); - addNavigationBarHeader(body); - addOverviewHeader(body); - addModulePackagesIndex(body, mdle); - addOverview(body); - addNavigationBarFooter(body); + Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new); + addNavigationBarHeader(header); + Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new); + addOverviewHeader(main); + addModulePackagesIndex(header, main, mdle); + addOverview(main); + Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new); + addNavigationBarFooter(footer); + body.addContent(header); + body.addContent(main); + body.addContent(footer); printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title, configuration.doctitle), includeScript, body); } @@ -165,33 +178,35 @@ /** * Default to no overview, override to add overview. * - * @param body the document tree to which the overview will be added + * @param main the document tree to which the overview will be added */ - protected void addOverview(Content body) { } + protected void addOverview(Content main) { } /** * Adds the frame or non-frame module index to the documentation tree. * - * @param body the document tree to which the index will be added + * @param header the document tree to which the navigational links will be added + * @param main the document tree to which the modules list will be added */ - protected void addIndex(Content body) { + protected void addIndex(Content header, Content main) { addIndexContents(configuration.modules, "doclet.Module_Summary", configuration.getText("doclet.Member_Table_Summary", configuration.getText("doclet.Module_Summary"), - configuration.getText("doclet.modules")), body); + configuration.getText("doclet.modules")), header, main); } /** * Adds the frame or non-frame module packages index to the documentation tree. * - * @param body the document tree to which the index will be added + * @param header the document tree to which the navigational links will be added + * @param main the document tree to which the module packages list will be added * @param mdle the module being documented */ - protected void addModulePackagesIndex(Content body, ModuleElement mdle) { + protected void addModulePackagesIndex(Content header, Content main, ModuleElement mdle) { addModulePackagesIndexContents("doclet.Module_Summary", configuration.getText("doclet.Member_Table_Summary", configuration.getText("doclet.Module_Summary"), - configuration.getText("doclet.modules")), body, mdle); + configuration.getText("doclet.modules")), header, main, mdle); } /** @@ -201,20 +216,19 @@ * @param modules the modules to be documented * @param text string which will be used as the heading * @param tableSummary summary for the table - * @param body the document tree to which the index contents will be added + * @param header the document tree to which the navgational links will be added + * @param main the document tree to which the modules list will be added */ protected void addIndexContents(Collection modules, String text, - String tableSummary, Content body) { - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV)) - ? HtmlTree.NAV() - : new HtmlTree(HtmlTag.DIV); + String tableSummary, Content header, Content main) { + HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV)); htmlTree.setStyle(HtmlStyle.indexNav); HtmlTree ul = new HtmlTree(HtmlTag.UL); addAllClassesLink(ul); addAllPackagesLink(ul); htmlTree.addContent(ul); - body.addContent(htmlTree); - addModulesList(body); + header.addContent(htmlTree); + addModulesList(main); } /** @@ -223,22 +237,21 @@ * * @param text string which will be used as the heading * @param tableSummary summary for the table - * @param body the document tree to which the index contents will be added + * @param header the document tree to which the navigational links will be added + * @param main the document tree to which the module packages list will be added * @param mdle the module being documented */ protected void addModulePackagesIndexContents(String text, - String tableSummary, Content body, ModuleElement mdle) { - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV)) - ? HtmlTree.NAV() - : new HtmlTree(HtmlTag.DIV); + String tableSummary, Content header, Content main, ModuleElement mdle) { + HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV)); htmlTree.setStyle(HtmlStyle.indexNav); HtmlTree ul = new HtmlTree(HtmlTag.UL); addAllClassesLink(ul); addAllPackagesLink(ul); addAllModulesLink(ul); htmlTree.addContent(ul); - body.addContent(htmlTree); - addModulePackagesList(modules, text, tableSummary, body, mdle); + header.addContent(htmlTree); + addModulePackagesList(modules, text, tableSummary, main, mdle); } /** diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractPackageIndexWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -29,6 +29,7 @@ import javax.lang.model.element.PackageElement; +import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; @@ -78,9 +79,9 @@ /** * Adds the navigation bar header to the documentation tree. * - * @param body the document tree to which the navigation bar header will be added + * @param header the document tree to which the navigation bar header will be added */ - protected abstract void addNavigationBarHeader(Content body); + protected abstract void addNavigationBarHeader(Content header); /** * Adds the navigation bar footer to the documentation tree. @@ -92,16 +93,16 @@ /** * Adds the overview header to the documentation tree. * - * @param body the document tree to which the overview header will be added + * @param footer the document tree to which the overview header will be added */ - protected abstract void addOverviewHeader(Content body); + protected abstract void addOverviewHeader(Content footer); /** * Adds the packages list to the documentation tree. * - * @param body the document tree to which the packages list will be added + * @param main the document tree to which the packages list will be added */ - protected abstract void addPackagesList(Content body); + protected abstract void addPackagesList(Content main); /** * Generate and prints the contents in the package index file. Call appropriate @@ -115,11 +116,17 @@ protected void buildPackageIndexFile(String title, boolean includeScript) throws DocFileIOException { String windowOverview = configuration.getText(title); Content body = getBody(includeScript, getWindowTitle(windowOverview)); - addNavigationBarHeader(body); - addOverviewHeader(body); - addIndex(body); - addOverview(body); - addNavigationBarFooter(body); + Content header = createTagIfAllowed(HtmlTag.HEADER, HtmlTree::HEADER, ContentBuilder::new); + addNavigationBarHeader(header); + Content main = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new); + addOverviewHeader(main); + addIndex(header, main); + addOverview(main); + Content footer = createTagIfAllowed(HtmlTag.FOOTER, HtmlTree::FOOTER, ContentBuilder::new); + addNavigationBarFooter(footer); + body.addContent(header); + body.addContent(main); + body.addContent(footer); printHtmlDocument(configuration.metakeywords.getOverviewMetaKeywords(title, configuration.doctitle), includeScript, body); } @@ -127,30 +134,30 @@ /** * Default to no overview, override to add overview. * - * @param body the document tree to which the overview will be added + * @param main the document tree to which the overview will be added */ - protected void addOverview(Content body) { } + protected void addOverview(Content main) { } /** * Adds the frame or non-frame package index to the documentation tree. * - * @param body the document tree to which the index will be added + * @param header the document tree to which the navigation links will be added + * @param main the document tree to which the packages list will be added */ - protected void addIndex(Content body) { - addIndexContents(body); + protected void addIndex(Content header, Content main) { + addIndexContents(header, main); } /** * Adds package index contents. Call appropriate methods from * the sub-classes. Adds it to the body HtmlTree * - * @param body the document tree to which the index contents will be added + * @param header the document tree to which navigation links will be added + * @param main the document tree to which the packages list will be added */ - protected void addIndexContents(Content body) { + protected void addIndexContents(Content header, Content main) { if (!packages.isEmpty()) { - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.NAV)) - ? HtmlTree.NAV() - : new HtmlTree(HtmlTag.DIV); + HtmlTree htmlTree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV)); htmlTree.setStyle(HtmlStyle.indexNav); HtmlTree ul = new HtmlTree(HtmlTag.UL); addAllClassesLink(ul); @@ -158,8 +165,8 @@ addAllModulesLink(ul); } htmlTree.addContent(ul); - body.addContent(htmlTree); - addPackagesList(body); + header.addContent(htmlTree); + addPackagesList(main); } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -29,6 +29,7 @@ import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; +import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlConstants; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle; import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag; @@ -111,15 +112,15 @@ protected void buildAllClassesFile(boolean wantFrames) throws DocFileIOException { String label = configuration.getText("doclet.All_Classes"); Content body = getBody(false, getWindowTitle(label)); + Content htmlTree = createTagIfAllowed(HtmlTag.MAIN, HtmlTree::MAIN, ContentBuilder::new); Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar, contents.allClassesLabel); - body.addContent(heading); + htmlTree.addContent(heading); Content ul = new HtmlTree(HtmlTag.UL); // Generate the class links and add it to the tdFont tree. addAllClasses(ul, wantFrames); - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN)) - ? HtmlTree.MAIN(HtmlStyle.indexContainer, ul) - : HtmlTree.DIV(HtmlStyle.indexContainer, ul); + HtmlTree div = HtmlTree.DIV(HtmlStyle.indexContainer, ul); + htmlTree.addContent(div); body.addContent(htmlTree); printHtmlDocument(null, false, body); } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -29,6 +29,7 @@ import jdk.javadoc.internal.doclets.formats.html.markup.TableHeader; import java.util.*; +import java.util.function.Supplier; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -2105,4 +2106,20 @@ Script getMainBodyScript() { return mainBodyScript; } + + /** + * Creates the HTML tag if the tag is supported by this specific HTML version + * otherwise return the Content instance provided by Supplier ifNotSupported. + * @param tag the HTML tag + * @param ifSupported create this instance if HTML tag is supported + * @param ifNotSupported create this instance if HTML tag is not supported + * @return + */ + protected Content createTagIfAllowed(HtmlTag tag, Supplier ifSupported, Supplier ifNotSupported) { + if (configuration.allowTag(tag)) { + return ifSupported.get(); + } else { + return ifNotSupported.get(); + } + } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -83,19 +83,17 @@ /** * {@inheritDoc} */ - protected void addModulesList(Content body) { + protected void addModulesList(Content main) { Content heading = HtmlTree.HEADING(HtmlConstants.MODULE_HEADING, true, contents.modulesLabel); - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN)) - ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading) - : HtmlTree.DIV(HtmlStyle.indexContainer, heading); + HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading); HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.setTitle(contents.modulesLabel); for (ModuleElement mdle: configuration.modules) { ul.addContent(getModuleLink(mdle)); } htmlTree.addContent(ul); - body.addContent(htmlTree); + main.addContent(htmlTree); } /** @@ -126,7 +124,7 @@ /** * {@inheritDoc} */ - protected void addNavigationBarHeader(Content body) { + protected void addNavigationBarHeader(Content header) { Content headerContent; if (configuration.packagesheader.length() > 0) { headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader)); @@ -135,7 +133,7 @@ } Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true, HtmlStyle.bar, headerContent); - body.addContent(heading); + header.addContent(heading); } /** @@ -173,12 +171,12 @@ /** * {@inheritDoc} */ - protected void addNavigationBarFooter(Content body) { + protected void addNavigationBarFooter(Content footer) { Content p = HtmlTree.P(Contents.SPACE); - body.addContent(p); + footer.addContent(p); } protected void addModulePackagesList(Map> modules, String text, - String tableSummary, Content body, ModuleElement mdle) { + String tableSummary, Content main, ModuleElement mdle) { } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -57,11 +57,6 @@ public class ModuleIndexWriter extends AbstractModuleIndexWriter { /** - * HTML tree for main tag. - */ - private final HtmlTree htmlTree = HtmlTree.MAIN(); - - /** * Construct the ModuleIndexWriter. * @param configuration the configuration object * @param filename the name of the generated file @@ -85,22 +80,22 @@ /** * Add the module index. * - * @param body the documentation tree to which the index will be added + * @param header the documentation tree to which the navigational links will be added + * @param main the documentation tree to which the modules list will be added */ @Override - protected void addIndex(Content body) { - addIndexContents(body); + protected void addIndex(Content header, Content main) { + addIndexContents(header, main); } /** * Adds module index contents. * - * @param body the document tree to which the index contents will be added + * @param header the document tree to which the navigational links will be added + * @param main the document tree to which the modules list will be added */ - protected void addIndexContents(Content body) { - HtmlTree htmltree = (configuration.allowTag(HtmlTag.NAV)) - ? HtmlTree.NAV() - : new HtmlTree(HtmlTag.DIV); + protected void addIndexContents(Content header, Content main) { + HtmlTree htmltree = (HtmlTree)createTagIfAllowed(HtmlTag.NAV, HtmlTree::NAV, () -> new HtmlTree(HtmlTag.DIV)); htmltree.setStyle(HtmlStyle.indexNav); HtmlTree ul = new HtmlTree(HtmlTag.UL); addAllClassesLink(ul); @@ -108,17 +103,17 @@ addAllModulesLink(ul); } htmltree.addContent(ul); - body.addContent(htmltree); - addModulesList(body); + header.addContent(htmltree); + addModulesList(main); } /** * Add the list of modules. * - * @param body the content tree to which the module list will be added + * @param main the content tree to which the module list will be added */ @Override - protected void addModulesList(Content body) { + protected void addModulesList(Content main) { Map> groupModuleMap = configuration.group.groupModules(configuration.modules); @@ -154,11 +149,7 @@ } Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table.toContent()); - if (configuration.allowTag(HtmlTag.MAIN)) { - htmlTree.addContent(div); - } else { - body.addContent(div); - } + main.addContent(div); if (table.needsScript()) { mainBodyScript.append(table.getScript()); @@ -171,20 +162,16 @@ * summary at the top of the page and generate a link to the description, * which is added at the end of this page. * - * @param body the documentation tree to which the overview header will be added + * @param main the documentation tree to which the overview header will be added */ @Override - protected void addOverviewHeader(Content body) { - addConfigurationTitle(body); + protected void addOverviewHeader(Content main) { + addConfigurationTitle(main); if (!utils.getFullBody(configuration.overviewElement).isEmpty()) { HtmlTree div = new HtmlTree(HtmlTag.DIV); div.setStyle(HtmlStyle.contentContainer); addOverviewComment(div); - if (configuration.allowTag(HtmlTag.MAIN)) { - htmlTree.addContent(div); - } else { - body.addContent(div); - } + main.addContent(div); } } @@ -202,58 +189,34 @@ } /** - * For HTML 5, add the htmlTree to the body. For HTML 4, do nothing. - * - * @param body the documentation tree to which the overview will be added - */ - @Override - protected void addOverview(Content body) { - if (configuration.allowTag(HtmlTag.MAIN)) { - body.addContent(htmlTree); - } - } - - /** * Adds the top text (from the -top option), the upper * navigation bar, and then the title (from the"-title" * option), at the top of page. * - * @param body the documentation tree to which the navigation bar header will be added + * @param header the documentation tree to which the navigation bar header will be added */ @Override - protected void addNavigationBarHeader(Content body) { - Content tree = (configuration.allowTag(HtmlTag.HEADER)) - ? HtmlTree.HEADER() - : body; - addTop(tree); + protected void addNavigationBarHeader(Content header) { + addTop(header); navBar.setUserHeader(getUserHeaderFooter(true)); - tree.addContent(navBar.getContent(true)); - if (configuration.allowTag(HtmlTag.HEADER)) { - body.addContent(tree); - } + header.addContent(navBar.getContent(true)); } /** * Adds the lower navigation bar and the bottom text * (from the -bottom option) at the bottom of page. * - * @param body the documentation tree to which the navigation bar footer will be added + * @param footer the documentation tree to which the navigation bar footer will be added */ @Override - protected void addNavigationBarFooter(Content body) { - Content htmltree = (configuration.allowTag(HtmlTag.FOOTER)) - ? HtmlTree.FOOTER() - : body; + protected void addNavigationBarFooter(Content footer) { navBar.setUserFooter(getUserHeaderFooter(false)); - htmltree.addContent(navBar.getContent(false)); - addBottom(htmltree); - if (configuration.allowTag(HtmlTag.FOOTER)) { - body.addContent(htmltree); - } + footer.addContent(navBar.getContent(false)); + addBottom(footer); } @Override protected void addModulePackagesList(Map> modules, String text, - String tableSummary, Content body, ModuleElement mdle) { + String tableSummary, Content main, ModuleElement mdle) { } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -84,15 +84,13 @@ * {@inheritDoc} */ protected void addModulePackagesList(Map> modules, String text, - String tableSummary, Content body, ModuleElement mdle) { + String tableSummary, Content main, ModuleElement mdle) { Content profNameContent = new StringContent(mdle.getQualifiedName().toString()); Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true, getTargetModuleLink("classFrame", profNameContent, mdle)); heading.addContent(Contents.SPACE); heading.addContent(contents.packagesLabel); - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN)) - ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading) - : HtmlTree.DIV(HtmlStyle.indexContainer, heading); + HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading); HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.setTitle(contents.packagesLabel); List packages = new ArrayList<>(modules.get(mdle)); @@ -102,7 +100,7 @@ } } htmlTree.addContent(ul); - body.addContent(htmlTree); + main.addContent(htmlTree); } /** @@ -157,7 +155,7 @@ /** * {@inheritDoc} */ - protected void addNavigationBarHeader(Content body) { + protected void addNavigationBarHeader(Content header) { Content headerContent; if (configuration.packagesheader.length() > 0) { headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader)); @@ -166,7 +164,7 @@ } Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true, HtmlStyle.bar, headerContent); - body.addContent(heading); + header.addContent(heading); } /** @@ -232,8 +230,8 @@ /** * {@inheritDoc} */ - protected void addNavigationBarFooter(Content body) { + protected void addNavigationBarFooter(Content footer) { Content p = HtmlTree.P(Contents.SPACE); - body.addContent(p); + footer.addContent(p); } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexFrameWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -77,12 +77,10 @@ * {@inheritDoc} */ @Override - protected void addPackagesList(Content body) { + protected void addPackagesList(Content main) { Content heading = HtmlTree.HEADING(HtmlConstants.PACKAGE_HEADING, true, contents.packagesLabel); - HtmlTree htmlTree = (configuration.allowTag(HtmlTag.MAIN)) - ? HtmlTree.MAIN(HtmlStyle.indexContainer, heading) - : HtmlTree.DIV(HtmlStyle.indexContainer, heading); + HtmlTree htmlTree = HtmlTree.DIV(HtmlStyle.indexContainer, heading); HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.setTitle(contents.packagesLabel); for (PackageElement aPackage : packages) { @@ -94,7 +92,7 @@ } } htmlTree.addContent(ul); - body.addContent(htmlTree); + main.addContent(htmlTree); } /** @@ -124,7 +122,7 @@ * {@inheritDoc} */ @Override - protected void addNavigationBarHeader(Content body) { + protected void addNavigationBarHeader(Content header) { Content headerContent; if (configuration.packagesheader.length() > 0) { headerContent = new RawHtml(replaceDocRootDir(configuration.packagesheader)); @@ -133,7 +131,7 @@ } Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, true, HtmlStyle.bar, headerContent); - body.addContent(heading); + header.addContent(heading); } /** @@ -175,8 +173,8 @@ * {@inheritDoc} */ @Override - protected void addNavigationBarFooter(Content body) { + protected void addNavigationBarFooter(Content footer) { Content p = HtmlTree.P(Contents.SPACE); - body.addContent(p); + footer.addContent(p); } } diff -r 9d3a00c8c047 -r 3efead10e303 src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java --- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Tue Sep 18 21:46:17 2018 -0700 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java Wed Sep 19 12:14:53 2018 +0530 @@ -57,11 +57,6 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter { /** - * HTML tree for main tag. - */ - private final HtmlTree htmlTree = HtmlTree.MAIN(); - - /** * Construct the PackageIndexWriter. Also constructs the grouping * information as provided on the command line by "-group" option. Stores * the order of groups specified by the user. @@ -90,18 +85,19 @@ * Depending upon the grouping information and their titles, add * separate table indices for each package group. * - * @param body the documentation tree to which the index will be added + * @param header the documentation tree to which the navigational links will be added + * @param main the documentation tree to which the packages list will be added */ @Override - protected void addIndex(Content body) { - addIndexContents(body); + protected void addIndex(Content header, Content main) { + addIndexContents(header, main); } /** * {@inheritDoc} */ @Override - protected void addPackagesList(Content body) { + protected void addPackagesList(Content main) { Map> groupPackageMap = configuration.group.groupPackages(packages); @@ -136,11 +132,7 @@ } Content div = HtmlTree.DIV(HtmlStyle.contentContainer, table.toContent()); - if (configuration.allowTag(HtmlTag.MAIN)) { - htmlTree.addContent(div); - } else { - body.addContent(div); - } + main.addContent(div); if (table.needsScript()) { getMainBodyScript().append(table.getScript()); @@ -153,20 +145,16 @@ * summary at the top of the page and generate a link to the description, * which is added at the end of this page. * - * @param body the documentation tree to which the overview header will be added + * @param main the documentation tree to which the overview header will be added */ @Override - protected void addOverviewHeader(Content body) { - addConfigurationTitle(body); + protected void addOverviewHeader(Content main) { + addConfigurationTitle(main); if (!utils.getFullBody(configuration.overviewElement).isEmpty()) { HtmlTree div = new HtmlTree(HtmlTag.DIV); div.setStyle(HtmlStyle.contentContainer); addOverviewComment(div); - if (configuration.allowTag(HtmlTag.MAIN)) { - htmlTree.addContent(div); - } else { - body.addContent(div); - } + main.addContent(div); } } @@ -184,53 +172,29 @@ } /** - * For HTML 5, add the htmlTree to the body. For HTML 4, do nothing. - * - * @param body the documentation tree to which the overview will be added - */ - @Override - protected void addOverview(Content body) { - if (configuration.allowTag(HtmlTag.MAIN)) { - body.addContent(htmlTree); - } - } - - /** * Adds the top text (from the -top option), the upper * navigation bar, and then the title (from the"-title" * option), at the top of page. * - * @param body the documentation tree to which the navigation bar header will be added + * @param header the documentation tree to which the navigation bar header will be added */ @Override - protected void addNavigationBarHeader(Content body) { - Content tree = (configuration.allowTag(HtmlTag.HEADER)) - ? HtmlTree.HEADER() - : body; - addTop(tree); + protected void addNavigationBarHeader(Content header) { + addTop(header); navBar.setUserHeader(getUserHeaderFooter(true)); - tree.addContent(navBar.getContent(true)); - if (configuration.allowTag(HtmlTag.HEADER)) { - body.addContent(tree); - } + header.addContent(navBar.getContent(true)); } /** * Adds the lower navigation bar and the bottom text * (from the -bottom option) at the bottom of page. * - * @param body the documentation tree to which the navigation bar footer will be added + * @param footer the documentation tree to which the navigation bar footer will be added */ @Override - protected void addNavigationBarFooter(Content body) { - Content tree = (configuration.allowTag(HtmlTag.FOOTER)) - ? HtmlTree.FOOTER() - : body; + protected void addNavigationBarFooter(Content footer) { navBar.setUserFooter(getUserHeaderFooter(false)); - tree.addContent(navBar.getContent(false)); - addBottom(tree); - if (configuration.allowTag(HtmlTag.FOOTER)) { - body.addContent(tree); - } + footer.addContent(navBar.getContent(false)); + addBottom(footer); } } diff -r 9d3a00c8c047 -r 3efead10e303 test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/jdk/javadoc/doclet/testHtmlLandmarkRegions/TestHtmlLankmarkRegions.java Wed Sep 19 12:14:53 2018 +0530 @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 8210047 + * @summary some pages contains content outside of landmark region + * @library /tools/lib ../lib + * @modules + * jdk.javadoc/jdk.javadoc.internal.tool + * jdk.compiler/com.sun.tools.javac.api + * jdk.compiler/com.sun.tools.javac.main + * @build JavadocTester + * @run main TestHtmlLankmarkRegions + */ + + +import java.nio.file.Path; +import java.nio.file.Paths; + +import builder.ClassBuilder; +import toolbox.ModuleBuilder; +import toolbox.ToolBox; + +public class TestHtmlLankmarkRegions extends JavadocTester { + + final ToolBox tb; + + public static void main(String... args) throws Exception { + TestHtmlLankmarkRegions tester = new TestHtmlLankmarkRegions(); + tester.runTests(m -> new Object[]{Paths.get(m.getName())}); + } + + TestHtmlLankmarkRegions() { + tb = new ToolBox(); + } + + @Test + void testModules(Path base) throws Exception { + Path srcDir = base.resolve("src"); + createModules(srcDir); + + Path outDir = base.resolve("out"); + javadoc("-d", outDir.toString(), + "-doctitle", "Document Title", + "-header", "Test Header", + "--frames", + "--module-source-path", srcDir.toString(), + "--module", "m1,m2"); + + checkExit(Exit.OK); + + checkOrder("module-overview-frame.html", + "
\n" + + "

Test Header

\n" + + "