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

Side by Side Diff: Source/core/inspector/CodeGeneratorInstrumentation.py

Issue 306053010: Tried using CrossThreadPersistent for workerDebuggerAgents (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 Google Inc. All rights reserved. 2 # Copyright (c) 2013 Google Inc. All rights reserved.
3 # 3 #
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 if (agent->${name}(${params_agent})) 108 if (agent->${name}(${params_agent}))
109 timelineAgentId = agent->id(); 109 timelineAgentId = agent->id();
110 }""") 110 }""")
111 111
112 112
113 template_instrumenting_agents_h = string.Template("""// Code generated from Insp ectorInstrumentation.idl 113 template_instrumenting_agents_h = string.Template("""// Code generated from Insp ectorInstrumentation.idl
114 114
115 #ifndef InstrumentingAgentsInl_h 115 #ifndef InstrumentingAgentsInl_h
116 #define InstrumentingAgentsInl_h 116 #define InstrumentingAgentsInl_h
117 117
118 #include "platform/heap/Handle.h"
118 #include "wtf/FastAllocBase.h" 119 #include "wtf/FastAllocBase.h"
119 #include "wtf/Noncopyable.h" 120 #include "wtf/Noncopyable.h"
120 #include "wtf/PassRefPtr.h" 121 #include "wtf/PassRefPtr.h"
121 #include "wtf/RefCounted.h" 122 #include "wtf/RefCounted.h"
122 123
123 namespace WebCore { 124 namespace WebCore {
124 125
125 ${forward_list} 126 ${forward_list}
126 127
127 class InstrumentingAgents : public RefCounted<InstrumentingAgents> { 128 class InstrumentingAgents : public RefCountedWillBeGarbageCollectedFinalized<Ins trumentingAgents> {
128 WTF_MAKE_NONCOPYABLE(InstrumentingAgents); 129 WTF_MAKE_NONCOPYABLE(InstrumentingAgents);
129 WTF_MAKE_FAST_ALLOCATED; 130 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
130 public: 131 public:
131 static PassRefPtr<InstrumentingAgents> create() 132 static PassRefPtrWillBeRawPtr<InstrumentingAgents> create()
132 { 133 {
133 return adoptRef(new InstrumentingAgents()); 134 return adoptRefWillBeNoop(new InstrumentingAgents());
134 } 135 }
135 ~InstrumentingAgents() { } 136 ~InstrumentingAgents() { }
137 void trace(Visitor*);
136 void reset(); 138 void reset();
137 139
138 ${accessor_list} 140 ${accessor_list}
139 141
140 private: 142 private:
141 InstrumentingAgents(); 143 InstrumentingAgents();
142 144
143 ${member_list} 145 ${member_list}
144 }; 146 };
145 147
146 } 148 }
147 149
148 #endif // !defined(InstrumentingAgentsInl_h) 150 #endif // !defined(InstrumentingAgentsInl_h)
149 """) 151 """)
150 152
151 template_instrumenting_agent_accessor = string.Template(""" 153 template_instrumenting_agent_accessor = string.Template("""
152 ${class_name}* ${getter_name}() const { return ${member_name}; } 154 ${class_name}* ${getter_name}() const { return ${member_name}; }
153 void set${class_name}(${class_name}* agent) { ${member_name} = agent; }""") 155 void set${class_name}(${class_name}* agent) { ${member_name} = agent; }""")
154 156
155 template_instrumenting_agents_cpp = string.Template(""" 157 template_instrumenting_agents_cpp = string.Template("""
156 InstrumentingAgents::InstrumentingAgents() 158 InstrumentingAgents::InstrumentingAgents()
157 : $init_list 159 : $init_list
158 { 160 {
159 } 161 }
160 162
163 void InstrumentingAgents::trace(Visitor* visitor)
164 {
165 $trace_list
166 }
167
161 void InstrumentingAgents::reset() 168 void InstrumentingAgents::reset()
162 { 169 {
163 $reset_list 170 $reset_list
164 }""") 171 }""")
165 172
166 173
167 174
168 def match_and_consume(pattern, source): 175 def match_and_consume(pattern, source):
169 match = re.match(pattern, source) 176 match = re.match(pattern, source)
170 if match: 177 if match:
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 return include_header("core/inspector/" + name) 440 return include_header("core/inspector/" + name)
434 441
435 442
436 def generate_instrumenting_agents(used_agents): 443 def generate_instrumenting_agents(used_agents):
437 agents = list(used_agents) 444 agents = list(used_agents)
438 445
439 forward_list = [] 446 forward_list = []
440 accessor_list = [] 447 accessor_list = []
441 member_list = [] 448 member_list = []
442 init_list = [] 449 init_list = []
450 trace_list = []
443 reset_list = [] 451 reset_list = []
444 452
445 for agent in agents: 453 for agent in agents:
446 class_name, getter_name = agent_getter_signature(agent) 454 class_name, getter_name = agent_getter_signature(agent)
447 member_name = "m_" + getter_name 455 member_name = "m_" + getter_name
448 456
449 forward_list.append("class %s;" % class_name) 457 forward_list.append("class %s;" % class_name)
450 accessor_list.append(template_instrumenting_agent_accessor.substitute( 458 accessor_list.append(template_instrumenting_agent_accessor.substitute(
451 None, 459 None,
452 class_name=class_name, 460 class_name=class_name,
453 getter_name=getter_name, 461 getter_name=getter_name,
454 member_name=member_name)) 462 member_name=member_name))
455 member_list.append(" %s* %s;" % (class_name, member_name)) 463 member_list.append(" RawPtrWillBeMember<%s> %s;" % (class_name, membe r_name))
456 init_list.append("%s(0)" % member_name) 464 init_list.append("%s(nullptr)" % member_name)
457 reset_list.append("%s = 0;" % member_name) 465 trace_list.append("visitor->trace(%s);" % member_name)
466 reset_list.append("%s = nullptr;" % member_name)
458 467
459 forward_list.sort() 468 forward_list.sort()
460 accessor_list.sort() 469 accessor_list.sort()
461 member_list.sort() 470 member_list.sort()
462 init_list.sort() 471 init_list.sort()
472 trace_list.sort()
463 reset_list.sort() 473 reset_list.sort()
464 474
465 header_lines = template_instrumenting_agents_h.substitute( 475 header_lines = template_instrumenting_agents_h.substitute(
466 None, 476 None,
467 forward_list="\n".join(forward_list), 477 forward_list="\n".join(forward_list),
468 accessor_list="\n".join(accessor_list), 478 accessor_list="\n".join(accessor_list),
469 member_list="\n".join(member_list)) 479 member_list="\n".join(member_list))
470 480
471 cpp_lines = template_instrumenting_agents_cpp.substitute( 481 cpp_lines = template_instrumenting_agents_cpp.substitute(
472 None, 482 None,
473 init_list="\n , ".join(init_list), 483 init_list="\n , ".join(init_list),
484 trace_list="\n ".join(trace_list),
474 reset_list="\n ".join(reset_list)) 485 reset_list="\n ".join(reset_list))
475 486
476 return header_lines, cpp_lines 487 return header_lines, cpp_lines
477 488
478 489
479 def generate(input_path, output_dir): 490 def generate(input_path, output_dir):
480 fin = open(input_path, "r") 491 fin = open(input_path, "r")
481 files = load_model_from_idl(fin.read()) 492 files = load_model_from_idl(fin.read())
482 fin.close() 493 fin.close()
483 494
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
522 if not output_dirpath: 533 if not output_dirpath:
523 raise Exception("Output directory must be specified") 534 raise Exception("Output directory must be specified")
524 except Exception: 535 except Exception:
525 # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html 536 # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
526 exc = sys.exc_info()[1] 537 exc = sys.exc_info()[1]
527 sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc) 538 sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc)
528 sys.stderr.write("Usage: <script> --output_dir <output_dir> InspectorInstrum entation.idl\n") 539 sys.stderr.write("Usage: <script> --output_dir <output_dir> InspectorInstrum entation.idl\n")
529 exit(1) 540 exit(1)
530 541
531 generate(input_path, output_dirpath) 542 generate(input_path, output_dirpath)
OLDNEW
« no previous file with comments | « Source/bindings/v8/custom/V8InjectedScriptManager.cpp ('k') | Source/core/inspector/DOMEditor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698