| Index: headless/lib/browser/client_api_generator_unittest.py | 
| diff --git a/headless/lib/browser/client_api_generator_unittest.py b/headless/lib/browser/client_api_generator_unittest.py | 
| index 5c298bdd7046f662544333af268745425c84b122..0cd7df3fd37968ffd63ed4cee18716c0c025a422 100644 | 
| --- a/headless/lib/browser/client_api_generator_unittest.py | 
| +++ b/headless/lib/browser/client_api_generator_unittest.py | 
| @@ -349,6 +349,105 @@ class ClientApiGeneratorTest(unittest.TestCase): | 
| types = json_api['domains'][0]['types'] | 
| self.assertListEqual(types, expected_types) | 
|  | 
| +  def test_PatchHiddenDomains(self): | 
| +    json_api = { | 
| +      'domains': [ | 
| +        { | 
| +          'domain': 'domain', | 
| +          'hidden': True, | 
| +          'commands': [ | 
| +            { | 
| +              'name': 'FooCommand', | 
| +            } | 
| +          ], | 
| +          'events': [ | 
| +            { | 
| +              'name': 'BarEvent', | 
| +            } | 
| +          ] | 
| +        } | 
| +      ] | 
| +    } | 
| +    expected_types = [ | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'FooCommandParams', | 
| +        'description': 'Parameters for the FooCommand command.', | 
| +        'properties': [], | 
| +      }, | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'FooCommandResult', | 
| +        'description': 'Result for the FooCommand command.', | 
| +        'properties': [], | 
| +      }, | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'BarEventParams', | 
| +        'description': 'Parameters for the BarEvent event.', | 
| +        'properties': [], | 
| +      } | 
| +    ] | 
| +    client_api_generator.PatchHiddenCommandsAndEvents(json_api) | 
| +    client_api_generator.SynthesizeCommandTypes(json_api) | 
| +    client_api_generator.SynthesizeEventTypes(json_api) | 
| +    for command in json_api['domains'][0]['commands']: | 
| +      self.assertTrue(command['hidden']) | 
| +    for event in json_api['domains'][0]['events']: | 
| +      self.assertTrue(command['hidden']) | 
| +    types = json_api['domains'][0]['types'] | 
| +    self.assertListEqual(types, expected_types) | 
| + | 
| +  def test_PatchHiddenCommandsAndEvents(self): | 
| +    json_api = { | 
| +      'domains': [ | 
| +        { | 
| +          'domain': 'domain', | 
| +          'commands': [ | 
| +            { | 
| +              'name': 'FooCommand', | 
| +              'hidden': True, | 
| +            } | 
| +          ], | 
| +          'events': [ | 
| +            { | 
| +              'name': 'BarEvent', | 
| +              'hidden': True, | 
| +            } | 
| +          ] | 
| +        } | 
| +      ] | 
| +    } | 
| +    expected_types = [ | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'FooCommandParams', | 
| +        'description': 'Parameters for the FooCommand command.', | 
| +        'properties': [], | 
| +      }, | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'FooCommandResult', | 
| +        'description': 'Result for the FooCommand command.', | 
| +        'properties': [], | 
| +      }, | 
| +      { | 
| +        'type': 'object', | 
| +        'id': 'BarEventParams', | 
| +        'description': 'Parameters for the BarEvent event.', | 
| +        'properties': [], | 
| +      } | 
| +    ] | 
| +    client_api_generator.PatchHiddenCommandsAndEvents(json_api) | 
| +    client_api_generator.SynthesizeCommandTypes(json_api) | 
| +    client_api_generator.SynthesizeEventTypes(json_api) | 
| +    for command in json_api['domains'][0]['commands']: | 
| +      self.assertTrue(command['hidden']) | 
| +    for event in json_api['domains'][0]['events']: | 
| +      self.assertTrue(command['hidden']) | 
| +    types = json_api['domains'][0]['types'] | 
| +    self.assertListEqual(types, expected_types) | 
| + | 
| def test_Generate(self): | 
| json_api = { | 
| 'domains': [ | 
|  |