NPAPI:使用NPN_RequestRead进行更精细的控制

时间:2014-07-08 08:37:46

标签: firefox mozilla npapi

我正在尝试构建一个NPAPI,它将按需下载部分流。我一直在取得进步(compared to previously)。我现在有:

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;
}

似乎正朝着正确的方向发展。我可以在Network History(系统监视器)中看到该插件正在下载几个Mbytes然后最终停止。

我现在想要的是能够更好地控制这种“惯性”。我无法从NPN_RequestRead拨打NPP_NewStream,因为它太早并且返回错误。我无法从NPP_Write调用NPN_RequestRead,因为它似乎为时已晚。从NPP_WriteReady调用NPN_RequestRead仍然会下载一些我很乐意跳过的东西。

如何确保在第一次拨打NPN_RequestRead之前只下载最少的内容?

0 个答案:

没有答案