Only use pushState where supported