A while back, I camped under a Hickory tree, where Squirrels were eating the nuts. After a couple of days, my roof was covered with the broken shells. It rained for a while; when I swept off the shells, I noticed they had stained my white TPO roof brown.
I tried everything to remove the stains with no success. Until... I tried Starbrite's Extreme Clean product. It worked so well, I called the company and complemented them on how well it worked. I posted this under the Discussion section.
Several asked if it had any petroleum in it. Not knowing for sure, I called the company. No petroleum, no bleach and no acids. They said it is perfectly safe for rubber or TPO roofs. I picked up some more for future use.