mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
Bug 1801232 - Remove category manager stream conversion in DispatchContent. r=Gijs,dlrobertson
Differential Revision: https://phabricator.services.mozilla.com/D169370
This commit is contained in:
parent
333f533c79
commit
aa607ca5d8
@ -15,22 +15,4 @@ nsIURILoader
|
||||
%{ C++
|
||||
#define NS_CONTENT_HANDLER_CONTRACTID "@mozilla.org/uriloader/content-handler;1"
|
||||
#define NS_CONTENT_HANDLER_CONTRACTID_PREFIX NS_CONTENT_HANDLER_CONTRACTID "?type="
|
||||
|
||||
/**
|
||||
* A category where content listeners can register. The name of the entry must
|
||||
* be the content that this listener wants to handle, the value must be a
|
||||
* contract ID for the listener. It will be created using createInstance (not
|
||||
* getService).
|
||||
*
|
||||
* Listeners added this way are tried after the initial target of the load and
|
||||
* after explicitly registered listeners (nsIURILoader::registerContentListener).
|
||||
*
|
||||
* These listeners must implement at least nsIURIContentListener (and
|
||||
* nsISupports).
|
||||
*
|
||||
* @see nsICategoryManager
|
||||
* @see nsIURIContentListener
|
||||
*/
|
||||
#define NS_CONTENT_LISTENER_CATEGORYMANAGER_ENTRY "external-uricontentlisteners"
|
||||
|
||||
%}
|
||||
|
@ -355,32 +355,7 @@ nsresult nsDocumentOpenInfo::DispatchContent(nsIRequest* request) {
|
||||
}
|
||||
|
||||
//
|
||||
// Third step: Try to find a content listener that has not yet had
|
||||
// the chance to register, as it is contained in a not-yet-loaded
|
||||
// module, but which has registered a contract ID.
|
||||
//
|
||||
nsCOMPtr<nsICategoryManager> catman =
|
||||
do_GetService(NS_CATEGORYMANAGER_CONTRACTID);
|
||||
if (catman) {
|
||||
nsCString contractidString;
|
||||
rv = catman->GetCategoryEntry(NS_CONTENT_LISTENER_CATEGORYMANAGER_ENTRY,
|
||||
mContentType, contractidString);
|
||||
if (NS_SUCCEEDED(rv) && !contractidString.IsEmpty()) {
|
||||
LOG((" Listener contractid for '%s' is '%s'", mContentType.get(),
|
||||
contractidString.get()));
|
||||
|
||||
listener = do_CreateInstance(contractidString.get());
|
||||
LOG((" Listener from category manager: 0x%p", listener.get()));
|
||||
|
||||
if (listener && TryContentListener(listener, aChannel)) {
|
||||
LOG((" Listener from category manager likes this type"));
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Fourth step: try to find an nsIContentHandler for our type.
|
||||
// Third step: Try to find an nsIContentHandler for our type.
|
||||
//
|
||||
nsAutoCString handlerContractID(NS_CONTENT_HANDLER_CONTRACTID_PREFIX);
|
||||
handlerContractID += mContentType;
|
||||
@ -418,7 +393,7 @@ nsresult nsDocumentOpenInfo::DispatchContent(nsIRequest* request) {
|
||||
}
|
||||
|
||||
//
|
||||
// Fifth step: If no listener prefers this type, see if any stream
|
||||
// Fourth step: If no listener prefers this type, see if any stream
|
||||
// converters exist to transform this content type into
|
||||
// some other.
|
||||
//
|
||||
@ -459,7 +434,7 @@ nsresult nsDocumentOpenInfo::DispatchContent(nsIRequest* request) {
|
||||
}
|
||||
}
|
||||
|
||||
// Sixth step:
|
||||
// Fifth step:
|
||||
//
|
||||
// All attempts to dispatch this content have failed. Just pass it off to
|
||||
// the helper app service.
|
||||
|
Loading…
Reference in New Issue
Block a user