Summary: | Web Inspector: Generate ObjC inspector protocol types and alternate dispatcher interfaces | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Joseph Pecoraro <joepeck> | ||||||||
Component: | Web Inspector | Assignee: | Joseph Pecoraro <joepeck> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | buildbot, burg, commit-queue, graouts, joepeck, rniwa, timothy, webkit-bug-importer | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | All | ||||||||||
OS: | All | ||||||||||
Attachments: |
|
Description
Joseph Pecoraro
2014-10-24 11:05:20 PDT
Created attachment 240416 [details]
[PATCH] Proposed Fix
Created attachment 240417 [details]
[PACKAGE] Static and Generated Sources
This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`) Attachment 240416 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py:71: [FrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain] Instance of 'FrontendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:58: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'domains_to_generate' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:59: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:62: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:85: [BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:107: [BackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:197: [BackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py:78: [AlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain] Instance of 'AlternateBackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:81: [BackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain] Instance of 'BackendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:101: [BackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain] Instance of 'BackendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:49: [ObjectiveCConfigurationImplementationGenerator.domains_to_generate] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:66: [ObjectiveCConfigurationImplementationGenerator.generate_output] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:97: [ObjectiveCConfigurationImplementationGenerator._generate_handler_implementation_for_command] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_header.py:105: [FrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain] Instance of 'FrontendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:62: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'domains_to_generate' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:63: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:64: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:65: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:73: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:114: [ProtocolTypesHeaderGenerator._generate_forward_declarations] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:153: [ProtocolTypesHeaderGenerator._generate_typedefs_for_domain] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:172: [ProtocolTypesHeaderGenerator._generate_builders_for_domain] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py:134: [generate_from_specification] Undefined variable 'BackendCommandsGenerator' [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py:140: [generate_from_specification] Undefined variable 'ProtocolTypesImplementationGenerator' [pylint/E0602] [5]
Total errors found: 24 in 35 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 240416 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=240416&action=review > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:101 > + # Generate ObjC types, command handlers, and event dispatchers for a subset of domains. > + > + DOMAINS_ON_TOP_OF_JAVASCRIPT_DOMAINS = ['CSS', 'DOM', 'DOMStorage', 'Network', 'Page'] Despite the whitelist, I have tested that we can generate type/command/event interfaces for all domains. However we do not anticipate needing to generate ObjC interfaces for all domains (e.g. ApplicationCache, LayerTree, ...) so we only generate for a subset of domains. Tweaked in the functions below for each generator. Comment on attachment 240416 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=240416&action=review > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:39 > +def strip_comment_markers(str): strip_block_comment_delimiters > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:54 > +for key, value in _OBJC_IDENTIFIER_RENAME_MAP.items(): Map comprehension: dict((v,k) for k, v in map.iteritems()) > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:65 > + def category_of_type(_type): I prefer from_type, category_from_type or category_for_type. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:67 > + if _type.raw_name() == 'string': _type.raw_name() is 'string' > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:69 > + if _type.raw_name() == 'object' or _type.raw_name() == 'any': _type.raw_name() in ['object', 'any'] >> Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:101 >> + DOMAINS_ON_TOP_OF_JAVASCRIPT_DOMAINS = ['CSS', 'DOM', 'DOMStorage', 'Network', 'Page'] > > Despite the whitelist, I have tested that we can generate type/command/event interfaces for all domains. However we do not anticipate needing to generate ObjC interfaces for all domains (e.g. ApplicationCache, LayerTree, ...) so we only generate for a subset of domains. Tweaked in the functions below for each generator. This name is weird, why not call it WEBCORE_DOMAINS_TO_GENERATE? > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:171 > + def objc_accessor_type_for_raw_name(raw_name): (Applies throughout) use str in ['a', 'b', ...] to tighten these lines. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:197 > + def objc_class_for_raw_name(raw_name): It's not obvious to me (not on ObjC expert) when either of these methods are more appropriate. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:209 > + def protocol_type_for_raw_name(raw_name): (Next two methods) Is this different from what the C++ generator does? If so, why? > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:257 > + def objc_accessor_type_for_member_internal(_type): (Several cases below) In similar code for C++ generator, it first unwraps aliased types then does instance checks. I think I prefer this to explicit depth-1 recursion. Comment on attachment 240416 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=240416&action=review >>> Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:101 >>> + DOMAINS_ON_TOP_OF_JAVASCRIPT_DOMAINS = ['CSS', 'DOM', 'DOMStorage', 'Network', 'Page'] >> >> Despite the whitelist, I have tested that we can generate type/command/event interfaces for all domains. However we do not anticipate needing to generate ObjC interfaces for all domains (e.g. ApplicationCache, LayerTree, ...) so we only generate for a subset of domains. Tweaked in the functions below for each generator. > > This name is weird, why not call it WEBCORE_DOMAINS_TO_GENERATE? Yeah, a better name would be just DOMAINS_TO_GENERATE. It is already in an "ObjC" named class. This will be for WebInspector.framework not WebCore. >> Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:209 >> + def protocol_type_for_raw_name(raw_name): > > (Next two methods) Is this different from what the C++ generator does? If so, why? I should work towards removing these. Originally I generated ObjC types on top of TypeBuilder/Inspector::Protocol so I built these up as I went. I then switched to just making ObjC types on top of InspectorObject/Inspector::Unchecked, and these got left behind but are kinda used in one case to figure out a particular array conversion. I had a FIXME comment to convert to using the C++ generator versions and never did it. I believe there was some subtle difference but I can't remember now. I'll add back the FIXME and look into removing them. Comment on attachment 240416 [details] [PATCH] Proposed Fix View in context: https://bugs.webkit.org/attachment.cgi?id=240416&action=review Overall it looks quite good and clean. Miscellaneous comments that apply across many files, and should be addressed: * #if ENABLE(FEATURE) guards are not emitted for most generated files. Test case: generate-domains-with-feature-guards.json * Why aren't RWIProtocol.h, RWIProtocolJSONObjectInternal.h, etc included in this patch? * Will WebInspector.framework be added to the Xcode solution? Not sure where the generated files end up... or is the generated code used only externally? Please post a revised patch before landing. :) > Source/JavaScriptCore/ChangeLog:26 > + Event dispather interfaces are straight forward, just packaging up the arguments and sending typo: 'dispatcher' > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:325 > + if category == ObjCTypeCategory.Simple or category == ObjCTypeCategory.String: (multiple places) category in [...] > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:329 > + if category == ObjCTypeCategory.Object: (multiple places) if category is ObjcTypeCategory.Array: > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:49 > + return filter(ObjCGenerator.should_generate_domain_command_handler_filter(self.model()), Generator.domains_to_generate(self)) (Applies to all new generators) In lieu of returning filter function objects, you can use functools.partial to do the equivalent of JavaScript's Function.prototype.bind: import functools ... return filter(functools.partial(ObjCGenerator.should_generator_domain_command_handler, self.model()), Generator.domains_to_generate(self)) > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:102 > + # FIXME: Throw exception for nil required return parameters. Please file a bug and add the bugzilla link here. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_header.py:88 > + def _variableNamePrefixForDomain(self, domain): use_lower_case_names_please > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_implementation.py:61 > + self._command_filter = ObjCGenerator.should_generate_domain_command_handler_filter(self.model()) I would go this way, passing in the domain and command. Then callsites don't need to duplicate this code. def _should_generate_commands(): return domain.commands and ... > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_implementation.py:73 > + lines = [] I would have made this into a template. It's long and the two stray .extends are hard to see. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_implementation.py:93 > + if domain.commands and self._command_filter(domain): See above. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_implementation.py:102 > + def _generate_ivars(self, domains): Is 'ivars' an ObjC term? > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_configuration_implementation.py:144 > + def _variableNamePrefixForDomain(self, domain): This guy again. Maybe he should be in ObjCGenerator. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_conversion_helpers.py:46 > +class ObjectiveCConversionHelpersGenerator(Generator): Why ObjC in some places but ObjectiveC here? I like the short version. > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:67 > + # FIXME: Currently we generate enums/types for all types in the type_domains. Bug number! > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:70 > + # of event_domains. typo: 'or' > Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:113 > + add_whitespace_separator(lines) Can this be add_newline() instead? > Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result:1623 > +// DO NOT EDIT THIS FILE. It is automatically generated from commands-with-async-attribute.json Now that we have umpteen generators, this comment should also say which generator created the file :) Of course, this can be a separate bug. > Source/JavaScriptCore/inspector/scripts/tests/expected/commands-with-async-attribute.json-result:1630 > + I wish there was an easy way for the generator to say "don't bother outputting this file for test results". (In reply to comment #9) > Comment on attachment 240416 [details] > [PATCH] Proposed Fix > > View in context: > https://bugs.webkit.org/attachment.cgi?id=240416&action=review > > Overall it looks quite good and clean. Miscellaneous comments that apply > across many files, and should be addressed: > > * #if ENABLE(FEATURE) guards are not emitted for most generated files. Test > case: generate-domains-with-feature-guards.json This is intentional. I did not want to generate ENABLE guards for the ObjC files, hence the change to wrap_with_guard_for_domain which doesn't include wraps: def wrap_with_guard_for_domain(self, domain, text): if self.model().framework is Frameworks.WebInspector: return text ... > * Why aren't RWIProtocol.h, RWIProtocolJSONObjectInternal.h, etc included > in this patch? > * Will WebInspector.framework be added to the Xcode solution? Not sure > where the generated files end up... or is the generated code used only > externally? The WebInspector.framework will remain external for now. The static RWIProtocolJSONObject* files live in that project. I didn't include them here because, being static, it is more convenient to put them in the project they are a part of. I realize that is a bit backwards, since the generated code depends on them, but they are rather small. Exporting them from JSC as private headers is possible, but inconvenient (we have build phases that check ObjC class prefixes exported from the frameworks that we would need to open up to the "RWI" prefix). > Please post a revised patch before landing. :) Okay! Created attachment 240692 [details]
[PATCH] Proposed Fix
This should address all review comments except the functools.partial as I didn't see it being too much of a benefit. That can always be cleaned up later if you consider it cleaner.
Attachment 240692 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_implementation.py:71: [FrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain] Instance of 'FrontendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:58: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'domains_to_generate' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:59: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_internal_header.py:62: [ObjectiveCTypesInternalHeaderGenerator.generate_output] Instance of 'ObjectiveCTypesInternalHeaderGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:85: [BackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:107: [BackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_header.py:197: [BackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain] Instance of 'BackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_alternate_backend_dispatcher_header.py:78: [AlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain] Instance of 'AlternateBackendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:81: [BackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain] Instance of 'BackendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_backend_dispatcher_implementation.py:101: [BackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain] Instance of 'BackendDispatcherImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:49: [ObjectiveCConfigurationImplementationGenerator.domains_to_generate] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:66: [ObjectiveCConfigurationImplementationGenerator.generate_output] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_backend_dispatcher_implementation.py:97: [ObjectiveCConfigurationImplementationGenerator._generate_handler_implementation_for_command] Instance of 'ObjectiveCConfigurationImplementationGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_frontend_dispatcher_header.py:105: [FrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain] Instance of 'FrontendDispatcherHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:62: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'domains_to_generate' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:63: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:64: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:65: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'model' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c_header.py:73: [ObjectiveCHeaderGenerator.generate_output] Instance of 'ObjectiveCHeaderGenerator' has no 'generate_license' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:114: [ProtocolTypesHeaderGenerator._generate_forward_declarations] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:153: [ProtocolTypesHeaderGenerator._generate_typedefs_for_domain] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_protocol_types_header.py:172: [ProtocolTypesHeaderGenerator._generate_builders_for_domain] Instance of 'ProtocolTypesHeaderGenerator' has no 'wrap_with_guard_for_domain' member [pylint/E1101] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/codegen/generate_objective_c.py:167: trailing whitespace [pep8/W291] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py:134: [generate_from_specification] Undefined variable 'BackendCommandsGenerator' [pylint/E0602] [5]
ERROR: Source/JavaScriptCore/inspector/scripts/generate-inspector-protocol-bindings.py:140: [generate_from_specification] Undefined variable 'ProtocolTypesImplementationGenerator' [pylint/E0602] [5]
Total errors found: 25 in 35 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 240692 [details] [PATCH] Proposed Fix Clearing flags on attachment: 240692 Committed r175385: <http://trac.webkit.org/changeset/175385> All reviewed patches have been landed. Closing bug. |