def __init__(self, starting_elements, total_operations, browser, seed, canvas_size, file_type='html'): self._starting_elements = int(starting_elements) self._total_operations = int(total_operations) self._browser = browser seed = int(seed) # self._html_fuzzer = HtmlFuzzer(self._starting_elements, 3, seed) self._html_fuzzer = Html5Fuzzer(int(seed), self._starting_elements, 10, 5, file_type) self._css_fuzzer = CssFuzzer(seed) self._canvas_fuzzer = CanvasFuzzer(int(canvas_size)) if seed == 0: random.seed() else: random.seed(seed) self._file_type = file_type self._function_count = 0 self._operations_count = 0 self._js_elements = {} """:type dict(JsElement)""" self._occurring_events = {} for event in DomObjectTypes.DOM_EVENTS: self._occurring_events[event] = 0 self._html_page = None self._calls_in_startup = [] # arrays dictionary layout: {'array_id': [JsObject, .... JsObject], ...} self._arrays = {}
def __init__(self, seed, starting_elements, html_depth, html_max_attr, canvas_size, js_block_size, function_count, file_type, media_folder="NONE"): self._logger = logging.getLogger(__name__) self._html_fuzzer = Html5Fuzzer(int(seed), int(starting_elements), int(html_depth), int(html_max_attr), file_type) self._canvas_fuzzer = CanvasFuzzer(int(canvas_size)) self._css_fuzzer = CssFuzzer(int(seed)) random.seed(int(seed)) if int(seed) != 0 else random.seed() self._size = int(js_block_size) self._function_count = int(function_count) self._file_type = file_type self._js_objects = {} self._media_folder = media_folder self.__init_js_object_dict() self._js_default_functions = [] self._js_event_listener = [] self._js_array_functions = [] max_funcs = min((self._size / 10), 20) for i in range(max_funcs): self._js_array_functions.append("array_func_" + str(i)) self._js_event_listener.append("event_handler_" + str(i)) self._html_page = HtmlPage()