public CandidateElementExtractor(ExtractorManager checker, @Assisted EmbeddedBrowser browser,
FormHandler formHandler, CrawljaxConfiguration config) {
checkedElements = checker;
this.browser = browser;
this.formHandler = formHandler;
CrawlRules rules = config.getCrawlRules();
PreCrawlConfiguration preCrawlConfig = rules.getPreCrawlConfig();
this.excludeCrawlElements = asMultiMap(preCrawlConfig.getExcludedElements());
this.includedCrawlElements = ImmutableList.<CrawlElement> builder()
.addAll(preCrawlConfig.getIncludedElements())
.addAll(rules.getInputSpecification().getCrawlElements())
.build();
crawlFrames = rules.shouldCrawlFrames();
clickOnce = rules.isClickOnce();
randomizeElementsOrder = rules.isRandomizeCandidateElements();
ignoredFrameIdentifiers = rules.getIgnoredFrameIdentifiers();
followExternalLinks = rules.followExternalLinks();
siteHostName = config.getUrl().getHost();
}