navigator.product returns "Gecko". Can be tested by putting the following in the address bar: javascript:alert(navigator.product); Surely this is pointless and the logical value should be "WebKit". This is actually a sensible way of detecting Gecko-based browsers (or could be) but here WebKit is muddying the waters. The same could be said for lots of other navigator properties.
It is very likely that we do this for compatibility reasons.
Based on Mark Rowe's comments, it sounds like this is a deliberate choice, and not to be fixed. Note that the navigator.vendor, navigator.appVersion, and navigator.userAgent strings may be useful in distinguishing a WebKit based browser from a Gekko based one. Closing this bug on the understanding that we don't intend to change this for compatibility reasons, If this decision needs to be revisited, particularly if this is causing website failures, please reopen.