I think in general, free speech should be the rule. It's the best-known way to prevent authoritarianism and to prevent bad views from becoming normal. Nazi Germany and Communist Russia would never have lasted for so long or done so much evil if all people were guaranteed the right to express their opinions -- even controversial opinions.
That said, there are two situations when I think free speech can be reasonably restricted:
- Hateful speech should be restricted in academic and workplace environments, since people are trying to learn / make a living and shouldn't have to be distracted by Hateful speech. (However academic environments should also be bastions of free speech, so the defition of Hateful speech should be super specific to prevent misuse of the law).
- Counter-speech should be restricted if it reasonably prevents a voice from being heard. If there's a speaker you don't like, you can bring signs to protest and refuse to applaud, but you shouldn't be singing or booing constantly or shouting/chanting until the speech is done. Free speech is about all voices being heard -- not just the loudest ones. (I have no problem with protests being held outside the venue, however).