just staying at the airport you don't need to worry about the visa. depending on your connecting airline (air canada or british airways) you'll be flying out of terminal 3 or 5 to vancouver. both of those terminals have plenty of shops and restaurants, you can easily kill 4 hours just roaming around, take a nap and you can kill 7 hours easilty. if you feel adventurous you can give it a shot to see if you can get the 24 hour visa at the customs and take the train to London. that will help you kill 7 hours in no time
vancouver is a beautiful city, love that city...surrey not so much lol