Fix extension bindings injection for iframes (reland)
For iframes, we don't want to use the source url for determining the
associated extension because it starts out with an about:blank context
that is scriptable by its parent.
This originally landed in codereview.chromium.org/2151693002/ but
was reverted because of bug 630928 as well as the test failing under
DrMemory (not with memory errors; just not succeeding which likely
indicates some kind of race condition in the test). I've added a fix for
bug 630928 but haven't been able to locally reproduce the test failure
under DrMemory, so I've added some extra logging to the test to hopefully
better understand what might be going wrong.
Memory sheriffs: If the FramesExtensionBindingsApiTest.FramesBeforeNavigation
test fails again without any actual memory errors, please do not revert the
entire CL (since it is an important security fix); instead just disable the
test or add it to a suppression file so I can iterate on a fix.