In the extension API, there is a parameter for the manifest.json called all_frames
Optional. Defaults to false, meaning that only the top frame is matched.
If specified true, it will inject into all frames, even if the frame is not the topmost frame in the tab. Each frame is checked independently for URL requirements, it will not inject into child frames if the URL requirements are not met.
I'm familiar with frames as in frames per second, but that doesn't seem to apply here. What is meant by "only the top frame is matched"? Is "frame" the same thing as tab?