Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: third_party/npapi/npspy/analyze_streams.py

Issue 665543002: Remove third_party/npapi/npspy. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | third_party/npapi/npspy/common/epmanager.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # A script for analyzing the output of NPSPY and merging data about streams.
2
3 import sys
4
5
6 def ReadFile(filename, flags='rb'):
7 """Returns the contents of a file."""
8 file = open(filename, flags)
9 result = file.read()
10 file.close()
11 return result
12
13
14 def WriteFile(filename, contents):
15 """Overwrites the file with the given contents."""
16 file = open(filename, 'w')
17 file.write(contents)
18 file.close()
19
20
21 # sample line: 'NPP_NewStream(0x645c898, 0x56ba900("application/x-shockwave-flas h"), 0x64bb3b0 (http://weeklyad.target.com/target/flash/target/target.swf?ver=09 0326), TRUE, NP_NORMAL)'
22 class Stream:
23 def __init__(self, line):
24 split = line.split(', ')
25
26 self.mime_type = split[1].split('"')[1]
27 self.url = split[2].split(' ')[1].strip('()')
28 self.seekable = split[3]
29 self.type = split[4].strip(')')
30 self.size = 0
31 self.status = ''
32 try:
33 self.address = split[2].split(' ')[0]
34 except:
35 print 'parsing error on ' + line
36 self.address = ''
37
38 if self.type != 'NP_NORMAL':
39 print 'line got unexpected type: ' + line
40
41
42 def main(argv=None):
43 if argv is None:
44 argv = sys.argv
45
46 streams = []
47
48 if len(argv) != 2:
49 print 'need filename'
50 return
51 file = ReadFile(argv[1])
52 for line in file.splitlines():
53 if line.startswith('NPP_NewStream('):
54 if line.count('(') < 3:
55 print 'unknown format for line: ' + line
56 continue
57
58 s = Stream(line)
59 streams.append(s)
60 elif line.startswith('NPP_Write('):
61 # sample: NPP_Write(0x645c898, 0x64bb3b0, 0, 16384, 0x56c1000("CW")))
62 split = line.split(', ')
63 address = split[1]
64 start = int(split[2])
65 size = int(split[3])
66 found = False
67 for stream in streams:
68 if stream.address == address:
69 if stream.size != start:
70 print 'error: starting at wrong place for write ' + stream.url + ' ' + str(stream.size) + ' ' + str(start)
71 stream.size += size
72 found = True
73 break
74
75 if not found:
76 print "couldn't find stream to match NPP_Write " + line
77 elif line.startswith('NPP_DestroyStream('):
78 # sample: NPP_DestroyStream(0x645c898, 0x64bb3b0, NPRES_DONE)
79 split = line.split(', ')
80 address = split[1]
81 status = split[2].strip(')')
82 found = False
83 for stream in streams:
84 if stream.address == address:
85 stream.status = status
86 stream.address = '' # address can be reused
87 found = True
88 break
89
90 if not found:
91 print "couldn't find stream to match NPP_DestroyStream " + line
92
93
94 output = []
95 for stream in streams:
96 if stream.status != 'NPRES_DONE':
97 print 'error: no NPP_DestroyStream with success for ' + stream.url + ' ' + stream.status + '.'
98 output.append(', '.join([stream.url, stream.mime_type, str(stream.size), str eam.seekable]))
99 output_file = argv[1].replace('.', '_analyzed.')
100
101 WriteFile(output_file, '\n'.join(output))
102
103
104 if __name__ == "__main__":
105 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | third_party/npapi/npspy/common/epmanager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698