Um, I build professional web apps. It's the consumer-y ones that violate least surprise.
You originally said you to change state *when the native Save As dialog opens*. That is not possible. Now you changed the requirement. It is not surprising to want a spinner while a file is *generating*, but that's not at all the same event. -- S.