Problem: When using CloudFlare as a CDN for a Phabricator installation, CloudFlare magic (including the 'Rocket Loader' and auto-minifiers) can break Phabricator in minor ways.
This manifests in odd ways, and importantly it doesn't always seem to break, presumably based on the Moon Phase and I guess whatever CloudFlare and Phabricator are doing on any day. I had an install (haskell.org) where things worked OK, so I made my own. I later switched Haskell.org to a different service (with no magic) and kept on my merry way. But on my personal install things later randomly broke, and I didn't notice this (probably) for several weeks, since I mostly use Phabricator for repository hosting.
Symptoms: Bits and pieces of the UI stop working, for example, 'Description Preview' no longer works, and tapping the '+' symbol at the top of the page doesn't create a dropdown to create a task or event, but forwards to a completely new page with the options to create a task, etc (so it degrades gracefully at least).
Also, minifiers etc are useless since Phabricator does that by itself it seems.
Steps to reproduce
- Put CloudFlare in front of your install as described in the users guide, including for the files domain (which will be where some of the external JavaScript is served from.)
- Go to the CloudFlare panel, and go to the 'Speed' tab.
- Enable options like the Rocket loader and JavaScript minifier, and see if things break (a cache purge should cause this to occur instantly). The Rocket Loader is the primary offender IIRC.
Solution: Put a big ol'
in the users guide.
Can I offer a patch for this: Probably.
Caveat Emptor: I fixed this a week or two ago and forgot to report this. I'll retest it of course, but didn't want to forget.