Firefox NPAPI:使用NPN_RequestRead的更精细控件

Firefox NPAPI:使用NPN_RequestRead的更精细控件,firefox,mozilla,npapi,Firefox,Mozilla,Npapi,我正在尝试构建一个可以按需下载部分流的应用程序。我一直在进步。我现在有: int32_t NPP_WriteReady(NPP instance, NPStream* stream) { NPByteRange range; range.offset = 0; range.length = 300; // at least a non-null size request range.next = NULL; NPError e = s_pBrowserFunctions-&g

我正在尝试构建一个可以按需下载部分流的应用程序。我一直在进步。我现在有:

int32_t NPP_WriteReady(NPP instance, NPStream* stream)
{
  NPByteRange range;
  range.offset = 0;
  range.length = 300; // at least a non-null size request
  range.next = NULL;
  NPError e = s_pBrowserFunctions->requestread(stream,&range));
  return 0;
}
这似乎正朝着正确的方向发展。我可以在系统监视器中看到插件正在下载几兆字节,然后最终停止

我现在想要的是能够更好地控制这种“惯性”。我无法从调用,因为太早并且返回错误。我不能给NPN_RequestRead打电话,因为似乎太晚了。打电话给NPN_RequestRead,我仍然下载了很多东西,我很乐意跳过


如何确保在第一次调用之前只下载最少的内容?

使用此API可能不可能;您最好从浏览器中获取代理信息并使用其他工具,例如curl