Update: The issue is caused by pages that use a technology called react
– it was first developed by Facebook.
Due to the way react works, I’m unable to convert text on parts of web pages that use react. However, on websites which only use react for some parts of the functionality, autoConvert will continue to operate as normal on the rest of it.
Still doesn’t work on Facebook, though 😦
I’ve finally been able to diagnose the source of the problem – the Facebook’s BigPipe pagelets.
The BigPipe architecture is designed to load different parts of the webpage (called pagelets) in parallel. The HTML for them is pushed onto the page once both the CSS and the content, for that pagelet have been downloaded. Once all the pagelets have been downloaded, the javascript files for each pagelet is finally downloaded, and executed.
While Facebook is still waiting to receive, loading and dynamically populate the pagelet divs, Chrome declares the page loaded, and fires up autoConvert. This results in autoConvert working with nodes that wouldn’t be there when the conversion happens (BigPipe will replace them with actual, delayed content).
When that happens, Chrome/autoConvert/Facebook go in a lockup, and everything hangs.
That’s the issue.
Now to figure out a solution.