168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)# found in the LICENSE file.
468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)import json
668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)from extensions_paths import CHROME_EXTENSIONS
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)from test_file_system import MoveAllTo
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdochfrom test_util import ReadFile
1068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)
11116680a4aac90f2aa7413d9095a592090648e557Ben MurdochFAKE_TABS_IDL = '\n'.join([
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '// Copyleft stuff.',
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '',
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '// Some description here.',
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  'namespace fakeTabs {',
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  dictionary WasImplicitlyInlinedType {};',
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  interface Functions {',
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '    static void myFunc(WasImplicitlyInlinedType arg);',
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '    static void anotherFunc(WasImplicitlyInlinedType arg);',
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  };',
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '};'])
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
23116680a4aac90f2aa7413d9095a592090648e557Ben MurdochFAKE_TABS_WITH_INLINING_IDL = '\n'.join([
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '// Copyleft stuff.',
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '',
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '// Some description here.',
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  'namespace fakeTabs {',
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  dictionary WasImplicitlyInlinedType {};',
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  interface Functions {',
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '    static void myFunc(WasImplicitlyInlinedType arg);',
31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '  };',
32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  '};'])
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)TABS_SCHEMA_BRANCHES = MoveAllTo(CHROME_EXTENSIONS, {
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  'master': {
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    'docs': {
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      'templates': {
38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        'json': {
39116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'api_availabilities.json': '{}',
40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'intro_tables.json': '{}'
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)        }
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      }
43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    },
4468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      '_api_features.json': json.dumps({
46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        'tabs.scheduledFunc': {
47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'channel': 'stable'
48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        }
49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      }),
50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      '_manifest_features.json': '{}',
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      '_permission_features.json': '{}',
52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      'fake_tabs.idl': FAKE_TABS_IDL,
5368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
5468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
5568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
5668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
5768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any',
5968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'url': {
61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
63116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'index': {
64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'selected': {
67116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'id': {
70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
71116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
72116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'windowId': {
73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              }
7568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
7668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
7768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'InlinedType',
79116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any',
80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'inline_doc': True
81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
8368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'InjectDetails',
84116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any',
8568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'allFrames': {
87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
88116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'code': {
90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              },
92116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              'file': {
93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type':'any'
94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch              }
9568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
96116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'DeprecatedType',
99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any',
100116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'deprecated': 'This is deprecated'
10168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
10268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
10368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
104116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'fakeTabsProperty1': {
105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any'
106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'fakeTabsProperty2': {
108116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any'
109116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
110116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'fakeTabsProperty3': {
111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'any'
112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          }
11368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
11468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
11568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
11668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
11768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
11868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
11968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'function',
12168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
12268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'name': 'tab',
124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
12568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
12668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
12768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
12868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
12968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
13068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
13168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
13268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
13368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
13468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'function',
13668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
13768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
138116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'name': 'tab',
139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
14068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
14168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
14268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
14368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'name': 'tabId',
145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
14668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
14768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
148116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
149116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
1505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'restrictedFunc'
1515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
1525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
153116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'name': 'scheduledFunc',
154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'parameters': []
15568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
15668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
15768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
15868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
15968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onActivated',
160116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'event',
16168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
16268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
16368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'activeInfo',
164116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any',
16568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
166116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  'tabId': {
167116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
168116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  },
169116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  'windowId': {
170116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
171116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  }
17268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
17368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
17468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
17568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
17668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
17768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
178116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'type': 'event',
17968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
18068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
181116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'name': 'tabId',
182116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
18368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
18468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
185116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'name': 'tab',
186116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any'
18768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
18868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
18968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
190116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                'type': 'any',
19168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
192116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  'pinned': {
193116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
194116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  },
195116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  'status': {
196116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                    'type': 'any'
197116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch                  }
19868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
19968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
20068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
20168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
20268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
20368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
20468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
20568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
2065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1612': {
20768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
208116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      '_api_features.json': json.dumps({
209116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        'tabs.scheduledFunc': {
210116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          'channel': 'stable'
211116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch        }
212116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      }),
2134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
2144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
215116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      'fake_tabs.idl': FAKE_TABS_IDL,
21668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
21768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
21868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
21968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
22068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
22168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
22268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
22368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
22468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
22568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
22668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
22768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
22868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
22968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
23068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'InjectDetails',
23168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
23268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'allFrames': {},
23368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'code': {},
23468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'file': {}
23568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
236116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
237116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
238116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'DeprecatedType',
239116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'deprecated': 'This is deprecated'
24068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
24168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
24268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
24368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
24468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
24568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
24668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
24768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
24868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
24968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
25068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
25168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
25268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
25368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
25468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
25568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
25668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
25768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
25868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
25968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
26068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
26168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
26268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
26368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
26468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
26568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
26668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
26768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
26868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
26968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
27068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
27168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
27268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
27368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
27468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
275116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
276116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
2775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'restrictedFunc'
2785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
2795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
280116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'name': 'scheduledFunc',
281116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'parameters': []
28268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
28368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
28468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
28568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
28668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onActivated',
28768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
28868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
28968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'activeInfo',
29068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
29168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'tabId': {},
29268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'windowId': {}
29368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
29468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
29568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
29668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
29768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
29868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
29968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
30068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
30168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
30268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
30368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
30468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tab'
30568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
30668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
30768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
30868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
30968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
31068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
31168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
31268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
31368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
31468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
31568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
31668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
31768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
31868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
3195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1599': {
32068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
3214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_api_features.json': "{}",
3224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
3234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
324116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      'fake_tabs.idl': FAKE_TABS_IDL,
32568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
32668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
32768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
32868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
32968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
33068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
33168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
33268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
33368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
33468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
33568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
33668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
33768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
33868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
33968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'InjectDetails',
34068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
34168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'allFrames': {},
34268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'code': {},
34368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'file': {}
34468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
345116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
346116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
347116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'DeprecatedType',
348116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'deprecated': 'This is deprecated'
34968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
35068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
35168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
35268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
35368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
35468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
35568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
35668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
35768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
35868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
35968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
36068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
36168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
36268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
36368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
36468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
36568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
36668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
36768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
36868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
36968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
37068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
37168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
37268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
37368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
37468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
37568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
37668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
37768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
37868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
37968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
38068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
38168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
38268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
38368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
3845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
3855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
3865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'restrictedFunc'
38768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
38868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
38968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
39068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
39168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onActivated',
39268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
39368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
39468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'activeInfo',
39568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
3965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'tabId': {},
39768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
39868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
39968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
40068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
40168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
40268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
40368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
40468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
40568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
40668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
40768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
40868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
40968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
41068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
41168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
41268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
41368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
41468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
41568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
41668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
41768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
41868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
41968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
4205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1547': {
42168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
4225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_api_features.json': json.dumps({
4235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'tabs.restrictedFunc': {
4245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'channel': 'dev'
4255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        }
4265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      }),
4274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
4284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
429116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      'fake_tabs.idl': FAKE_TABS_IDL,
43068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
43168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
43268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
43368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
43468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
43568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
43668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
43768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
43868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
43968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
44068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
44168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
44268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
44368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
44468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'InjectDetails',
44568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
44668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'allFrames': {},
44768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'code': {},
44868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'file': {}
44968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
450116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
451116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
452116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'DeprecatedType',
453116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'deprecated': 'This is deprecated'
45468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
45568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
45668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
45768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
45868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
45968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
46068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
46168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
46268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
46368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
46468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
46568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
46668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
46768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
46868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
46968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
47068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
47168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
47268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
47368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
47468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
4755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'get',
4765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
4775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
4785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
4795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
4805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
4815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
4825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
4835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
4845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
4855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
4865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
4875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
4885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'restrictedFunc'
4895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
4905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
4915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'events': [
4925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
4935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'onUpdated',
4945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
4955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
4965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'tabId'
4975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
4985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
4995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'changeInfo',
5005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'properties': {
5015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'pinned': {},
5025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'status': {}
5035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                }
5045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
5055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
5065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
5075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ]
5085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      }])
5095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    }
5105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  },
5115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1500': {
5125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    'api': {
5135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_api_features.json': "{}",
5145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_manifest_features.json': "{}",
5155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_permission_features.json': "{}",
5165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'fake_tabs.idl': FAKE_TABS_IDL,
5175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'tabs.json': json.dumps([{
5185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'namespace': 'tabs',
5195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'types': [
5205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'Tab',
5225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
5235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'url': {},
5245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'index': {},
5255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'selected': {},
5265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'id': {},
5275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'windowId': {}
5285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
5295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
5305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'InjectDetails',
5325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
5335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'allFrames': {},
5345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
5355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
5365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'DeprecatedType',
5385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'deprecated': 'This is deprecated'
5395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
5405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
5415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'properties': {
5425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty1': {},
5435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty2': {}
5445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        },
5455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'functions': [
5465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'getCurrent',
5485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
5495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
5505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
5515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
5525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
5535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
5545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
5555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
5565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
5575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
5585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
5595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'get',
5615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
5625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
5635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
5645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
5655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
5665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
5675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
5685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
5695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
5705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
5715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
5725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
5735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'events': [
5745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
5755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'onUpdated',
5765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
5775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
5785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'tabId'
5795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
5805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
5815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'changeInfo',
5825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'properties': {
5835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'pinned': {},
5845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'status': {}
5855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                }
5865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
5875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
5885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
5895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ]
5905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      }])
5915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    }
5925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  },
5935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1453': {
5945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    'api': {
5955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_api_features.json': "{}",
5965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_manifest_features.json': "{}",
5975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_permission_features.json': "{}",
5985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'fake_tabs.idl': FAKE_TABS_IDL,
5995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'tabs.json': json.dumps([{
6005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'namespace': 'tabs',
6015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'types': [
6025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'Tab',
6045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
6055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'url': {},
6065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'index': {},
6075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'selected': {},
6085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'id': {},
6095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'windowId': {}
6105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
6115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
6125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'InjectDetails',
6145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
6155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'allFrames': {},
6165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
6175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
6185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'DeprecatedType',
6205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'deprecated': 'This is deprecated'
6215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
6225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
6235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'properties': {
6245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty1': {},
6255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty2': {}
6265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        },
6275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'functions': [
6285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'getCurrent',
6305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
6315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
6325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
6335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
6345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
6355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
6365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
6375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
6385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
6395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
6405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
6415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'get',
6435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
6445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
6455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
6465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
6475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
6485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
6495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
6505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
6515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
6525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
6535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
6545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
6555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'events': [
6565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'onUpdated',
6585f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
6595f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
6605f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'tabId'
6615f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              },
6625f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
6635f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'changeInfo',
6645f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'properties': {
6655f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'pinned': {},
6665f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  'status': {}
6675f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                }
6685f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
6695f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
6705f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
6715f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ]
6725f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      }])
6735f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    }
6745f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  },
6755f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  '1410': {
6765f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    'api': {
6775f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_manifest_features.json': "{}",
6785f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      '_permission_features.json': "{}",
6795f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'fake_tabs.idl': FAKE_TABS_IDL,
6805f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      'tabs.json': json.dumps([{
6815f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'namespace': 'tabs',
6825f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'types': [
6835f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6845f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'Tab',
6855f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
6865f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'url': {},
6875f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'index': {},
6885f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'selected': {},
6895f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'id': {},
6905f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'windowId': {}
6915f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
6925f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
6935f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
6945f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'InjectDetails',
6955f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'properties': {
6965f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              'allFrames': {},
6975f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            }
6985f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
6995f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
7005f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'id': 'DeprecatedType',
7015f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'deprecated': 'This is deprecated'
7025f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          }
7035f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        ],
7045f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'properties': {
7055f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty1': {},
7065f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          'fakeTabsProperty2': {}
7075f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        },
7085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        'functions': [
7095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
7105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'name': 'getCurrent',
7115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            'parameters': [
7125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              {
7135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'name': 'callback',
7145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                'parameters': [
7155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  {
7165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                    'name': 'tab'
7175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                  }
7185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                ]
7195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)              }
7205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)            ]
7215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          },
7225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)          {
72368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
72468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
72568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
72668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
72768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
72868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
72968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
73068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
73168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
73268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
73368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
73468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
73568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
73668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
73768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
73868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
73968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
74068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
74168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
74268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
74368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
74468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
74568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
74668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
74768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
74868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
74968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
75068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
75168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
75268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
75368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
75468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
75568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
75668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  '1364': {
75768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
7584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
7594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
760116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch      'fake_tabs.idl': FAKE_TABS_WITH_INLINING_IDL,
76168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
76268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
76368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
76468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
76568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
76668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
76768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
76868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
76968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
77068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
77168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
77268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
77368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
77468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
77568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'InjectDetails',
77668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
77768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'allFrames': {}
77868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
779116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          },
780116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch          {
781116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch            'id': 'DeprecatedType',
78268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
78368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
78468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
78568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
78668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
78768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
78868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
78968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
79068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
79168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
79268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
79368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
79468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
79568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
79668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
79768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
79868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
79968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
80068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
80168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
80268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
80368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
80468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
80568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
80668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
80768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
80868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
80968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
81068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
81168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
81268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
81368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
81468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
81568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
81668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
81768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
81868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
81968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
82068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
82168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
82268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
82368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
82468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
82568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
82668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
82768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
82868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
82968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
83068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
83168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
83268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
83368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
83468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
83568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
83668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  '1312': {
83768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
8384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
8394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
84068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
84168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
84268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
84368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
84468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
84568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
84668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
84768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
84868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
84968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
85068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
85168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
85268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
85368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
85468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
85568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
85668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
85768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
85868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
85968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
86068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
86168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
86268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
86368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
86468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
86568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
86668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
86768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
86868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
86968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
87068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
87168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
87268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
87368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
87468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
87568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
87668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
87768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
87868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
87968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
88068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
88168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
88268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
88368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
88468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
88568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
88668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
88768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
88868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
88968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
89068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
89168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
89268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
89368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
89468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
89568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
89668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
89768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
89868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
89968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
90068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
90168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
90268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
90368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
90468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
90568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
90668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  '1271': {
90768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
9084e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
9094e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
91068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
91168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
91268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
91368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
91468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
91568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
91668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
91768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
91868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
91968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
92068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
92168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
92268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
92368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
92468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
92568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
92668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
92768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
92868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
92968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
93068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
93168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
93268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
93368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
93468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
93568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
93668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
93768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
93868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
93968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
94068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
94168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
94268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
94368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
94468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
94568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
94668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
94768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
94868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
94968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
95068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
95168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
95268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
95368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
95468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
95568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
95668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
95768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
95868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
95968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
96068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
96168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
96268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
96368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
96468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
96568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
96668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
96768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
96868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
96968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
97068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
97168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
97268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
97368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
97468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
97568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
97668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  '1229': {
97768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
9784e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
9794e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
98068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
98168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
98268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
98368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
98468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
98568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
98668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
98768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
98868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
98968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {},
99068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'windowId': {}
99168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
99268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
99368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
99468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
99568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
99668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
99768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
99868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
99968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
100068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
100168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
100268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
100368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
100468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
100568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
100668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
100768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
100868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
100968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
101068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
101168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
101268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
101368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
101468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
101568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
101668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
101768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
101868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
101968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
102068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
102168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
102268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
102368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
102468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
102568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
102668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
102768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
102868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
102968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
103068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
103168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'tabId'
103268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              },
103368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
103468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'changeInfo',
103568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'properties': {
103668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'pinned': {},
103768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  'status': {}
103868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                }
103968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
104068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
104168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
104268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ]
104368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      }])
104468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    }
104568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  },
104668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)  '1180': {
104768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)    'api': {
10484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_manifest_features.json': "{}",
10494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)      '_permission_features.json': "{}",
105068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)      'tabs.json': json.dumps([{
105168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'namespace': 'tabs',
105268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'types': [
105368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
105468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'id': 'Tab',
105568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'properties': {
105668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'url': {},
105768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'index': {},
105868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'selected': {},
105968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              'id': {}
106068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            }
106168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
106268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
106368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'properties': {
106468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty1': {},
106568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          'fakeTabsProperty2': {}
106668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        },
106768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'functions': [
106868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
106968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'getCurrent',
107068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
107168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
107268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
107368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
107468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
107568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
107668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
107768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
107868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
107968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
108068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          },
108168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
108268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'get',
108368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'parameters': [
108468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              {
108568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'name': 'callback',
108668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                'parameters': [
108768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  {
108868043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                    'name': 'tab'
108968043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                  }
109068043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)                ]
109168043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)              }
109268043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            ]
109368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          }
109468043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        ],
109568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)        'events': [
109668043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)          {
109768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)            'name': 'onUpdated',
1098