Basically, if an app lauches, it means that its code can compile and be loaded (think Windows Me).
Making it perform its primary task then entails:
- running the loaded machine code in a way that doesn't crash
- accessing the hardware or APIs needed to perform its task.
I would guess that Firefox loads, but it may either crash, hang, timeout or return an error when accessing the phone's TCP/IP stack. Moreover, said stack must be complete enough (provide required ports, DNS resolving etc.) for Fx to perform its task properly.