Пример #1
0
        private void OnReadResponse(object sender, Chromium.Event.CfxReadResponseEventArgs e)
        {
            int bytesToCopy = webResource.data.Length - readResponseStreamOffset;

            if (bytesToCopy > e.BytesToRead)
            {
                bytesToCopy = e.BytesToRead;
            }

            Marshal.Copy(webResource.data, readResponseStreamOffset, e.DataOut, bytesToCopy);

            e.BytesRead = bytesToCopy;

            readResponseStreamOffset += bytesToCopy;

            e.SetReturnValue(true);


            if (readResponseStreamOffset == webResource.data.Length)
            {
                gcHandle.Free();
                Console.WriteLine($"[加载文件资源]:\t{requestUrl}");
                Console.WriteLine($" -> \t{physicalPath}");
            }
        }
Пример #2
0
 private void Handler_ReadResponse(object sender, Chromium.Event.CfxReadResponseEventArgs e)
 {
     Marshal.Copy(buf, done, e.DataOut, e.BytesToRead); //TODO
     done       += e.BytesToRead;
     e.BytesRead = e.BytesToRead;
     e.SetReturnValue(true);
 }
Пример #3
0
        private void LocalResourceHandler_ReadResponse(object sender, Chromium.Event.CfxReadResponseEventArgs e)
        {
            int bytesToCopy = webResource.data.Length - readResponseStreamOffset;

            if (bytesToCopy > e.BytesToRead)
            {
                bytesToCopy = e.BytesToRead;
            }
            System.Runtime.InteropServices.Marshal.Copy(webResource.data, readResponseStreamOffset, e.DataOut, bytesToCopy);
            e.BytesRead = bytesToCopy;
            readResponseStreamOffset += bytesToCopy;
            e.SetReturnValue(true);


            if (readResponseStreamOffset == webResource.data.Length)
            {
                gcHandle.Free();
                Console.WriteLine(string.Format("[完成]:\t{0}", requestUrl));
            }
        }
Пример #4
0
        private void OnReadResponse(object sender, Chromium.Event.CfxReadResponseEventArgs e)
        {
            int bytesToCopy = webResource.data.Length - readResponseStreamOffset;

            if (bytesToCopy > e.BytesToRead)
            {
                bytesToCopy = e.BytesToRead;
            }

            Marshal.Copy(webResource.data, readResponseStreamOffset, e.DataOut, bytesToCopy);

            e.BytesRead = bytesToCopy;

            readResponseStreamOffset += bytesToCopy;

            e.SetReturnValue(true);


            if (readResponseStreamOffset == webResource.data.Length)
            {
                gcHandle.Free();
            }
        }
Пример #5
0
        private void EmbeddedResourceHandler_ReadResponse(object sender, Chromium.Event.CfxReadResponseEventArgs e)
        {
            int bytesToCopy = webResource.data.Length - readResponseStreamOffset;

            if (bytesToCopy > e.BytesToRead)
            {
                bytesToCopy = e.BytesToRead;
            }
            System.Runtime.InteropServices.Marshal.Copy(webResource.data, readResponseStreamOffset, e.DataOut, bytesToCopy);
            e.BytesRead = bytesToCopy;
            readResponseStreamOffset += bytesToCopy;
            e.SetReturnValue(true);

            //if (requestUrl == "embedded://www/Scripts/kendo.web.min.js")
            //{
            //	Console.WriteLine($"Total:{webResource.data.Length}\t buff:{bytesToCopy}\t read:{readResponseStreamOffset}\t remain:{webResource.data.Length - readResponseStreamOffset }");
            //}

            if (readResponseStreamOffset == webResource.data.Length)
            {
                gcHandle.Free();
                Console.WriteLine($"[完成]:\t{requestUrl}");
            }

            //if (webResource==null || webResource.data == null || webResource.data.Length == 0)
            //{
            //	e.BytesRead = 0;

            //	e.SetReturnValue(false);

            //	var ii = e.BytesToRead;
            //}
            //else
            //{

            //	int bytesLeft = webResource.data.Length - readResponseStreamOffset;
            //	int bytesToCopy = e.BytesToRead;

            //	if (bytesLeft > e.BytesToRead)
            //	{

            //	}



            //	bytesToCopy = e.BytesToRead;

            //	System.Runtime.InteropServices.Marshal.Copy(webResource.data, readResponseStreamOffset, e.DataOut, bytesToCopy);

            //	e.BytesRead = bytesToCopy;
            //	readResponseStreamOffset += bytesToCopy;

            //	if (requestUrl == "embedded://www/Scripts/kendo.web.min.js")
            //	{
            //		Console.WriteLine($"Total:{webResource.data.Length}\t buff:{bytesToCopy}\t read:{readResponseStreamOffset}\t remain:{webResource.data.Length - readResponseStreamOffset }");
            //	}
            //	else {
            //		e.SetReturnValue(true);
            //	}


            //}
        }