| Index: third_party/npapi/npspy/analyze_streams.py
|
| diff --git a/third_party/npapi/npspy/analyze_streams.py b/third_party/npapi/npspy/analyze_streams.py
|
| deleted file mode 100644
|
| index 0b2c8dbfbcd177d3a764e0f6336d52047f57307f..0000000000000000000000000000000000000000
|
| --- a/third_party/npapi/npspy/analyze_streams.py
|
| +++ /dev/null
|
| @@ -1,105 +0,0 @@
|
| -# A script for analyzing the output of NPSPY and merging data about streams.
|
| -
|
| -import sys
|
| -
|
| -
|
| -def ReadFile(filename, flags='rb'):
|
| - """Returns the contents of a file."""
|
| - file = open(filename, flags)
|
| - result = file.read()
|
| - file.close()
|
| - return result
|
| -
|
| -
|
| -def WriteFile(filename, contents):
|
| - """Overwrites the file with the given contents."""
|
| - file = open(filename, 'w')
|
| - file.write(contents)
|
| - file.close()
|
| -
|
| -
|
| -# sample line: 'NPP_NewStream(0x645c898, 0x56ba900("application/x-shockwave-flash"), 0x64bb3b0 (http://weeklyad.target.com/target/flash/target/target.swf?ver=090326), TRUE, NP_NORMAL)'
|
| -class Stream:
|
| - def __init__(self, line):
|
| - split = line.split(', ')
|
| -
|
| - self.mime_type = split[1].split('"')[1]
|
| - self.url = split[2].split(' ')[1].strip('()')
|
| - self.seekable = split[3]
|
| - self.type = split[4].strip(')')
|
| - self.size = 0
|
| - self.status = ''
|
| - try:
|
| - self.address = split[2].split(' ')[0]
|
| - except:
|
| - print 'parsing error on ' + line
|
| - self.address = ''
|
| -
|
| - if self.type != 'NP_NORMAL':
|
| - print 'line got unexpected type: ' + line
|
| -
|
| -
|
| -def main(argv=None):
|
| - if argv is None:
|
| - argv = sys.argv
|
| -
|
| - streams = []
|
| -
|
| - if len(argv) != 2:
|
| - print 'need filename'
|
| - return
|
| - file = ReadFile(argv[1])
|
| - for line in file.splitlines():
|
| - if line.startswith('NPP_NewStream('):
|
| - if line.count('(') < 3:
|
| - print 'unknown format for line: ' + line
|
| - continue
|
| -
|
| - s = Stream(line)
|
| - streams.append(s)
|
| - elif line.startswith('NPP_Write('):
|
| - # sample: NPP_Write(0x645c898, 0x64bb3b0, 0, 16384, 0x56c1000("CW")))
|
| - split = line.split(', ')
|
| - address = split[1]
|
| - start = int(split[2])
|
| - size = int(split[3])
|
| - found = False
|
| - for stream in streams:
|
| - if stream.address == address:
|
| - if stream.size != start:
|
| - print 'error: starting at wrong place for write ' + stream.url + ' ' + str(stream.size) + ' ' + str(start)
|
| - stream.size += size
|
| - found = True
|
| - break
|
| -
|
| - if not found:
|
| - print "couldn't find stream to match NPP_Write " + line
|
| - elif line.startswith('NPP_DestroyStream('):
|
| - # sample: NPP_DestroyStream(0x645c898, 0x64bb3b0, NPRES_DONE)
|
| - split = line.split(', ')
|
| - address = split[1]
|
| - status = split[2].strip(')')
|
| - found = False
|
| - for stream in streams:
|
| - if stream.address == address:
|
| - stream.status = status
|
| - stream.address = '' # address can be reused
|
| - found = True
|
| - break
|
| -
|
| - if not found:
|
| - print "couldn't find stream to match NPP_DestroyStream " + line
|
| -
|
| -
|
| - output = []
|
| - for stream in streams:
|
| - if stream.status != 'NPRES_DONE':
|
| - print 'error: no NPP_DestroyStream with success for ' + stream.url + ' ' + stream.status + '.'
|
| - output.append(', '.join([stream.url, stream.mime_type, str(stream.size), stream.seekable]))
|
| - output_file = argv[1].replace('.', '_analyzed.')
|
| -
|
| - WriteFile(output_file, '\n'.join(output))
|
| -
|
| -
|
| -if __name__ == "__main__":
|
| - sys.exit(main())
|
|
|