{"json_modified": "2016-08-26T07:31:54.149772", "uuid": "1b1272d9-17fd-40bf-9222-9d7dc1c59f15", "title": "How to convert an overlay extension to restartless", "url": "/en-US/docs/Mozilla/Add-ons/How_to_convert_an_overlay_extension_to_restartless", "tags": ["Firefox", "Guide", "Firefox OS", "Extensions", "Add-ons", "add-ons", "Preferences system", "Code snippets"], "translations": [{"uuid": "02b1ef88-06c6-4e4d-a139-0c4fae7bb11e", "title": "How to convert an overlay extension to restartless", "url": "/ru/docs/Mozilla/Add-ons/How_to_convert_an_overlay_extension_to_restartless", "tags": [], "summary": "First off, what kind of add-on are we talking about here? Well, XUL overlays and windows, JSM files, chrome & resource mappings with localization, default preferences, but no XPCOM components of your own. Some of that will have to be replaced and the rest will need to be loaded differently.", "localization_tags": ["inprogress"], "locale": "ru", "last_edit": "2015-09-07T16:51:43", "review_tags": []}], "modified": "2016-08-26T07:31:53", "label": "How to convert an overlay extension to restartless", "localization_tags": [], "locale": "en-US", "id": 114759, "last_edit": "2016-08-26T07:31:50", "summary": "First off, what kind of add-on are we talking about here? Well, XUL overlays and windows, JSM files, chrome & resource mappings with localization, default preferences, but no XPCOM components of your own. Some of that will have to be replaced and the rest will need to be loaded differently.", "sections": [{"id": "Quick_Links", "title": null}, {"id": "Requirements", "title": "Requirements"}, {"id": "Step_1_Use_Services.jsm", "title": "Step 1: Use Services.jsm"}, {"id": "Step_2_No_more_resource_URIs_for_files_internal_to_your_bundle", "title": "Step 2: No more resource:// URIs for files internal to your "}, {"id": "Step_2a_Load_your_JSM_from_chrome", "title": "Step 2a: Load your JSM from chrome://"}, {"id": "Step_2b_Audit_any_remaining_resource_URI_usage_internal_to_your_extension", "title": "Step 2b: Audit any remaining resource:// URI usage internal to your extension"}, {"id": "Step_3_No_more_nsIFile_access_for_files_internal_to_your_bundle", "title": "Step 3: No more "}, {"id": "Step_3a_Option_1_Use_nsIZipReader", "title": "Step 3a: Option 1: Use "}, {"id": "Step_3b_Option_2_Use_XMLHttpRequest", "title": "Step 3b: Option 2: Use "}, {"id": "Step_4_Manually_handle_default_preferences", "title": "Step 4: Manually handle default preferences"}, {"id": "Step_4a_Another_way_to_handle_default_preferences", "title": "Step 4a: Another way to handle default preferences"}, {"id": "Step_5_No_more_internal_JAR_files", "title": "Step 5: No more internal JAR files"}, {"id": "Step_6_No_more_XUL_overlays", "title": "Step 6: No more XUL overlays"}, {"id": "Step_6a._Details_on_adding_elements_dynamically_to_chrome_XUL_window", "title": "Step 6a. Details on adding elements dynamically to chrome XUL window"}, {"id": "Step_7_Manually_handle_global_CSS_Stylesheets", "title": "Step 7: Manually handle global CSS Stylesheets"}, {"id": "Step_8_Window_icons", "title": "Step 8: Window icons"}, {"id": "Step_9_bootstrap.js", "title": "Step 9: bootstrap.js"}, {"id": "Step_10_Bypass_cache_when_loading_properties_files", "title": "Step 10: Bypass cache when loading properties files"}, {"id": "Put_it_all_together", "title": "Put it all together"}, {"id": "Further_reading", "title": "Further reading"}], "slug": "Mozilla/Add-ons/How_to_convert_an_overlay_extension_to_restartless", "review_tags": []}