mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
61f7e59993
multipart/x-mixed-replace loads don't start a new load for parts other than the first, they just call OnStartRequest/OnStopRequest for every part. The nsDocShell code was trying to set the active entry to the loading entry for these loads, but because we never started a new load after the first part, the loading entry would be null and we'd just clear the active entry. history.replaceState would then try to replace the active entry, but finding none it would just add a new one. Differential Revision: https://phabricator.services.mozilla.com/D138464
52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* 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/. */
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
interface nsIChannel;
|
|
|
|
/**
|
|
* An interface to access the the base channel
|
|
* associated with a MultiPartChannel.
|
|
*/
|
|
|
|
[scriptable, builtinclass, uuid(4fefb490-5567-11e5-a837-0800200c9a66)]
|
|
interface nsIMultiPartChannel : nsISupports
|
|
{
|
|
/**
|
|
* readonly attribute to access the underlying channel
|
|
*/
|
|
readonly attribute nsIChannel baseChannel;
|
|
|
|
/**
|
|
* Attribute guaranteed to be different for different parts of
|
|
* the same multipart document.
|
|
*/
|
|
readonly attribute uint32_t partID;
|
|
|
|
[noscript] readonly attribute boolean isFirstPart;
|
|
|
|
/**
|
|
* Set to true when onStopRequest is received from the base channel.
|
|
* The listener can check this from its onStopRequest to determine
|
|
* whether more data can be expected.
|
|
*/
|
|
readonly attribute boolean isLastPart;
|
|
};
|
|
|
|
/**
|
|
* An interface that listeners can implement to receive a notification
|
|
* when the last part of the multi-part channel has finished, and the
|
|
* final OnStopRequest has been sent.
|
|
*/
|
|
[scriptable, uuid(b084959a-4fb9-41a5-88a0-d0f045ce75cf)]
|
|
interface nsIMultiPartChannelListener : nsISupports
|
|
{
|
|
/**
|
|
* Sent when all parts have finished and sent OnStopRequest.
|
|
*/
|
|
void onAfterLastPart(in nsresult status);
|
|
};
|