This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
Although resource extractors should not extract resources that have already been extracted, they may run concurrently and as such may not know that the same resource is currently being extracted by some other extractor. Make sure that Preprocessor.addResourcesToProcess does not insert resources that are already in the list. Resources should be identified by their URI, their depth and their context, i.e. it is perfectly normal for the same URI to appear in different contexts (e.g. image and object).
Preprocessor.addResourcesToProcess now makes sure that a given URI (fragments not taken into account) at a given depth and at a given context appears only once... ... except that inline/embedded styles are fragments of a given Resource and de facto share the same URI, the same depth, and the same context, sigh. The way the case is handled currently is that the function accepts duplicates when the resource has already been retrieved. Since inline/embedded styles are created from a fragment of a retrieved resource, they are de facto created as "already retrieved" and thus are inserted without any problem. Still, it would be better to have easy-to-use identifiers to distinguish between styles, and thus base the algorithm on something more tangible than a difference between retrieved/not-retrieved.