ZoomBySite and Safari 7

As my inbox is painfully aware, ZoomBySite has been broken by Safari 7. I’ve been trying (unsuccessfully) to come up with a fix in my spare time since it came out several weeks ago.

When a page loads, the ZoomBySite extension checks to see whether a zoom level has been saved for the page’s domain. To do this, a little bit of Javascript on the page sends a message over to the extension, which checks its database of zoom levels, and if one is found, sends a message back to the page with the desired zoom level. The problem with Safari 7 is that when the extension tries to send the message back to the page, it fails. I tried several different workarounds with no success.

The only thing that worked was to not try and load the zoom level until the page fully loads. This was very jarring because the page would load at the default zoom level and then after a second or so (depending on how big the page was and the speed of your Internet connection), it would resize to your saved level. One of the main things that I’m proud of with this simple extension is how quickly the zoom level is applied… generally before the page is visible, so I hated this solution.

Apple seeded a pre-release version of Safari 7.0.1 yesterday. I was able to download it today and verify that one of my attempted fixes for Safari 7 does work with Safari 7.0.1.

Unfortunately, Safari 7.0.1 is only available to members of Apple’s Safari developers program (which is free to sign up for). I imagine that the public release should be available soon though.

Later tonight, I hope to upload a new version of ZoomBySite which should work with Safari 7.0.1. Thank you for your patience!

Update – Thanks to a very helpful suggestion from a Safari engineer, I was able to include a much better fix in ZoomBySite 1.6 which should work with Safari 7.