Stylesheet sheet;
final HtmlPage page = (HtmlPage) element.getDomNodeOrDie().getPage(); // fallback uri for exceptions
String uri = page.getWebResponse().getRequestSettings().getUrl().toExternalForm();
try {
// Retrieve the associated content and respect client settings regarding failing HTTP status codes.
final WebRequestSettings request;
final WebClient client = page.getWebClient();
if (link != null) {
// Use link.
request = link.getWebRequestSettings();
}
else {
// Use href.
request = new WebRequestSettings(new URL(url));
final String referer = page.getWebResponse().getRequestSettings().getUrl().toExternalForm();
request.setAdditionalHeader("Referer", referer);
}
uri = request.getUrl().toExternalForm();
final Cache cache = client.getCache();
final Object fromCache = cache.getCachedObject(request);
if (fromCache != null && fromCache instanceof CSSStyleSheet) {
sheet = new Stylesheet(element, (CSSStyleSheet) fromCache, uri);
}