@Override public void script(Tag tag, CharSequence body) { if (!enabled.peek().booleanValue()) { return; } extractAttribute(tag, ATT_SRC); }
case SELF_CLOSING: if (tag.nameEquals(TAG_BODY)) { extractAttribute(tag, ATT_BACKGROUND); } else if (tag.nameEquals(TAG_BASE)) { CharSequence baseref = tag.getAttributeValue(ATT_HREF); extractAttribute(tag, ATT_SRC); } else if (tag.nameEquals(TAG_APPLET)) { extractAttribute(tag, ATT_CODE); } else if (tag.nameEquals(TAG_OBJECT)) { extractAttribute(tag, ATT_CODEBASE); extractAttribute(tag, ATT_DATA); } else if (tag.nameEquals(TAG_INPUT)) { extractAttribute(tag, ATT_SRC); extractAttribute(tag, ATT_SRC); extractAttribute(tag, ATT_SRC); } else if (tag.nameEquals(TAG_EMBED)) { extractAttribute(tag, ATT_SRC); } else if (tag.nameEquals(TAG_BGSOUND)){ extractAttribute(tag, ATT_SRC); } else if (tag.nameEquals(TAG_LINK)) { CharSequence relAttribute = tag.getAttributeValue(ATT_REL); extractAttribute(tag, ATT_HREF); extractAttribute(tag, ATT_BACKGROUND);
@Override public Iterator<URL> getEmbeddedResourceURLs(String userAgent, byte[] html, URL baseUrl, URLCollection coll, String encoding) throws HTMLParseException { try { Float ieVersion = extractIEVersion(userAgent); String contents = new String(html,encoding); LagartoParser lagartoParser = new LagartoParser(contents.toCharArray()); LagartoDomBuilderConfig config = new LagartoDomBuilderConfig(); config.setCaseSensitive(false); // Conditional comments only apply for IE < 10 config.setEnableConditionalComments(isEnableConditionalComments(ieVersion)); if(ieVersion != null) { config.setCondCommentIEVersion(ieVersion); } lagartoParser.setConfig(config); JMeterTagVisitor tagVisitor = new JMeterTagVisitor(new URLPointer(baseUrl), coll, ieVersion); lagartoParser.parse(tagVisitor); return coll.iterator(); } catch (LagartoException e) { // TODO is it the best way ? https://bz.apache.org/bugzilla/show_bug.cgi?id=55634 if(log.isDebugEnabled()) { log.debug("Error extracting embedded resource URLs from:'"+baseUrl+"', probably not text content, message:"+e.getMessage()); } return Collections.<URL>emptyList().iterator(); } catch (Exception e) { throw new HTMLParseException(e); } } }