efb89b70065fd22994b7a41610ef42513b06ada0
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / docs / server2 / test_data / canned_data.py
1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import json
6
7 from extensions_paths import EXTENSIONS
8 from third_party.json_schema_compiler.json_parse import OrderedDict
9 from test_file_system import MoveAllTo, MoveTo
10
11
12 CANNED_CHANNELS = OrderedDict([
13   ('trunk', 'trunk'),
14   ('dev', 28),
15   ('beta', 27),
16   ('stable', 26)
17 ])
18
19
20 CANNED_BRANCHES = OrderedDict([
21   ('trunk', 'trunk'),
22   (28, '1500'),
23   (27, '1453'),
24   (26, '1410'),
25   (25, '1364'),
26   (24, '1312'),
27   (23, '1271'),
28   (22, '1229'),
29   (21, '1180'),
30   (20, '1132'),
31   (19, '1084'),
32   (18, '1025'),
33   (17, '963'),
34   (16, '912'),
35   (15, '874'),
36   (14, '835'),
37   (13, '782'),
38   (12, '742'),
39   (11, '696'),
40   (10, '648'),
41   ( 9, '597'),
42   ( 8, '552'),
43   ( 7, '544'),
44   ( 6, '495'),
45   ( 5, '396'),
46 ])
47
48
49 CANNED_TEST_FILE_SYSTEM_DATA = MoveTo(EXTENSIONS, {
50   'api': {
51     '_api_features.json': json.dumps({
52       'ref_test': { 'dependencies': ['permission:ref_test'] },
53       'tester': { 'dependencies': ['permission:tester', 'manifest:tester'] }
54     }),
55     '_manifest_features.json': '{}',
56     '_permission_features.json': '{}'
57   },
58   'docs': {
59     'templates': {
60       'articles': {
61         'test_article.html':
62             '<h1>hi</h1>you<h2>first</h2><h3>inner</h3><h2>second</h2>'
63       },
64       'intros': {
65         'test_intro.html':
66             'you<h2>first</h2><h3>inner</h3><h2>second</h2>'
67       },
68       'json': {
69         'api_availabilities.json': json.dumps({
70           'trunk_api': {
71             'channel': 'trunk'
72           },
73           'dev_api': {
74             'channel': 'dev'
75           },
76           'beta_api': {
77             'channel': 'beta'
78           },
79           'stable_api': {
80             'channel': 'stable',
81             'version': 20
82           }
83         }),
84         'intro_tables.json': json.dumps({
85           'tester': {
86             'Permissions': [
87               {
88                 'class': 'override',
89                 'text': '"tester"'
90               },
91               {
92                 'text': 'is an API for testing things.'
93               }
94             ],
95             'Learn More': [
96               {
97                 'link': 'https://tester.test.com/welcome.html',
98                 'text': 'Welcome!'
99               }
100             ]
101           }
102         }),
103         'manifest.json': '{}',
104         'permissions.json': '{}'
105       },
106       'private': {
107         'intro_tables': {
108           'trunk_message.html': 'available on trunk'
109         },
110         'table_of_contents.html': '<table-of-contents>',
111       }
112     }
113   }
114 })
115
116
117 _TEST_WHATS_NEW_JSON = {
118   "backgroundpages.to-be-non-persistent": {
119     "type": "additionsToExistingApis",
120     "description": "backgrounds to be non persistent",
121     "version": 22
122   },
123   "chromeSetting.set-regular-only-scope": {
124     "type": "additionsToExistingApis",
125     "description": "ChromeSetting.set now has a regular_only scope.",
126     "version": 21
127   },
128   "manifest-v1-deprecated": {
129     "type": "manifestChanges",
130     "description": "Manifest version 1 was deprecated in Chrome 18",
131     "version": 20
132   }
133 }
134
135
136 CANNED_API_FILE_SYSTEM_DATA = MoveAllTo(EXTENSIONS, {
137   'trunk': {
138     'api': {
139       '_api_features.json': json.dumps({
140         'alarm': {
141           'channel': 'stable'
142         },
143         'app.window': {
144           'channel': 'stable'
145         },
146         'browserAction': {
147           'channel': 'stable'
148         },
149         'contextMenus': {
150           'channel': 'stable'
151         },
152         'events': {
153           'channel': 'stable'
154         },
155         'extension': {
156           'channel': 'stable'
157         },
158         'systemInfo.cpu': {
159           'channel': 'stable'
160         },
161         'systemInfo.stuff': {
162           'channel': 'dev'
163         }
164       }),
165       '_manifest_features.json': json.dumps({
166         'history': {
167           'channel': 'beta'
168         },
169         'notifications': {
170           'channel': 'beta'
171         },
172         'page_action': {
173           'channel': 'stable'
174         },
175         'runtime': {
176           'channel': 'stable'
177         },
178         'storage': {
179           'channel': 'beta'
180         },
181         'sync': {
182           'channel': 'trunk'
183         },
184         'web_request': {
185           'channel': 'stable'
186         }
187       }),
188       '_permission_features.json': json.dumps({
189         'alarms': {
190           'channel': 'stable'
191         },
192         'bluetooth': {
193           'channel': 'dev'
194         },
195         'bookmarks': {
196           'channel': 'stable'
197         },
198         'cookies': {
199           'channel': 'dev'
200         },
201         'declarativeContent': {
202           'channel': 'trunk'
203         },
204         'declarativeWebRequest': [
205           { 'channel': 'beta',
206             'extension_types': ['extension']
207           },
208           # whitelist
209           { 'channel': 'stable',
210             'extension_types': ['extension']
211           },
212         ],
213         'falseBetaAPI': {
214           'channel': 'beta'
215         },
216         'systemInfo.display': {
217           'channel': 'stable'
218         },
219         'trunkAPI': {
220           'channel': 'trunk'
221         }
222       }),
223       'alarm.json': json.dumps([{
224         'namespace': 'alarm',
225         'description': '<code>alarm</code>'
226       }]),
227       'app_window.json': json.dumps([{
228         'namespace': 'app.window',
229         'description': '<code>app.window</code>'
230       }]),
231       'browser_action.json': json.dumps([{
232         'namespace': 'browserAction',
233         'description': '<code>browserAction</code>'
234       }]),
235       'bluetooth.idl': '\n'.join(('//Copyleft Schmopyright',
236                                   '',
237                                   '//An IDL description, oh my!',
238                                   'namespace bluetooth {',
239                                   '  dictionary Socket {',
240                                   '    long id;',
241                                   '  };',
242                                   '};')),
243       'context_menus.json': json.dumps([{
244         'namespace': 'contextMenus',
245         'description': ''
246       }]),
247       'json_stable_api.json': json.dumps([{
248         'namespace': 'jsonStableAPI',
249         'description': 'An API with a predetermined availability.'
250       }]),
251       'idle.json': json.dumps([{'namespace': 'idle', 'description': ''}]),
252       'input_ime.json': json.dumps([{
253         'namespace': 'input.ime',
254         'description': 'An API that has the potential to cause some trouble.'
255       }]),
256       'menus.json': json.dumps([{'namespace': 'menus', 'description': ''}]),
257       'tabs.json': json.dumps([{'namespace': 'tabs', 'description': ''}]),
258       'windows.json': json.dumps([{'namespace': 'windows', 'description': ''}])
259     },
260     'docs': {
261       'templates': {
262         'json': {
263           'api_availabilities.json': json.dumps({
264             'jsonTrunkAPI': {
265               'channel': 'trunk'
266             },
267             'jsonDevAPI': {
268               'channel': 'dev'
269             },
270             'jsonBetaAPI': {
271               'channel': 'beta'
272             },
273             'jsonStableAPI': {
274               'channel': 'stable',
275               'version': 20
276             }
277           }),
278           'intro_tables.json': json.dumps({
279             'test': [
280               {
281                 'Permissions': 'probably none'
282               }
283             ]
284           }),
285           'manifest.json': '{}',
286           'permissions.json': '{}',
287           'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
288         },
289         'public': {
290           'apps': {
291             'alarm.html': 'alarm.html',
292             'app_window.html': 'app_window.html',
293             'contextMenus.html': 'contextMenus.html',
294           },
295           'extensions': {
296             'alarm.html': 'alarm.html',
297             'browserAction.html': 'browserAction.html',
298             'contextMenus.html': 'contextMenus.html',
299           }
300         }
301       }
302     }
303   },
304   '1500': {
305     'api': {
306       '_api_features.json': json.dumps({
307         'alarm': {
308           'channel': 'stable'
309         },
310         'app.window': {
311           'channel': 'stable'
312         },
313         'browserAction': {
314           'channel': 'stable'
315         },
316         'events': {
317           'channel': 'trunk'
318         },
319         'extension': {
320           'channel': 'stable'
321         },
322         'systemInfo.cpu': {
323           'channel': 'stable'
324         },
325         'systemInfo.stuff': {
326           'channel': 'dev'
327         }
328       }),
329       '_manifest_features.json': json.dumps({
330         'contextMenus': {
331           'channel': 'trunk'
332         },
333         'notifications': {
334           'channel': 'beta'
335         },
336         'page_action': {
337           'channel': 'stable'
338         },
339         'runtime': {
340           'channel': 'stable'
341         },
342         'storage': {
343           'channel': 'dev'
344         },
345         'sync': {
346           'channel': 'trunk'
347         },
348         'system_info_display': {
349           'channel': 'stable'
350         },
351         'web_request': {
352           'channel': 'stable'
353         }
354       }),
355       '_permission_features.json': json.dumps({
356         'alarms': {
357           'channel': 'stable'
358         },
359         'bluetooth': {
360           'channel': 'dev'
361         },
362         'bookmarks': {
363           'channel': 'stable'
364         },
365         'cookies': {
366           'channel': 'dev'
367         },
368         'declarativeContent': {
369           'channel': 'trunk'
370         },
371         'declarativeWebRequest': [
372           { 'channel': 'beta' },
373           # whitelist
374           { 'channel': 'stable'}
375         ],
376         'downloads': {
377           'channel': 'beta'
378         }
379       }),
380       'alarm.json': json.dumps([{
381         'namespace': 'alarm',
382         'description': '<code>alarm</code>'
383       }]),
384       'app_window.json': json.dumps([{
385         'namespace': 'app.window',
386         'description': '<code>app.window</code>'
387       }]),
388       'browser_action.json': json.dumps([{
389         'namespace': 'browserAction',
390         'description': '<code>browserAction</code>'
391       }]),
392       'idle.json': json.dumps([{'namespace': 'idle'}]),
393       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
394       'menus.json': json.dumps([{'namespace': 'menus'}]),
395       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
396       'windows.json': json.dumps([{'namespace': 'windows'}])
397     },
398     'docs': {
399       'templates': {
400         'json': {
401           'api_availabilities.json': json.dumps({
402             'jsonTrunkAPI': {
403               'channel': 'trunk'
404             },
405             'jsonDevAPI': {
406               'channel': 'dev'
407             },
408             'jsonBetaAPI': {
409               'channel': 'beta'
410             },
411             'jsonStableAPI': {
412               'channel': 'stable',
413               'version': 20
414             }
415           }),
416           'intro_tables.json': json.dumps({
417             'test': [
418               {
419                 'Permissions': 'probably none'
420               }
421             ]
422           }),
423           'manifest.json': '{}',
424           'permissions.json': '{}',
425           'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
426         },
427         'public': {
428           'apps': {
429             'alarm.html': 'alarm.html',
430             'app_window.html': 'app_window.html',
431           },
432           'extensions': {
433             'alarm.html': 'alarm.html',
434             'browserAction.html': 'browserAction.html',
435           }
436         }
437       }
438     }
439   },
440   '1453': {
441     'api': {
442       '_api_features.json': json.dumps({
443         'alarm': {
444           'channel': 'stable'
445         },
446         'app.window': {
447           'channel': 'stable'
448         },
449         'browserAction': {
450           'channel': 'stable'
451         },
452         'events': {
453           'channel': 'dev'
454         },
455         'extension': {
456           'channel': 'stable'
457         },
458         'systemInfo.cpu': {
459           'channel': 'stable'
460         },
461         'systemInfo.stuff': {
462           'channel': 'dev'
463         }
464       }),
465       '_manifest_features.json': json.dumps({
466         'notifications': {
467           'channel': 'dev'
468         },
469         'page_action': {
470           'channel': 'stable'
471         },
472         'runtime': {
473           'channel': 'stable'
474         },
475         'storage': {
476           'channel': 'dev'
477         },
478         'system_info_display': {
479           'channel': 'stable'
480         },
481         'web_request': {
482           'channel': 'stable'
483         }
484       }),
485       '_permission_features.json': json.dumps({
486         'alarms': {
487           'channel': 'stable'
488         },
489         'bluetooth': {
490           'channel': 'dev'
491         },
492         'bookmarks': {
493           'channel': 'stable'
494         },
495         'context_menus': {
496           'channel': 'trunk'
497         },
498         'declarativeContent': {
499           'channel': 'trunk'
500         },
501         'declarativeWebRequest': [
502           { 'channel': 'beta' },
503           # whitelist
504           { 'channel': 'stable'}
505         ],
506         'downloads': {
507           'channel': 'dev'
508         }
509       }),
510       'alarm.json': json.dumps([{
511         'namespace': 'alarm',
512         'description': '<code>alarm</code>'
513       }]),
514       'app_window.json': json.dumps([{
515         'namespace': 'app.window',
516         'description': '<code>app.window</code>'
517       }]),
518       'browser_action.json': json.dumps([{
519         'namespace': 'browserAction',
520         'description': '<code>browserAction</code>'
521       }]),
522       'idle.json': json.dumps([{'namespace': 'idle'}]),
523       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
524       'menus.json': json.dumps([{'namespace': 'menus'}]),
525       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
526       'windows.json': json.dumps([{'namespace': 'windows'}])
527     },
528     'docs': {
529       'templates': {
530         'json': {
531           'api_availabilities.json': json.dumps({
532             'jsonTrunkAPI': {
533               'channel': 'trunk'
534             },
535             'jsonDevAPI': {
536               'channel': 'dev'
537             },
538             'jsonBetaAPI': {
539               'channel': 'beta'
540             },
541             'jsonStableAPI': {
542               'channel': 'stable',
543               'version': 20
544             }
545           }),
546           'intro_tables.json': json.dumps({
547             'test': [
548               {
549                 'Permissions': 'probably none'
550               }
551             ]
552           }),
553           'manifest.json': '{}',
554           'permissions.json': '{}',
555           'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
556         },
557         'public': {
558           'apps': {
559             'alarm.html': 'alarm.html',
560             'app_window.html': 'app_window.html',
561           },
562           'extensions': {
563             'alarm.html': 'alarm.html',
564             'browserAction.html': 'browserAction.html',
565           }
566
567         }
568       }
569     }
570   },
571   '1410': {
572     'api': {
573       '_manifest_features.json': json.dumps({
574         'alarm': {
575           'channel': 'stable'
576         },
577         'app.window': {
578           'channel': 'stable'
579         },
580         'browserAction': {
581           'channel': 'stable'
582         },
583         'events': {
584           'channel': 'beta'
585         },
586         'notifications': {
587           'channel': 'dev'
588         },
589         'page_action': {
590           'channel': 'stable'
591         },
592         'runtime': {
593           'channel': 'stable'
594         },
595         'web_request': {
596           'channel': 'stable'
597         }
598       }),
599       '_permission_features.json': json.dumps({
600         'alarms': {
601           'channel': 'stable'
602         },
603         'bluetooth': {
604           'channel': 'dev'
605         },
606         'bookmarks': {
607           'channel': 'stable'
608         },
609         'context_menus': {
610           'channel': 'trunk'
611         },
612         'declarativeContent': {
613           'channel': 'trunk'
614         },
615         'declarativeWebRequest': [
616           { 'channel': 'beta' },
617           # whitelist
618           { 'channel': 'stable'}
619         ],
620         'systemInfo.display': {
621           'channel': 'stable'
622         }
623       }),
624       'alarm.json': json.dumps([{
625         'namespace': 'alarm',
626         'description': '<code>alarm</code>'
627       }]),
628       'app_window.json': json.dumps([{
629         'namespace': 'app.window',
630         'description': '<code>app.window</code>'
631       }]),
632       'browser_action.json': json.dumps([{
633         'namespace': 'browserAction',
634         'description': '<code>browserAction</code>'
635       }]),
636       'idle.json': json.dumps([{'namespace': 'idle'}]),
637       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
638       'menus.json': json.dumps([{'namespace': 'menus'}]),
639       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
640       'windows.json': json.dumps([{'namespace': 'windows'}])
641     }
642   },
643   '1364': {
644     'api': {
645       '_manifest_features.json': json.dumps({
646         'page_action': {
647           'channel': 'stable'
648         },
649         'runtime': {
650           'channel': 'stable'
651         }
652       }),
653       '_permission_features.json': json.dumps({
654         'alarms': {
655           'channel': 'stable'
656         },
657         'bookmarks': {
658           'channel': 'stable'
659         },
660         'systemInfo.display': {
661           'channel': 'stable'
662         },
663         'webRequest': {
664           'channel': 'stable'
665         }
666       }),
667       'idle.json': json.dumps([{'namespace': 'idle'}]),
668       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
669       'menus.json': json.dumps([{'namespace': 'menus'}]),
670       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
671       'windows.json': json.dumps([{'namespace': 'windows'}])
672     }
673   },
674   '1312': {
675     'api': {
676       '_manifest_features.json': json.dumps({
677         'page_action': {
678           'channel': 'stable'
679         },
680         'runtime': {
681           'channel': 'stable'
682         },
683         'web_request': {
684           'channel': 'stable'
685         }
686       }),
687       '_permission_features.json': json.dumps({
688         'alarms': {
689           'channel': 'stable'
690         },
691         'bookmarks': {
692           'channel': 'stable'
693         },
694         'systemInfo.display': {
695           'channel': 'stable'
696         }
697       }),
698       'idle.json': json.dumps([{'namespace': 'idle'}]),
699       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
700       'menus.json': json.dumps([{'namespace': 'menus'}]),
701       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
702       'windows.json': json.dumps([{'namespace': 'windows'}])
703     }
704   },
705   '1271': {
706     'api': {
707       '_manifest_features.json': json.dumps({
708         'page_action': {
709           'channel': 'stable'
710         },
711         'runtime': {
712           'channel': 'stable'
713         },
714         'system_info_display': {
715           'channel': 'stable'
716         }
717       }),
718       '_permission_features.json': json.dumps({
719         'alarms': {
720           'channel': 'beta'
721         },
722         'bookmarks': {
723           'channel': 'stable'
724         },
725         'webRequest': {
726           'channel': 'stable'
727         }
728       }),
729       'alarms.idl': '//copy\n\n//desc\nnamespace alarms {}',
730       'idle.json': json.dumps([{'namespace': 'idle'}]),
731       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
732       'menus.json': json.dumps([{'namespace': 'menus'}]),
733       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
734       'windows.json': json.dumps([{'namespace': 'windows'}])
735     }
736   },
737   '1229': {
738     'api': {
739       '_manifest_features.json': json.dumps({
740         'page_action': {
741           'channel': 'stable'
742         },
743         'runtime': {
744           'channel': 'stable'
745         },
746         'web_request': {
747           'channel': 'stable'
748         }
749       }),
750       '_permission_features.json': json.dumps({
751         'bookmarks': {
752           'channel': 'stable'
753         },
754         'systemInfo.display': {
755           'channel': 'beta'
756         }
757       }),
758       'alarms.idl': '//copy\n\n//desc\nnamespace alarms {}',
759       'idle.json': json.dumps([{'namespace': 'idle'}]),
760       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
761       'menus.json': json.dumps([{'namespace': 'menus'}]),
762       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
763     }
764   },
765   '1180': {
766     'api': {
767       '_manifest_features.json': json.dumps({
768         'page_action': {
769           'channel': 'stable'
770         },
771         'runtime': {
772           'channel': 'stable'
773         }
774       }),
775       '_permission_features.json': json.dumps({
776         'bookmarks': {
777           'channel': 'stable'
778         },
779         'webRequest': {
780           'channel': 'stable'
781         }
782       }),
783       'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
784       'idle.json': json.dumps([{'namespace': 'idle'}]),
785       'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
786       'menus.json': json.dumps([{'namespace': 'menus'}]),
787       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
788     }
789   },
790   '1132': {
791     'api': {
792       '_manifest_features.json': json.dumps({
793         'bookmarks': {
794           'channel': 'trunk'
795         },
796         'page_action': {
797           'channel': 'stable'
798         }
799       }),
800       '_permission_features.json': json.dumps({
801         'webRequest': {
802           'channel': 'stable'
803         }
804       }),
805       'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
806       'idle.json': json.dumps([{'namespace': 'idle'}]),
807       'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
808       'menus.json': json.dumps([{'namespace': 'menus'}]),
809       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
810     }
811   },
812   '1084': {
813     'api': {
814       '_manifest_features.json': json.dumps({
815         'contents': 'nothing of interest here,really'
816       }),
817       'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
818       'idle.json': json.dumps([{'namespace': 'idle'}]),
819       'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
820       'menus.json': json.dumps([{'namespace': 'menus'}]),
821       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
822       'pageAction.json': json.dumps([{'namespace': 'pageAction'}]),
823       'webRequest.json': json.dumps([{'namespace': 'webRequest'}])
824     }
825   },
826   '1025': {
827     'api': {
828       'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
829       'idle.json': json.dumps([{'namespace': 'idle'}]),
830       'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
831       'menus.json': json.dumps([{'namespace': 'menus'}]),
832       'tabs.json': json.dumps([{'namespace': 'tabs'}]),
833       'pageAction.json': json.dumps([{'namespace': 'pageAction'}]),
834       'webRequest.json': json.dumps([{'namespace': 'webRequest'}])
835     }
836   },
837   '963': {
838     'api': {
839       'extension_api.json': json.dumps([
840         {
841           'namespace': 'idle'
842         },
843         {
844           'namespace': 'menus'
845         },
846         {
847           'namespace': 'pageAction'
848         },
849         {
850           'namespace': 'webRequest'
851         }
852       ])
853     }
854   },
855   '912': {
856     'api': {
857       'extension_api.json': json.dumps([
858         {
859           'namespace': 'idle'
860         },
861         {
862           'namespace': 'menus'
863         },
864         {
865           'namespace': 'pageAction'
866         },
867         {
868           'namespace': 'experimental.webRequest'
869         }
870       ])
871     }
872   },
873   '874': {
874     'api': {
875       'extension_api.json': json.dumps([
876         {
877           'namespace': 'idle'
878         },
879         {
880           'namespace': 'menus'
881         },
882         {
883           'namespace': 'pageAction'
884         }
885       ])
886     }
887   },
888   '835': {
889     'api': {
890       'extension_api.json': json.dumps([
891         {
892           'namespace': 'idle'
893         },
894         {
895           'namespace': 'menus'
896         },
897         {
898           'namespace': 'pageAction'
899         }
900       ])
901     }
902   },
903   '782': {
904     'api': {
905       'extension_api.json': json.dumps([
906         {
907           'namespace': 'idle'
908         },
909         {
910           'namespace': 'menus'
911         },
912         {
913           'namespace': 'pageAction'
914         }
915       ])
916     }
917   },
918   '742': {
919     'api': {
920       'extension_api.json': json.dumps([
921         {
922           'namespace': 'idle'
923         },
924         {
925           'namespace': 'menus'
926         },
927         {
928           'namespace': 'pageAction'
929         }
930       ])
931     }
932   },
933   '696': {
934     'api': {
935       'extension_api.json': json.dumps([
936         {
937           'namespace': 'idle'
938         },
939         {
940           'namespace': 'menus'
941         },
942         {
943           'namespace': 'pageAction'
944         }
945       ])
946     }
947   },
948   '648': {
949     'api': {
950       'extension_api.json': json.dumps([
951         {
952           'namespace': 'idle'
953         },
954         {
955           'namespace': 'menus'
956         },
957         {
958           'namespace': 'pageAction'
959         }
960       ])
961     }
962   },
963   '597': {
964     'api': {
965       'extension_api.json': json.dumps([
966         {
967           'namespace': 'idle'
968         },
969         {
970           'namespace': 'menus'
971         },
972         {
973           'namespace': 'pageAction'
974         }
975       ])
976     }
977   },
978   '552': {
979     'api': {
980       'extension_api.json': json.dumps([
981         {
982           'namespace': 'idle'
983         },
984         {
985           'namespace': 'menus'
986         },
987         {
988           'namespace': 'pageAction'
989         }
990       ])
991     }
992   },
993   '544': {
994     'api': {
995       'extension_api.json': json.dumps([
996         {
997           'namespace': 'idle'
998         },
999         {
1000           'namespace': 'menus'
1001         }
1002       ])
1003     }
1004   },
1005   '495': {
1006     'api': {
1007       'extension_api.json': json.dumps([
1008         {
1009           'namespace': 'idle'
1010         },
1011         {
1012           'namespace': 'menus'
1013         }
1014       ])
1015     }
1016   },
1017   '396': {
1018     'api': {
1019       'extension_api.json': json.dumps([
1020         {
1021           'namespace': 'idle'
1022         },
1023         {
1024           'namespace': 'experimental.menus'
1025         }
1026       ])
1027     }
1028   }
1029 })