This swaps out the previous code which hard-coded nsGIOProtocolHandler handling inside of the IOService, and replaces it with nsGIOProtocolHander dynamically registering and un-registering protocol handlers at runtime in response to the relevant preference, so that the protocols can be handled with the normal dynamic handler codepath. The service is configured to start-up during 'xpcom-startup' through the category manager, so attempts to use GIO protocols before then will fail. If this ends up being a problem, we can move it earlier during startup. Differential Revision: https://phabricator.services.mozilla.com/D162806
25 lines
868 B
Python
25 lines
868 B
Python
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# vim: set filetype=python:
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
Classes = [
|
|
{
|
|
'cid': '{ee706783-3af8-4d19-9e84-e2ebfe213480}',
|
|
'contract_ids': ['@mozilla.org/network/protocol;1?name=moz-gio'],
|
|
'singleton': True,
|
|
'type': 'nsGIOProtocolHandler',
|
|
'headers': ['nsGIOProtocolHandler.h'],
|
|
'constructor': 'nsGIOProtocolHandler::GetSingleton',
|
|
'categories': { 'xpcom-startup': 'nsGIOProtocolHandler' },
|
|
'protocol_config': {
|
|
'scheme': 'moz-gio',
|
|
'flags': [
|
|
'URI_STD',
|
|
'URI_DANGEROUS_TO_LOAD',
|
|
],
|
|
},
|
|
},
|
|
]
|