Norton Safe Web extension is causing crashes / hangs under [WKRemoteObjectEncoder encodeObject:forKey:]. Bug 219620 was supposed to fix it but it didn't.
Created attachment 420969 [details]
Committed r273141: <https://commits.webkit.org/r273141>
All reviewed patches have been landed. Closing bug and clearing flags on attachment 420969 [details].
Comment on attachment 420969 [details]
View in context: https://bugs.webkit.org/attachment.cgi?id=420969&action=review
> + The logic introduced in r270559 to detect cycles was flawed because it relied on a NSSet of
> + NSObject* and [NSSet containsObject:] to detect the cycles. The issue is that [NSSet containsObject:]
> + doesn't do a simple pointer comparison but instead calls [NSObject isEqual:] which is very
> + expensive for types like NSDictionary and leads to trouble when the dictionary contains a cycle.
> + To address this I replaced the NSSet with a WTF::HashSet<NSObject *> so that key lookup ends up
> + doing a simple pointer comparison.
Fine to use HashSet, but note that within the Cocoa world the NSMapTable collection is available for uses like this.