Skip to content

Commit 03877bb

Browse files
committed
introduce HtmlPage#getStyleSheets()
1 parent fa624e2 commit 03877bb

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/main/java/org/htmlunit/WebWindowImpl.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,7 @@
3232
import org.htmlunit.css.CssStyleSheet;
3333
import org.htmlunit.css.ElementCssStyleDeclaration;
3434
import org.htmlunit.html.DomElement;
35-
import org.htmlunit.html.HtmlElement;
36-
import org.htmlunit.html.HtmlLink;
3735
import org.htmlunit.html.HtmlPage;
38-
import org.htmlunit.html.HtmlStyle;
3936
import org.htmlunit.javascript.HtmlUnitScriptable;
4037
import org.htmlunit.javascript.background.BackgroundJavaScriptFactory;
4138
import org.htmlunit.javascript.background.JavaScriptJobManager;
@@ -413,15 +410,7 @@ else if (getWebClient().getBrowserVersion().hasFeature(JS_WINDOW_COMPUTED_STYLE_
413410

414411
if (webClient.getOptions().isCssEnabled()) {
415412
final boolean trace = LOG.isTraceEnabled();
416-
for (final HtmlElement htmlElement : htmlPage.getHtmlElementDescendants()) {
417-
CssStyleSheet cssStyleSheet = null;
418-
if (htmlElement instanceof HtmlStyle) {
419-
cssStyleSheet = ((HtmlStyle) htmlElement).getSheet();
420-
}
421-
else if (htmlElement instanceof HtmlLink) {
422-
cssStyleSheet = ((HtmlLink) htmlElement).getSheet();
423-
}
424-
413+
for (final CssStyleSheet cssStyleSheet : htmlPage.getStyleSheets()) {
425414
if (cssStyleSheet != null
426415
&& cssStyleSheet.isEnabled()
427416
&& cssStyleSheet.isActive()) {

src/main/java/org/htmlunit/html/HtmlPage.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
import org.htmlunit.corejs.javascript.ScriptableObject;
8080
import org.htmlunit.corejs.javascript.Undefined;
8181
import org.htmlunit.css.ComputedCssStyleDeclaration;
82+
import org.htmlunit.css.CssStyleSheet;
8283
import org.htmlunit.html.FrameWindow.PageDenied;
8384
import org.htmlunit.html.impl.SelectableTextInput;
8485
import org.htmlunit.html.impl.SimpleRange;
@@ -2713,6 +2714,29 @@ public void putStyleIntoCache(final DomElement element, final String normalizedP
27132714
getCssPropertiesCache().put(element, normalizedPseudo, style);
27142715
}
27152716

2717+
/**
2718+
* <span style="color:red">INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.</span><br>
2719+
*
2720+
* @return a list of all styles from this page (&lt;style&gt; and &lt;link rel=stylesheet&gt;).
2721+
* This returns an empty list if css support is disabled in the web client options.
2722+
*/
2723+
public List<CssStyleSheet> getStyleSheets() {
2724+
final List<CssStyleSheet> styles = new ArrayList<>();
2725+
if (getWebClient().getOptions().isCssEnabled()) {
2726+
for (final HtmlElement htmlElement : getHtmlElementDescendants()) {
2727+
if (htmlElement instanceof HtmlStyle) {
2728+
styles.add(((HtmlStyle) htmlElement).getSheet());
2729+
continue;
2730+
}
2731+
2732+
if (htmlElement instanceof HtmlLink) {
2733+
styles.add(((HtmlLink) htmlElement).getSheet());
2734+
}
2735+
}
2736+
}
2737+
return styles;
2738+
}
2739+
27162740
/**
27172741
* @return the CSSPropertiesCache for this page
27182742
*/

0 commit comments

Comments
 (0)