Merge mozilla-central to autoland

This commit is contained in:
Dorel Luca 2018-03-06 23:58:12 +02:00
commit e43399c28e
37 changed files with 337 additions and 1327 deletions

View File

@ -73,9 +73,6 @@ var whitelist = [
{file: "chrome://devtools/content/inspector/markup/markup.xhtml",
isFromDevTools: true},
// Kept for add-on compatibility, should be removed in bug 851471.
{file: "chrome://mozapps/skin/downloads/downloadIcon.png"},
// SpiderMonkey parser API, currently unused in browser/ and toolkit/
{file: "resource://gre/modules/reflect.jsm"},

View File

@ -222,7 +222,6 @@
@RESPATH@/components/dom_workers.xpt
@RESPATH@/components/dom_xul.xpt
@RESPATH@/components/dom_presentation.xpt
@RESPATH@/components/downloads.xpt
@RESPATH@/components/editor.xpt
@RESPATH@/components/enterprisepolicies.xpt
@RESPATH@/components/extensions.xpt

View File

@ -8498,6 +8498,7 @@ GetSurfaceDataImpl(mozilla::gfx::DataSourceSurface* aSurface,
mozilla::CheckedInt32 requiredBytes =
mozilla::CheckedInt32(map.mStride) * mozilla::CheckedInt32(size.height);
if (!requiredBytes.isValid()) {
aSurface->Unmap();
return GetSurfaceDataContext::NullValue();
}

View File

@ -35,6 +35,7 @@
#include "nsILineInputStream.h"
#include "nsPIDOMWindow.h"
#include "mozilla/EventStateManager.h"
#include "mozilla/MozPromise.h"
#include "mozilla/Telemetry.h"
#include "mozilla/Types.h"
#include "mozilla/PeerIdentity.h"
@ -156,7 +157,6 @@ typedef media::Pledge<bool, dom::MediaStreamError*> PledgeVoid;
struct DeviceState {
DeviceState(const RefPtr<MediaDevice>& aDevice, bool aOffWhileDisabled)
: mOffWhileDisabled(aOffWhileDisabled)
, mDisableTimer(new MediaTimer())
, mDevice(aDevice)
{
MOZ_ASSERT(mDevice);
@ -168,11 +168,15 @@ struct DeviceState {
// true if mDevice is currently enabled, i.e., turned on and capturing.
// MainThread only.
bool mDeviceEnabled = true;
bool mDeviceEnabled = false;
// true if the application has currently enabled mDevice.
// MainThread only.
bool mTrackEnabled = true;
bool mTrackEnabled = false;
// Time when the application last enabled mDevice.
// MainThread only.
TimeStamp mTrackEnabledTime;
// true if an operation to Start() or Stop() mDevice has been dispatched to
// the media thread and is not finished yet.
@ -188,7 +192,7 @@ struct DeviceState {
// disabled. When the timer fires we initiate Stop()ing mDevice.
// If set we allow dynamically stopping and starting mDevice.
// Any thread.
const RefPtr<MediaTimer> mDisableTimer;
const RefPtr<MediaTimer> mDisableTimer = new MediaTimer();
// The underlying device we keep state for. Always non-null.
// Threadsafe access, but see method declarations for individual constraints.
@ -239,6 +243,8 @@ FromCaptureState(CaptureState aState)
*/
class SourceListener : public SupportsWeakPtr<SourceListener> {
public:
typedef MozPromise<bool /* aIgnored */, RefPtr<MediaMgrError>, true> InitPromise;
MOZ_DECLARE_WEAKREFERENCE_TYPENAME(SourceListener)
NS_INLINE_DECL_THREADSAFE_REFCOUNTING_WITH_MAIN_THREAD_DESTRUCTION(SourceListener)
@ -256,6 +262,11 @@ public:
MediaDevice* aAudioDevice,
MediaDevice* aVideoDevice);
/**
* Posts a task to initialize and start all associated devices.
*/
RefPtr<InitPromise> InitializeAsync();
/**
* Stops all live tracks, finishes the associated MediaStream and cleans up.
*/
@ -1374,89 +1385,32 @@ public:
// because that can take a while.
// Pass ownership of domStream through the lambda to the nested chrome
// notification lambda to ensure it's kept alive until that lambda runs or is discarded.
RefPtr<GetUserMediaStreamRunnable> self = this;
MediaManager::PostTask(NewTaskFrom([self, domStream, callback]() mutable {
MOZ_ASSERT(MediaManager::IsInMediaThread());
RefPtr<SourceMediaStream> source =
self->mSourceListener->GetSourceStream();
RefPtr<MediaMgrError> error = nullptr;
if (self->mAudioDevice) {
nsresult rv = self->mAudioDevice->SetTrack(source,
kAudioTrack,
self->mSourceListener->GetPrincipalHandle());
if (NS_SUCCEEDED(rv)) {
rv = self->mAudioDevice->Start();
} else {
nsString log;
if (rv == NS_ERROR_NOT_AVAILABLE) {
log.AssignASCII("Concurrent mic process limit.");
error = new MediaMgrError(NS_LITERAL_STRING("NotReadableError"), log);
} else {
log.AssignASCII("Starting audio failed");
error = new MediaMgrError(NS_LITERAL_STRING("InternalError"), log);
}
}
}
if (!error && self->mVideoDevice) {
nsresult rv = self->mVideoDevice->SetTrack(source,
kVideoTrack,
self->mSourceListener->GetPrincipalHandle());
if (NS_SUCCEEDED(rv)) {
rv = self->mVideoDevice->Start();
}
if (NS_FAILED(rv)) {
nsString log;
log.AssignASCII("Starting video failed");
error = new MediaMgrError(NS_LITERAL_STRING("InternalError"), log);
}
}
if (error) {
// Dispatch the error callback on main thread.
NS_DispatchToMainThread(MakeAndAddRef<ErrorCallbackRunnable>(
self->mOnFailure, *error, self->mWindowID));
return NS_OK;
}
// Start() queued the tracks to be added synchronously to avoid races
source->FinishAddTracks();
source->AdvanceKnownTracksTime(STREAM_TIME_MAX);
LOG(("started all sources"));
// onTracksAvailableCallback must be added to domStream on the main thread.
uint64_t windowID = self->mWindowID;
NS_DispatchToMainThread(NS_NewRunnableFunction("MediaManager::NotifyChromeOfStart",
[source, domStream, callback, windowID]() mutable {
source->SetPullEnabled(true);
MediaManager* manager = MediaManager::GetIfExists();
if (!manager) {
return;
}
nsGlobalWindowInner* window =
nsGlobalWindowInner::GetInnerWindowWithId(windowID);
if (!window) {
MOZ_ASSERT_UNREACHABLE("Should have window");
return;
}
mSourceListener->InitializeAsync()->Then(
GetMainThreadSerialEventTarget(), __func__,
[manager = mManager, domStream, callback,
windowListener = mWindowListener]()
{
// Initiating and starting devices succeeded.
// onTracksAvailableCallback must be added to domStream on main thread.
domStream->OnTracksAvailable(callback->release());
windowListener->ChromeAffectingStateChanged();
manager->SendPendingGUMRequest();
},[manager = mManager, windowID = mWindowID,
onFailure = Move(mOnFailure)](const RefPtr<MediaMgrError>& error)
{
// Initiating and starting devices failed.
nsresult rv = MediaManager::NotifyRecordingStatusChange(window->AsInner());
if (NS_FAILED(rv)) {
MOZ_ASSERT_UNREACHABLE("Should be able to notify chrome");
// Only run if the window is still active for our window listener.
if (!(manager->IsWindowStillActive(windowID))) {
return;
}
manager->SendPendingGUMRequest();
}));
return NS_OK;
}));
// This is safe since we're on main-thread, and the windowlist can only
// be invalidated from the main-thread (see OnNavigation)
if (auto* window = nsGlobalWindowInner::GetInnerWindowWithId(windowID)) {
auto streamError = MakeRefPtr<MediaStreamError>(window->AsInner(), *error);
onFailure->OnError(streamError);
}
});
if (!IsPincipalInfoPrivate(mPrincipalInfo)) {
// Call GetPrincipalKey again, this time w/persist = true, to promote
@ -2149,6 +2103,20 @@ MediaManager::PostTask(already_AddRefed<Runnable> task)
Get()->mMediaThread->message_loop()->PostTask(Move(task));
}
template<typename MozPromiseType, typename FunctionType>
/* static */ RefPtr<MozPromiseType>
MediaManager::PostTask(const char* aName, FunctionType&& aFunction)
{
MozPromiseHolder<MozPromiseType> holder;
RefPtr<MozPromiseType> promise = holder.Ensure(aName);
MediaManager::PostTask(NS_NewRunnableFunction(aName,
[h = Move(holder), func = Forward<FunctionType>(aFunction)]() mutable
{
func(h);
}));
return promise;
}
/* static */ nsresult
MediaManager::NotifyRecordingStatusChange(nsPIDOMWindowInner* aWindow)
{
@ -3824,6 +3792,110 @@ SourceListener::Activate(SourceMediaStream* aStream,
mStream->AddListener(mStreamListener);
}
RefPtr<SourceListener::InitPromise>
SourceListener::InitializeAsync()
{
MOZ_ASSERT(NS_IsMainThread(), "Only call on main thread");
MOZ_DIAGNOSTIC_ASSERT(!mStopped);
RefPtr<InitPromise> init = MediaManager::PostTask<InitPromise>(__func__,
[ stream = mStream
, principal = GetPrincipalHandle()
, audioDevice = mAudioDeviceState ? mAudioDeviceState->mDevice : nullptr
, videoDevice = mVideoDeviceState ? mVideoDeviceState->mDevice : nullptr
](MozPromiseHolder<InitPromise>& aHolder)
{
if (audioDevice) {
nsresult rv = audioDevice->SetTrack(stream, kAudioTrack, principal);
if (NS_SUCCEEDED(rv)) {
rv = audioDevice->Start();
}
if (NS_FAILED(rv)) {
nsString log;
if (rv == NS_ERROR_NOT_AVAILABLE) {
log.AssignASCII("Concurrent mic process limit.");
aHolder.Reject(MakeRefPtr<MediaMgrError>(
NS_LITERAL_STRING("NotReadableError"), log), __func__);
return;
}
log.AssignASCII("Starting audio failed");
aHolder.Reject(MakeRefPtr<MediaMgrError>(
NS_LITERAL_STRING("InternalError"), log), __func__);
return;
}
}
if (videoDevice) {
nsresult rv = videoDevice->SetTrack(stream, kVideoTrack, principal);
if (NS_SUCCEEDED(rv)) {
rv = videoDevice->Start();
}
if (NS_FAILED(rv)) {
if (audioDevice) {
if (NS_WARN_IF(NS_FAILED(audioDevice->Stop()))) {
MOZ_ASSERT_UNREACHABLE("Stopping audio failed");
}
}
nsString log;
log.AssignASCII("Starting video failed");
aHolder.Reject(MakeRefPtr<MediaMgrError>(NS_LITERAL_STRING("InternalError"), log), __func__);
return;
}
}
// Start() queued the tracks to be added synchronously to avoid races
stream->FinishAddTracks();
stream->AdvanceKnownTracksTime(STREAM_TIME_MAX);
LOG(("started all sources"));
aHolder.Resolve(true, __func__);
});
return init->Then(GetMainThreadSerialEventTarget(), __func__,
[self = RefPtr<SourceListener>(this), this]()
{
if (mStopped) {
// We were shut down during the async init
return InitPromise::CreateAndResolve(true, __func__);
}
mStream->SetPullEnabled(true);
for (DeviceState* state : {mAudioDeviceState.get(),
mVideoDeviceState.get()}) {
if (!state) {
continue;
}
MOZ_DIAGNOSTIC_ASSERT(!state->mTrackEnabled);
MOZ_DIAGNOSTIC_ASSERT(!state->mDeviceEnabled);
MOZ_DIAGNOSTIC_ASSERT(!state->mStopped);
state->mDeviceEnabled = true;
state->mTrackEnabled = true;
state->mTrackEnabledTime = TimeStamp::Now();
}
return InitPromise::CreateAndResolve(true, __func__);
}, [self = RefPtr<SourceListener>(this), this](RefPtr<MediaMgrError>&& aResult)
{
if (mStopped) {
return InitPromise::CreateAndReject(Move(aResult), __func__);
}
for (DeviceState* state : {mAudioDeviceState.get(),
mVideoDeviceState.get()}) {
if (!state) {
continue;
}
MOZ_DIAGNOSTIC_ASSERT(!state->mTrackEnabled);
MOZ_DIAGNOSTIC_ASSERT(!state->mDeviceEnabled);
MOZ_DIAGNOSTIC_ASSERT(!state->mStopped);
state->mStopped = true;
}
return InitPromise::CreateAndReject(Move(aResult), __func__);
});
}
void
SourceListener::Stop()
{
@ -3956,7 +4028,6 @@ SourceListener::SetEnabledFor(TrackID aTrackID, bool aEnable)
return;
}
if (state.mOperationInProgress) {
// If a timer is in progress, it needs to be canceled now so the next
// DisableTrack() gets a fresh start. Canceling will trigger another
@ -3977,20 +4048,26 @@ SourceListener::SetEnabledFor(TrackID aTrackID, bool aEnable)
RefPtr<MediaTimerPromise> timerPromise;
if (aEnable) {
timerPromise = MediaTimerPromise::CreateAndResolve(true, __func__);
state.mTrackEnabledTime = TimeStamp::Now();
} else {
const TimeDuration offDelay = TimeDuration::FromMilliseconds(
const TimeDuration maxDelay = TimeDuration::FromMilliseconds(
Preferences::GetUint(
aTrackID == kAudioTrack
? "media.getusermedia.microphone.off_while_disabled.delay_ms"
: "media.getusermedia.camera.off_while_disabled.delay_ms",
3000));
timerPromise = state.mDisableTimer->WaitFor(offDelay, __func__);
const TimeDuration durationEnabled =
TimeStamp::Now() - state.mTrackEnabledTime;
const TimeDuration delay =
TimeDuration::Max(TimeDuration::FromMilliseconds(0),
maxDelay - durationEnabled);
timerPromise = state.mDisableTimer->WaitFor(delay, __func__);
}
typedef MozPromise<nsresult, bool, /* IsExclusive = */ true> DeviceOperationPromise;
RefPtr<SourceListener> self = this;
timerPromise->Then(GetMainThreadSerialEventTarget(), __func__,
[self, this, &state, aTrackID, aEnable](bool aDummy) mutable {
[self, this, &state, aTrackID, aEnable]() mutable {
MOZ_ASSERT(state.mDeviceEnabled != aEnable,
"Device operation hasn't started");
MOZ_ASSERT(state.mOperationInProgress,
@ -4014,15 +4091,12 @@ SourceListener::SetEnabledFor(TrackID aTrackID, bool aEnable)
return DeviceOperationPromise::CreateAndResolve(NS_OK, __func__);
}
RefPtr<DeviceOperationPromise::Private> promise =
new DeviceOperationPromise::Private(__func__);
MediaManager::PostTask(NewTaskFrom([self, device = state.mDevice,
aEnable, promise]() mutable {
promise->Resolve(aEnable ? device->Start() : device->Stop(), __func__);
}));
RefPtr<DeviceOperationPromise> result = promise.get();
return result;
}, [](bool aDummy) {
return MediaManager::PostTask<DeviceOperationPromise>(__func__,
[self, device = state.mDevice, aEnable]
(MozPromiseHolder<DeviceOperationPromise>& h) {
h.Resolve(aEnable ? device->Start() : device->Stop(), __func__);
});
}, []() {
// Timer was canceled by us. We signal this with NS_ERROR_ABORT.
return DeviceOperationPromise::CreateAndResolve(NS_ERROR_ABORT, __func__);
})->Then(GetMainThreadSerialEventTarget(), __func__,
@ -4082,7 +4156,7 @@ SourceListener::SetEnabledFor(TrackID aTrackID, bool aEnable)
} else {
SetEnabledFor(aTrackID, false);
}
}, [](bool aDummy) {
}, []() {
MOZ_ASSERT_UNREACHABLE("Unexpected and unhandled reject");
});
}

View File

@ -142,6 +142,18 @@ public:
static MediaManager* GetIfExists();
static void StartupInit();
static void PostTask(already_AddRefed<Runnable> task);
/**
* Posts an async operation to the media manager thread.
* FunctionType must be a function that takes a `MozPromiseHolder&`.
*
* The returned promise is resolved or rejected by aFunction on the media
* manager thread.
*/
template<typename MozPromiseType, typename FunctionType>
static RefPtr<MozPromiseType>
PostTask(const char* aName, FunctionType&& aFunction);
#ifdef DEBUG
static bool IsInMediaThread();
#endif

View File

@ -237,6 +237,10 @@ MediaEngineDefaultVideoSource::Stop(const RefPtr<const AllocationHandle>& aHandl
{
AssertIsOnOwningThread();
if (mState == kStopped || mState == kAllocated) {
return NS_OK;
}
MOZ_ASSERT(mState == kStarted);
MOZ_ASSERT(mTimer);
MOZ_ASSERT(mStream);
@ -350,7 +354,7 @@ MediaEngineDefaultVideoSource::Pull(const RefPtr<const AllocationHandle>& aHandl
StreamTime delta = aDesiredTime - aStream->GetEndOfAppendedData(aTrackID);
if (delta > 0) {
// nullptr images are allowed
IntSize size(image ? mOpts.mWidth : 0, image ? mOpts.mHeight : 0);
IntSize size(mOpts.mWidth, mOpts.mHeight);
segment.AppendFrame(image.forget(), delta, size, aPrincipalHandle);
// This can fail if either a) we haven't added the track yet, or b)
// we've removed or finished the track.
@ -495,8 +499,11 @@ MediaEngineDefaultAudioSource::Stop(const RefPtr<const AllocationHandle>& aHandl
{
AssertIsOnOwningThread();
MOZ_ASSERT(mState == kStarted);
if (mState == kStopped || mState == kAllocated) {
return NS_OK;
}
MOZ_ASSERT(mState == kStarted);
MutexAutoLock lock(mMutex);
mState = kStopped;

View File

@ -324,6 +324,10 @@ MediaEngineRemoteVideoSource::Stop(const RefPtr<const AllocationHandle>& aHandle
LOG((__PRETTY_FUNCTION__));
AssertIsOnOwningThread();
if (mState == kStopped || mState == kAllocated) {
return NS_OK;
}
MOZ_ASSERT(mState == kStarted);
if (camera::GetChildAndCall(&camera::CamerasChild::StopCapture,

View File

@ -171,6 +171,9 @@ public:
*
* If this was the last AllocationHandle that had been started,
* the underlying device will be stopped.
*
* Double-stopping a given allocation handle is allowed and will return NS_OK.
* This is necessary sometimes during shutdown.
*/
virtual nsresult Stop(const RefPtr<const AllocationHandle>& aHandle) = 0;

View File

@ -402,6 +402,11 @@ nsresult
MediaEngineTabVideoSource::Stop(const RefPtr<const AllocationHandle>& aHandle)
{
AssertIsOnOwningThread();
if (mState == kStopped || mState == kAllocated) {
return NS_OK;
}
MOZ_ASSERT(mState == kStarted);
// If mBlackedoutWindow is true, we may be running

View File

@ -552,9 +552,11 @@ SharedMemoryBasic::Create(size_t size)
VM_PROT_DEFAULT,
&mPort,
MACH_PORT_NULL);
if (kr != KERN_SUCCESS) {
if (kr != KERN_SUCCESS || memoryObjectSize < round_page(size)) {
LOG_ERROR("Failed to make memory entry (%zu bytes). %s (%x)\n",
size, mach_error_string(kr), kr);
CloseHandle();
mach_vm_deallocate(mach_task_self(), address, round_page(size));
return false;
}

View File

@ -12,8 +12,10 @@
#include "mozilla/Alignment.h"
#include "mozilla/Assertions.h"
#include "mozilla/Attributes.h"
#include "mozilla/MemoryChecking.h"
#include "mozilla/Move.h"
#include "mozilla/OperatorNewExtensions.h"
#include "mozilla/Poison.h"
#include "mozilla/TypeTraits.h"
#include <new> // for placement new
@ -24,6 +26,27 @@ namespace mozilla {
struct Nothing { };
namespace detail {
template<typename T>
struct MaybePoisoner
{
static const size_t N = sizeof(T);
static void poison(void* aPtr)
{
#ifdef MOZ_DIAGNOSTIC_ASSERT_ENABLED
// Avoid MOZ_ASSERT in mozWritePoison.
if (N >= sizeof(uintptr_t)) {
mozWritePoison(aPtr, N);
}
#endif
MOZ_MAKE_MEM_UNDEFINED(aPtr, N);
}
};
} // namespace detail
/*
* Maybe is a container class which contains either zero or one elements. It
* serves two roles. It can represent values which are *semantically* optional,
@ -93,19 +116,32 @@ class MOZ_NON_PARAM MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS Maybe
void* data() { return mStorage; }
const void* data() const { return mStorage; }
void poisonData()
{
detail::MaybePoisoner<T>::poison(data());
}
public:
using ValueType = T;
Maybe() : mIsSome(false) { }
Maybe() : mIsSome(false)
{
poisonData();
}
~Maybe() { reset(); }
MOZ_IMPLICIT Maybe(Nothing) : mIsSome(false) { }
MOZ_IMPLICIT Maybe(Nothing) : mIsSome(false)
{
poisonData();
}
Maybe(const Maybe& aOther)
: mIsSome(false)
{
if (aOther.mIsSome) {
emplace(*aOther);
} else {
poisonData();
}
}
@ -121,6 +157,8 @@ public:
{
if (aOther.isSome()) {
emplace(*aOther);
} else {
poisonData();
}
}
@ -130,6 +168,8 @@ public:
if (aOther.mIsSome) {
emplace(Move(*aOther));
aOther.reset();
} else {
poisonData();
}
}
@ -146,6 +186,8 @@ public:
if (aOther.isSome()) {
emplace(Move(*aOther));
aOther.reset();
} else {
poisonData();
}
}
@ -445,6 +487,7 @@ public:
if (isSome()) {
ref().T::~T();
mIsSome = false;
poisonData();
}
}

View File

@ -16,6 +16,7 @@
#include "mozilla/Types.h"
#include <stdint.h>
#include <string.h>
MOZ_BEGIN_EXTERN_C
@ -39,11 +40,10 @@ inline void mozWritePoison(void* aPtr, size_t aSize)
{
const uintptr_t POISON = mozPoisonValue();
char* p = (char*)aPtr;
char* limit = p + aSize;
MOZ_ASSERT((uintptr_t)aPtr % sizeof(uintptr_t) == 0, "bad alignment");
char* limit = p + (aSize & ~(sizeof(uintptr_t) - 1));
MOZ_ASSERT(aSize >= sizeof(uintptr_t), "poisoning this object has no effect");
for (; p < limit; p += sizeof(uintptr_t)) {
*((uintptr_t*)p) = POISON;
memcpy(p, &POISON, sizeof(POISON));
}
}

View File

@ -147,7 +147,6 @@
@BINPATH@/components/dom_xhr.xpt
@BINPATH@/components/dom_xul.xpt
@BINPATH@/components/dom_presentation.xpt
@BINPATH@/components/downloads.xpt
@BINPATH@/components/editor.xpt
@BINPATH@/components/extensions.xpt
@BINPATH@/components/exthandler.xpt

View File

@ -1163,4 +1163,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = {
static const int32_t kUnknownId = -1;
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1528817024300000);
static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1528833482766000);

View File

@ -43,6 +43,7 @@
4loc.us: could not connect to host
4web-hosting.com: could not connect to host
5000yz.com: could not connect to host
517vpn.cn: could not connect to host
525.info: could not connect to host
52kb1.com: could not connect to host
52neptune.com: could not connect to host
@ -299,7 +300,9 @@ bjtxl.cn: could not connect to host
black-khat.com: could not connect to host
blackberrycentral.com: could not connect to host
blackdragoninc.org: could not connect to host
blackhelicopters.net: could not connect to host
blackscreen.me: could not connect to host
blankersfamily.com: could not connect to host
blantik.net: could not connect to host
blazeit.io: could not connect to host
blessedearth.com.au: could not connect to host
@ -373,6 +376,7 @@ byteshift.ca: could not connect to host
cafechesscourt.com: could not connect to host
cafesg.net: could not connect to host
caipai.fm: could not connect to host
cal.goip.de: could not connect to host
calculatoaresecondhand.xyz: could not connect to host
callabs.net: could not connect to host
calleveryday.com: could not connect to host
@ -417,8 +421,6 @@ channellife.asia: could not connect to host
chaouby.com: could not connect to host
charge.co: could not connect to host
charmyadesara.com: could not connect to host
chatbelgie.eu: could not connect to host
chatnederland.eu: could not connect to host
cheah.xyz: could not connect to host
cheesefusion.com: could not connect to host
chez-janine.de: could not connect to host
@ -449,7 +451,6 @@ clintonbloodworth.com: could not connect to host
cloudberlin.goip.de: could not connect to host
cloudbleed.info: could not connect to host
cloudimproved.com: could not connect to host
cloudimprovedtest.com: could not connect to host
cloudwarez.xyz: could not connect to host
clownish.co.il: could not connect to host
clycat.ru: could not connect to host
@ -469,13 +470,13 @@ codeloop.pw: could not connect to host
codenlife.xyz: could not connect to host
codeofhonor.tech: could not connect to host
codercross.com: could not connect to host
codercy.com: could not connect to host
coderhangout.com: could not connect to host
codewiz.xyz: could not connect to host
cogumelosmagicos.org: could not connect to host
colarelli.ch: could not connect to host
colleencornez.com: could not connect to host
collins.kg: could not connect to host
colo-tech.com: could not connect to host
coloppe.com: could not connect to host
com-in.de: could not connect to host
com.cc: could not connect to host
@ -524,6 +525,8 @@ cuni-rec.com: could not connect to host
cuonic.com: could not connect to host
curacao-license.com: could not connect to host
customfilmworks.com: could not connect to host
customizeyourshower.com: could not connect to host
customizeyoursink.com: could not connect to host
cybbh.space: could not connect to host
cyber-computer.club: could not connect to host
cyberpeace.nl: could not connect to host
@ -619,6 +622,7 @@ distinctivephotography.com.au: could not connect to host
ditch.ch: could not connect to host
diwei.vip: could not connect to host
dixmag.com: could not connect to host
diz.in.ua: could not connect to host
djul.net: could not connect to host
dlouwrink.nl: could not connect to host
dlyl888.com: could not connect to host
@ -688,7 +692,6 @@ eccux.com: could not connect to host
economy.st: could not connect to host
ectora.com: could not connect to host
edgecustomersportal.com: could not connect to host
edp-collaborative.com: could not connect to host
educatoys.com.br: could not connect to host
eductf.org: could not connect to host
eduif.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116" data: no]
@ -841,6 +844,7 @@ freesounding.ru: could not connect to host
freshcode.nl: could not connect to host
frickenate.com: could not connect to host
friedhelm-wolf.de: could not connect to host
friller.com.au: could not connect to host
frolov.net: could not connect to host
fromlemaytoz.com: could not connect to host
frosty-gaming.xyz: could not connect to host
@ -867,6 +871,7 @@ g1jeu.com: could not connect to host
gaasuper6.com: could not connect to host
gabriele-kluge.de: could not connect to host
gafachi.com: could not connect to host
galactic-crew.org: could not connect to host
galgoafegao.com.br: could not connect to host
galgoingles.com.br: could not connect to host
gam3rs.de: could not connect to host
@ -919,7 +924,6 @@ ggss.cf: could not connect to host
gh16.com.ar: could not connect to host
ghaglund.se: could not connect to host
gifzilla.net: could not connect to host
gigawattz.com: could not connect to host
gina-architektur.design: could not connect to host
girlsforum.com: could not connect to host
git.co: could not connect to host
@ -977,6 +981,7 @@ halta.info: could not connect to host
hamking.tk: could not connect to host
hammer-schnaps.com: could not connect to host
hamu.blue: could not connect to host
happyagain.se: could not connect to host
happytiger.eu: could not connect to host
hapsfordmill.co.uk: could not connect to host
hapvm.com: could not connect to host
@ -1002,6 +1007,7 @@ heavenlysmokenc.com: could not connect to host
heikorichter.name: could not connect to host
heisenberg.co: could not connect to host
hejsupport.se: could not connect to host
helioanodyne.eu: could not connect to host
hellofilters.com: could not connect to host
hellomouse.tk: could not connect to host
helpantiaging.com: could not connect to host
@ -1033,6 +1039,7 @@ holidayincotswolds.co.uk: could not connect to host
homesfordinner.ca: could not connect to host
homoglyph.net: could not connect to host
hondenoppasfraneker.nl: could not connect to host
honeybeard.co.uk: could not connect to host
honeytracks.com: could not connect to host
hoodoo.io: could not connect to host
hoodoo.tech: could not connect to host
@ -1149,7 +1156,6 @@ ivfmeds.com: could not connect to host
ivyshop.com.br: could not connect to host
ivystech.com: could not connect to host
iwex.swiss: could not connect to host
ixio.cz: could not connect to host
j-navi.com: could not connect to host
j0ng.xyz: could not connect to host
jaimechanaga.com: could not connect to host
@ -1174,7 +1180,6 @@ jean-remy.ch: could not connect to host
jecho.cn: could not connect to host
jeffersonregan.org: could not connect to host
jens.hk: could not connect to host
jerrypau.ca: could not connect to host
jessevictors.com: could not connect to host
jhburton.co.uk: could not connect to host
jiangzm.com: could not connect to host
@ -1183,7 +1188,6 @@ jiaqiang.vip: could not connect to host
jimmycn.com: could not connect to host
jmb.lc: could not connect to host
jmoreau.ddns.net: could not connect to host
jmpb.hu: could not connect to host
jmvbmx.ch: could not connect to host
jobmedic.com: could not connect to host
joecod.es: could not connect to host
@ -1207,12 +1211,13 @@ justinharrison.ca: could not connect to host
justzz.xyz: could not connect to host
juventusmania1897.com: could not connect to host
k33k00.com: could not connect to host
kabus.org: could not connect to host
kaika-facilitymanagement.de: could not connect to host
kainz.be: could not connect to host
kalender.goip.de: could not connect to host
kaloix.de: could not connect to host
kamalame.co: could not connect to host
kamitech.ch: could not connect to host
kandalife.com: could not connect to host
kanganer.com: could not connect to host
kangzaber.com: could not connect to host
kanr.in: could not connect to host
@ -1223,6 +1228,7 @@ kat.al: could not connect to host
kawaiiku.com: could not connect to host
kawaiiku.de: could not connect to host
kaydan.io: could not connect to host
kb3.net: could not connect to host
kearney.io: could not connect to host
keepflow.io: could not connect to host
kellyandantony.com: could not connect to host
@ -1304,6 +1310,9 @@ lbarrios.es: could not connect to host
lbrls.tk: could not connect to host
lclarkpdx.com: could not connect to host
lcti.biz: could not connect to host
le-dev.de: could not connect to host
le-h.de: could not connect to host
le-hosting.de: could not connect to host
leadbox.cz: could not connect to host
leaderoftheresistance.com: could not connect to host
leaderoftheresistance.net: could not connect to host
@ -1331,9 +1340,10 @@ lheinrich.org: could not connect to host
lhsj28.com: could not connect to host
lhsj68.com: could not connect to host
lhsj78.com: could not connect to host
lianye1.cc: could not connect to host
lianye2.cc: could not connect to host
lianye3.cc: could not connect to host
lianye5.cc: could not connect to host
lianye6.cc: could not connect to host
liaozheqi.cn: could not connect to host
libertas-tech.com: could not connect to host
libscode.com: could not connect to host
@ -1366,13 +1376,13 @@ logicchen.com: could not connect to host
logimagine.com: could not connect to host
loket.nl: could not connect to host
loli.net: could not connect to host
lookyman.net: could not connect to host
loony.info: could not connect to host
loopower.com: could not connect to host
loothole.com: could not connect to host
loqyu.co: could not connect to host
losebellyfat.pro: could not connect to host
love4taylor.eu.org: could not connect to host
love4taylor.me: could not connect to host
loveandloyalty.se: could not connect to host
lowt.us: could not connect to host
loyaltech.ch: could not connect to host
@ -1400,12 +1410,10 @@ maartenterpstra.xyz: could not connect to host
madeintucson.org: could not connect to host
madnetwork.org: could not connect to host
madusecurity.com: could not connect to host
magicball.co: could not connect to host
magnacumlaude.co: could not connect to host
mahansexcavating.com: could not connect to host
maik-mahlow.de: could not connect to host
mailon.ga: could not connect to host
majkassab.com: could not connect to host
makeit-so.de: could not connect to host
makeuplove.nl: could not connect to host
malamutedoalasca.com.br: could not connect to host
@ -1420,6 +1428,7 @@ mardelcupon.com: could not connect to host
mare92.cz: could not connect to host
mariusschulte.de: could not connect to host
mark-armstrong-gaming.com: could not connect to host
marketgot.com: could not connect to host
marketingdesignu.cz: could not connect to host
markllego.com: could not connect to host
marko-fenster24.de: could not connect to host
@ -1480,7 +1489,6 @@ michaelkuchta.me: could not connect to host
michaelsulzer.com: could not connect to host
michaelsulzer.eu: could not connect to host
michasfahrschule.com: could not connect to host
michel.pt: could not connect to host
microblading.pe: could not connect to host
microlinks.org: could not connect to host
mieterschutzkartei.de: could not connect to host
@ -1530,7 +1538,6 @@ morz.org: could not connect to host
mosaique-lachenaie.fr: could not connect to host
moskva.guide: could not connect to host
motezazer.fr: could not connect to host
motherboard.services: could not connect to host
motocyklovedily.cz: could not connect to host
motomorgen.com: could not connect to host
motorbiketourhanoi.com: could not connect to host
@ -1538,7 +1545,6 @@ mountainadventureseminars.com: could not connect to host
moving-pixtures.de: could not connect to host
mowalls.net: could not connect to host
mozzilla.cz: could not connect to host
mpodraza.pl: could not connect to host
mpserver12.org: could not connect to host
mrafrohead.com: could not connect to host
mremallin.ca: could not connect to host
@ -1594,8 +1600,6 @@ net4visions.at: could not connect to host
netbuzz.ru: could not connect to host
netica.fr: could not connect to host
netscaler.expert: could not connect to host
netwarc.eu: could not connect to host
netwarc.nl: could not connect to host
nevadafiber.net: could not connect to host
newcityinfo.info: could not connect to host
newfacialbeautycream.com: could not connect to host
@ -1611,13 +1615,13 @@ nienfun.com: could not connect to host
nikksno.io: could not connect to host
nikobradshaw.com: could not connect to host
nikolasbradshaw.com: could not connect to host
ninofink.com: could not connect to host
ninux.ch: could not connect to host
niouininon.eu: could not connect to host
nirada.info: could not connect to host
nishikino-maki.com: could not connect to host
niva.synology.me: could not connect to host
nkadvertising.online: could not connect to host
nodefoo.com: could not connect to host
nodelab-it.de: could not connect to host
nodeselect.com: could not connect to host
noelblog.ga: could not connect to host
@ -1671,7 +1675,6 @@ opinion8td.com: could not connect to host
opinionipannolini.it: could not connect to host
orangekey.tk: could not connect to host
oricejoc.com: could not connect to host
osacrypt.studio: could not connect to host
oscarmashauri.com: could not connect to host
oscsdp.cz: could not connect to host
oshell.me: could not connect to host
@ -1719,10 +1722,8 @@ peirong.me: could not connect to host
pemagrid.org: could not connect to host
pengisatelier.net: could not connect to host
pepper.dog: could not connect to host
perrone.co: could not connect to host
persjrp.ca: could not connect to host
persoform.ch: could not connect to host
pervacio.hu: could not connect to host
petlife.od.ua: could not connect to host
peuf.shop: could not connect to host
peykezamin.ir: could not connect to host
@ -1758,7 +1759,6 @@ pixelgliders.de: could not connect to host
plaasprodukte.com: could not connect to host
planbox.info: could not connect to host
planningexcellence.com.au: could not connect to host
play.cash: could not connect to host
playsharp.com: could not connect to host
please-deny.me: could not connect to host
plussizereviews.com: could not connect to host
@ -1894,6 +1894,7 @@ richardb.me: could not connect to host
richeza.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116" data: no]
righteousendeavour.com: could not connect to host
riversideauto.net: could not connect to host
riverstyxgame.com: could not connect to host
roave.com: could not connect to host
robi-net.it: could not connect to host
robicue.com: could not connect to host
@ -1923,7 +1924,6 @@ ruhr3.de: could not connect to host
ruja.dk: could not connect to host
runcarina.com: could not connect to host
rundumcolumn.xyz: could not connect to host
rushball.net: could not connect to host
ruurdboomsma.nl: could not connect to host
rzegroup.com: could not connect to host
s0923.com: could not connect to host
@ -2054,7 +2054,6 @@ slytech.ch: could not connect to host
smallchat.nl: could not connect to host
smartbiz.vn: could not connect to host
smarthouse.de: could not connect to host
smartmessages.net: could not connect to host
smith.is: could not connect to host
sml.lc: could not connect to host
smuhelper.cn: could not connect to host
@ -2187,6 +2186,7 @@ team-pancake.eu: could not connect to host
tearoy.faith: could not connect to host
tebieer.com: could not connect to host
techask.it: could not connect to host
techcultivation.de: could not connect to host
techiehall.com: could not connect to host
techpit.us: could not connect to host
techshift.se: could not connect to host
@ -2210,6 +2210,7 @@ the-gist.io: could not connect to host
thebte.com: could not connect to host
thedailyupvote.com: could not connect to host
theeducationchannel.info: could not connect to host
theevergreen.me: could not connect to host
thefox.co: could not connect to host
thefrk.xyz: could not connect to host
thelostyankee.com: could not connect to host
@ -2252,7 +2253,6 @@ tollsjekk.no: could not connect to host
tomharling.co.uk: could not connect to host
tomm.yt: could not connect to host
tomo.gr: could not connect to host
toms.ovh: could not connect to host
top10mountainbikes.info: could not connect to host
topanlage.de: could not connect to host
topdetoxcleanse.com: could not connect to host
@ -2281,6 +2281,7 @@ treker.us: could not connect to host
triageo.com.au: could not connect to host
tristanfarkas.one: could not connect to host
trumanlibrary.org: could not connect to host
truthmessages.pw: could not connect to host
tryfm.net: could not connect to host
trynowrinkleseyeserum.com: could not connect to host
tryti.me: could not connect to host
@ -2309,12 +2310,12 @@ tylerharcourt.ca: could not connect to host
tylerharcourt.com: could not connect to host
tylerharcourt.net: could not connect to host
tylerharcourt.org: could not connect to host
tysox.de: could not connect to host
tysye.ca: could not connect to host
tzwe.com: could not connect to host
ubi.gg: could not connect to host
ubicv.com: could not connect to host
uborcare.com: could not connect to host
ubtce.com: could not connect to host
udo-luetkemeier.de: could not connect to host
ueba1085.jp: could not connect to host
ueu.me: could not connect to host
@ -2487,6 +2488,7 @@ xeonlab.com: could not connect to host
xeonlab.de: could not connect to host
xia100.xyz: could not connect to host
xianguocy.com: could not connect to host
xiaoyu.net: could not connect to host
xing.ml: could not connect to host
xiqi.us: could not connect to host
xlboo.com: could not connect to host
@ -2634,7 +2636,6 @@ zzw.ca: could not connect to host
188betwarriors.co.uk: could not connect to host
188trafalgar.ca: did not receive HSTS header
195gm.com: could not connect to host
1972969867.rsc.cdn77.org: did not receive HSTS header
1a-jva.de: could not connect to host
1atic.com: could not connect to host
1co-jp.net: did not receive HSTS header
@ -2674,7 +2675,7 @@ zzw.ca: could not connect to host
32ph.com: could not connect to host
33836.com: did not receive HSTS header
33drugstore.com: did not receive HSTS header
341.mg: did not receive HSTS header
341.mg: could not connect to host
3555aa.com: could not connect to host
35792.de: could not connect to host
360gradus.com: did not receive HSTS header
@ -2926,7 +2927,6 @@ akselimedia.fi: did not receive HSTS header
akstudentsfirst.org: could not connect to host
aktivist.in: did not receive HSTS header
al-shami.net: could not connect to host
aladdin.ie: did not receive HSTS header
alair.cn: did not receive HSTS header
alanlee.net: could not connect to host
alanrickmanflipstable.com: could not connect to host
@ -3139,7 +3139,6 @@ appsbystudio.co.uk: did not receive HSTS header
appsdash.io: could not connect to host
appuro.com: did not receive HSTS header
aquariumaccessories.shop: did not receive HSTS header
aquaundine.net: did not receive HSTS header
aquilalab.com: could not connect to host
arabdigitalexpression.org: did not receive HSTS header
aradulconteaza.ro: could not connect to host
@ -3258,7 +3257,7 @@ aurora-terraria.org: did not receive HSTS header
auroratownshipfd.org: could not connect to host
aurugs.com: did not receive HSTS header
auskunftsbegehren.at: did not receive HSTS header
auslandsjahr-usa.de: could not connect to host
auslandsjahr-usa.de: did not receive HSTS header
ausnah.me: could not connect to host
ausoptic.com.au: max-age too low: 2592000
aussiecable.org: did not receive HSTS header
@ -3322,7 +3321,6 @@ b-space.de: did not receive HSTS header
b2bpromoteit.com: did not receive HSTS header
b3orion.com: max-age too low: 0
b8a.me: could not connect to host
babursahvizeofisi.com: did not receive HSTS header
baby-click.de: could not connect to host
babybee.ie: could not connect to host
babybic.hu: did not receive HSTS header
@ -3541,7 +3539,7 @@ bimbo.com.ar: max-age too low: 86400
bimbobakeriesusa.com: max-age too low: 86400
binaryfigments.com: max-age too low: 86400
binderapp.net: could not connect to host
bingcheung.org: did not receive HSTS header
bingcheung.org: could not connect to host
bioespuna.eu: did not receive HSTS header
biofam.ru: did not receive HSTS header
bioknowme.com: did not receive HSTS header
@ -3684,6 +3682,7 @@ boxlitepackaging.com: did not receive HSTS header
boyan.in: could not connect to host
boyfriendhusband.men: did not receive HSTS header
bp-wahl.at: did not receive HSTS header
bqr.ch: did not receive HSTS header
bqtoolbox.com: could not connect to host
bragasoft.com.br: did not receive HSTS header
braineet.com: did not receive HSTS header
@ -4173,6 +4172,7 @@ codepoet.de: did not receive HSTS header
codepx.com: did not receive HSTS header
codewiththepros.org: could not connect to host
codigosddd.com.br: did not receive HSTS header
coding.net: did not receive HSTS header
coffeeetc.co.uk: max-age too low: 7889238
coffeestrategies.com: max-age too low: 5184000
cogniflex.com: did not receive HSTS header
@ -4298,7 +4298,6 @@ covenantbank.net: could not connect to host
coverdat.com: did not receive HSTS header
coverduck.ru: could not connect to host
cpuvinf.eu.org: could not connect to host
cracker.in.th: max-age too low: 2592000
cracking.org: did not receive HSTS header
crackingking.com: did not receive HSTS header
craftbeerbarn.co.uk: could not connect to host
@ -4831,7 +4830,6 @@ dunea.nl: did not receive HSTS header
duole30.com: did not receive HSTS header
duongpho.com: did not receive HSTS header
duskopy.top: could not connect to host
dutchessuganda.com: did not receive HSTS header
dutchrank.com: did not receive HSTS header
duuu.ch: could not connect to host
duyao.de: max-age too low: 86400
@ -4944,10 +4942,9 @@ ehito.ovh: could not connect to host
ehrenamt-skpfcw.de: could not connect to host
eicfood.com: could not connect to host
eidolonhost.com: did not receive HSTS header
eifelindex.de: did not receive HSTS header
eifelindex.de: could not connect to host
eigo.work: could not connect to host
eimanavicius.lt: did not receive HSTS header
ejusu.com: did not receive HSTS header
ekbanden.nl: could not connect to host
eksik.com: could not connect to host
el-soul.com: did not receive HSTS header
@ -5713,6 +5710,7 @@ gizzo.sk: could not connect to host
glasslikes.com: did not receive HSTS header
glbg.eu: did not receive HSTS header
glentakahashi.com: could not connect to host
glittersjabloon.nl: did not receive HSTS header
glitzmirror.com: could not connect to host
global-adult-webcams.com: did not receive HSTS header
globalado.com: could not connect to host
@ -6443,6 +6441,7 @@ iostips.ru: could not connect to host
ip-life.net: did not receive HSTS header
ip6.im: did not receive HSTS header
ipbill.org.uk: could not connect to host
ipfp.pl: did not receive HSTS header
iplife.cn: could not connect to host
ipmimagazine.com: did not receive HSTS header
iprice.co.id: did not receive HSTS header
@ -6668,7 +6667,6 @@ jimmycai.org: could not connect to host
jingyuesi.com: could not connect to host
jinmaguoji.com: could not connect to host
jinshavip.com: could not connect to host
jiosongs.com: did not receive HSTS header
jira.com: did not receive HSTS header
jirav.io: could not connect to host
jisaku-homepage.com: did not receive HSTS header
@ -6817,7 +6815,6 @@ karaoketonight.com: could not connect to host
karloskontana.tk: could not connect to host
karting34.com: did not receive HSTS header
kashdash.ca: could not connect to host
kasilag.me: did not receive HSTS header
katalogakci.cz: did not receive HSTS header
katiaetdavid.fr: could not connect to host
katoju.co.jp: could not connect to host
@ -6873,8 +6870,7 @@ kid-dachau.de: did not receive HSTS header
kidkat.cn: could not connect to host
kiel-media.de: did not receive HSTS header
kienlen.org: did not receive HSTS header
kieranjones.uk: did not receive HSTS header
kill-paff.com: did not receive HSTS header
kill-paff.com: could not connect to host
kimana.pe: could not connect to host
kimberg.co.uk: did not receive HSTS header
kimberlybeautysoapcompany.com: did not receive HSTS header
@ -7006,7 +7002,7 @@ ksfh-mail.de: could not connect to host
kstan.me: could not connect to host
ksukelife.com: did not receive HSTS header
kswriter.com: could not connect to host
kteen.info: could not connect to host
kteen.info: did not receive HSTS header
kuba.guide: could not connect to host
kucom.it: could not connect to host
kudo.co.id: did not receive HSTS header
@ -7086,7 +7082,6 @@ langendries.eu: could not connect to host
langhun.me: did not receive HSTS header
laniakean.com: could not connect to host
lansinoh.co.uk: did not receive HSTS header
lanternhealth.org: did not receive HSTS header
lanzainc.xyz: did not receive HSTS header
laobox.fr: could not connect to host
laplaceduvillage.net: could not connect to host
@ -7425,6 +7420,7 @@ madesoftware.com.br: could not connect to host
madesurveying.co.uk: max-age too low: 0
mafamane.com: could not connect to host
mafiareturns.com: max-age too low: 2592000
magentaize.net: did not receive HSTS header
magenx.com: did not receive HSTS header
magia360.com: did not receive HSTS header
magneticanvil.com: did not receive HSTS header
@ -7613,7 +7609,7 @@ mclab.su: max-age too low: 2592000
mclist.it: could not connect to host
mcmillansedationdentistry.com: did not receive HSTS header
mcooperlaw.com: did not receive HSTS header
mcuexchange.com: could not connect to host
mcuexchange.com: did not receive HSTS header
mdfnet.se: did not receive HSTS header
mdscomp.net: did not receive HSTS header
meadowfenfarm.com: could not connect to host
@ -7628,6 +7624,7 @@ mediafinancelab.org: did not receive HSTS header
mediamag.am: max-age too low: 0
mediawikicn.org: could not connect to host
medienservice-fritz.de: did not receive HSTS header
medifab.online: did not receive HSTS header
medirich.co: could not connect to host
meditek-dv.ru: could not connect to host
mediterenopmaandag.nl: did not receive HSTS header
@ -7716,6 +7713,7 @@ michaelscrivo.com: did not receive HSTS header
michaelwaite.org: could not connect to host
michal-kral.cz: could not connect to host
michalborka.cz: could not connect to host
michel.pt: did not receive HSTS header
michelledonelan.co.uk: did not receive HSTS header
michiganmetalartwork.com: max-age too low: 7889238
miconware.de: could not connect to host
@ -8534,6 +8532,7 @@ ottospora.nl: could not connect to host
ourbank.com: max-age too low: 2592000
outdooradventures.pro: did not receive HSTS header
outdoorproducts.com: did not receive HSTS header
outlines.xyz: did not receive HSTS header
outreachbuddy.com: could not connect to host
outsider.im: could not connect to host
outurnate.com: did not receive HSTS header
@ -8653,7 +8652,6 @@ pavelkahouseforcisco.com: did not receive HSTS header
paxdei.com.br: could not connect to host
paxwinkel.nl: did not receive HSTS header
pay.gigahost.dk: did not receive HSTS header
payboy.biz: did not receive HSTS header
payclixpayments.com: did not receive HSTS header
payfreez.com: could not connect to host
payload.tech: did not receive HSTS header
@ -9200,7 +9198,7 @@ redar.xyz: could not connect to host
reddit.com: did not receive HSTS header
rede.ca: did not receive HSTS header
redeemingbeautyminerals.com: max-age too low: 0
redhorsemountainranch.com: could not connect to host
redhorsemountainranch.com: did not receive HSTS header
redicabo.de: could not connect to host
redirectman.com: did not receive HSTS header
redlatam.org: could not connect to host
@ -10035,7 +10033,6 @@ spititout.it: could not connect to host
spittersberger.recipes: did not receive HSTS header
spokonline.com: could not connect to host
sponsortobias.com: could not connect to host
sport-socken.net: did not receive HSTS header
sportchirp-internal.azurewebsites.net: did not receive HSTS header
sporthit.ru: did not receive HSTS header
sportifik.com: did not receive HSTS header
@ -10139,7 +10136,6 @@ stoick.me: could not connect to host
stole-my.bike: could not connect to host
stole-my.tv: could not connect to host
stonecutterscommunity.com: could not connect to host
stopbreakupnow.org: did not receive HSTS header
stopwoodfin.org: could not connect to host
storbritannien.guide: could not connect to host
store-host.com: did not receive HSTS header
@ -10482,7 +10478,6 @@ thecloudrevolution.net: did not receive HSTS header
theclubjersey.com: did not receive HSTS header
thecodeninja.net: did not receive HSTS header
thecoffeehouse.xyz: could not connect to host
thedreamtravelgroup.co.uk: did not receive HSTS header
thedrinks.co: did not receive HSTS header
thedrop.pw: did not receive HSTS header
thedystance.com: could not connect to host
@ -10490,6 +10485,7 @@ theelitebuzz.com: did not receive HSTS header
theemasphere.com: did not receive HSTS header
theendofzion.com: did not receive HSTS header
theescapistswiki.com: could not connect to host
theeyeopener.com: did not receive HSTS header
thefarbeyond.com: could not connect to host
theflowerbasketonline.com: could not connect to host
thefootballanalyst.com: did not receive HSTS header
@ -10503,7 +10499,7 @@ thegoldregister.co.uk: could not connect to host
thegreenpark.co.uk: did not receive HSTS header
thegreenvpn.com: did not receive HSTS header
thehiddenbay.eu: could not connect to host
thehiddenbay.me: max-age too low: 0
thehiddenbay.me: could not connect to host
thehiddenbay.net: max-age too low: 0
thehighersideclothing.com: did not receive HSTS header
thehistory.me: could not connect to host
@ -10598,7 +10594,7 @@ tikutiku.pl: could not connect to host
tildebot.com: could not connect to host
tilient.eu: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 116" data: no]
tilikum.io: did not receive HSTS header
tilkah.com.au: did not receive HSTS header
tilkah.com.au: could not connect to host
tillcraft.com: could not connect to host
timbeilby.com: could not connect to host
timbuktutimber.com: did not receive HSTS header
@ -10639,6 +10635,7 @@ tkappertjedemetamorfose.nl: could not connect to host
tkarstens.de: did not receive HSTS header
tkjg.fi: did not receive HSTS header
tkonstantopoulos.tk: could not connect to host
tlach.cz: did not receive HSTS header
tlcdn.net: could not connect to host
tlo.hosting: could not connect to host
tlo.link: could not connect to host
@ -10677,6 +10674,7 @@ tokobungadipadangflorist.com: did not receive HSTS header
tokoone.com: did not receive HSTS header
tokotamz.net: could not connect to host
tokotimbangandigitalmurah.web.id: did not receive HSTS header
tokototech.com: did not receive HSTS header
tokoyo.biz: could not connect to host
tollmanz.com: did not receive HSTS header
tolud.com: could not connect to host
@ -10740,7 +10738,6 @@ tracker-gps.ch: could not connect to host
trackingstream.com: did not receive HSTS header
tracktivity.com.au: could not connect to host
trade-smart.ru: could not connect to host
tradingbhavishya.com: did not receive HSTS header
tradingcentre.com.au: did not receive HSTS header
tradinghope.com: could not connect to host
traditional-knowledge.tk: did not receive HSTS header
@ -10953,7 +10950,6 @@ unikitty-on-tour.com: could not connect to host
unionstationapp.com: could not connect to host
unison.com: did not receive HSTS header
unisyssecurity.com: did not receive HSTS header
uniteasia.org: did not receive HSTS header
unitlabs.net: could not connect to host
unitrade-425.co.za: did not receive HSTS header
university4industry.com: did not receive HSTS header
@ -11189,6 +11185,7 @@ voicesuk.co.uk: did not receive HSTS header
voidserv.net: could not connect to host
volbyzive.cz: did not receive HSTS header
volcrado.com: did not receive HSTS header
voliere-info.nl: did not receive HSTS header
volkden.com: could not connect to host
voltotc.com: did not receive HSTS header
vonavy-cukor.sk: could not connect to host
@ -11276,6 +11273,7 @@ waterforlife.net.au: did not receive HSTS header
waterpoint.com.br: could not connect to host
watersportmarkt.net: did not receive HSTS header
watsonhall.uk: could not connect to host
wattechweb.com: did not receive HSTS header
wavefloatrooms.com: did not receive HSTS header
wavefrontsystemstech.com: could not connect to host
waylee.net: did not receive HSTS header
@ -11517,7 +11515,7 @@ www-8003.com: did not receive HSTS header
www-88599.com: did not receive HSTS header
www-9995.com: did not receive HSTS header
www-djbet.com: did not receive HSTS header
www-jinshavip.com: did not receive HSTS header
www-jinshavip.com: could not connect to host
www.cueup.com: could not connect to host
www.cyveillance.com: did not receive HSTS header
www.developer.mydigipass.com: could not connect to host

View File

@ -8,7 +8,7 @@
/*****************************************************************************/
#include <stdint.h>
const PRTime gPreloadListExpirationTime = INT64_C(1531236210688000);
const PRTime gPreloadListExpirationTime = INT64_C(1531252670136000);
%%
0-1.party, 1
0.me.uk, 1
@ -213,6 +213,7 @@ const PRTime gPreloadListExpirationTime = INT64_C(1531236210688000);
19216811.online, 1
192168ll.repair, 1
1921958389.rsc.cdn77.org, 1
1972969867.rsc.cdn77.org, 1
1981612088.rsc.cdn77.org, 1
19hundert84.de, 1
1a-diamantscheiben.de, 1
@ -1373,6 +1374,7 @@ akvorrat.at, 1
al-f.net, 1
al3xpro.com, 1
alaboard.com, 1
aladdin.ie, 1
aladdinschools.appspot.com, 1
alainbaechlerphotography.ch, 1
alainmargot.ch, 1
@ -2284,6 +2286,7 @@ aquarium-supplement.net, 1
aquaron.com, 1
aquaselect.eu, 1
aquatechnologygroup.com, 1
aquaundine.net, 1
aquavitaedayspa.com.au, 1
aquila.co.uk, 1
aquilaguild.com, 0
@ -3130,6 +3133,7 @@ babarkata.com, 1
babeleo.com, 1
babelfisch.eu, 1
babettelandmesser.de, 1
babursahvizeofisi.com, 1
baby-digne.com, 1
babyboom.pl, 1
babycamapp.com, 1
@ -4814,7 +4818,6 @@ bpo.ovh, 1
bpol-forum.de, 1
bqcp.net, 1
bqp.io, 1
bqr.ch, 1
br.search.yahoo.com, 0
br3in.nl, 0
braams.nl, 1
@ -6473,7 +6476,7 @@ cirugiasplasticas.com.mx, 1
cirujanooral.com, 1
cirurgicagervasio.com.br, 1
cirurgicalucena.com.br, 1
ciscodude.net, 0
ciscodude.net, 1
cisoaid.com, 1
ciss.ltd, 1
cisy.me, 1
@ -6861,7 +6864,6 @@ codific.com, 1
codific.eu, 1
coding-minds.com, 1
coding.lv, 1
coding.net, 1
codingforspeed.com, 1
codingfromhell.net, 1
codingrobots.com, 1
@ -7391,6 +7393,7 @@ cqchome.com, 1
cqn.ch, 1
cr.search.yahoo.com, 0
crackcat.de, 1
cracker.in.th, 1
crackle.io, 1
crackorsquad.in, 1
crackpfer.de, 1
@ -9642,6 +9645,7 @@ dustygroove.com, 1
dustyspokesbnb.ca, 1
dutch.desi, 1
dutch1.nl, 1
dutchessuganda.com, 1
dutchrank.nl, 1
dutchwanderers.nl, 1
dutchweballiance.nl, 1
@ -10086,6 +10090,7 @@ ejdv-anmeldung.de, 1
ejeff.org, 1
ejgconsultancy.co.uk, 1
ejuicelab.co.uk, 1
ejusu.com, 1
ek-networks.de, 1
ek.network, 1
ekaigotenshoku.com, 1
@ -13330,7 +13335,6 @@ glenshere.com, 1
glidingshop.cz, 1
glidingshop.de, 1
glidingshop.eu, 1
glittersjabloon.nl, 1
glloq.org, 1
glob-coin.com, 1
global-lights.ma, 1
@ -16142,7 +16146,6 @@ ipcareers.net, 1
ipcfg.me, 1
ipconsulting.se, 1
ipfirebox.de, 1
ipfp.pl, 1
ipfs.ink, 1
ipfs.io, 1
iphonechina.net, 1
@ -16895,6 +16898,7 @@ jino-jossy.appspot.com, 1
jinshuju.net, 1
jintaiyang123.org, 1
jiogo.com, 1
jiosongs.com, 1
jirav.com, 1
jiripudil.cz, 1
jiveiaktivno.bg, 1
@ -17549,6 +17553,7 @@ kasadara.com, 1
kasei.im, 1
kashis.com.au, 1
kashmirobserver.net, 1
kasilag.me, 0
kasko.io, 1
kasnoffskinclinic.com, 1
kassa.at, 1
@ -17817,6 +17822,7 @@ kiekin.org, 1
kiekko.pro, 1
kiel-kind.de, 1
kielderweather.org.uk, 1
kieranjones.uk, 1
kieranweightman.me, 1
kiesuwkerstkaart.nl, 1
kievradio.com, 1
@ -18620,6 +18626,7 @@ lanroamer.de, 1
lansechensilu.com, 1
lanseyujie.com, 0
lanternalauth.com, 1
lanternhealth.org, 1
lantian.pub, 1
lanturtle.com, 1
lanuovariviera.it, 1
@ -19561,7 +19568,7 @@ logopedistalanni.it, 1
logophiliapress.com, 1
logopoeia.com, 1
logostock.jp, 1
logue.be, 0
logue.be, 1
logze.nl, 1
lohanaflores.com.br, 1
loichot.ch, 1
@ -20046,7 +20053,6 @@ magdic.eu, 1
magebankin.com, 1
magenbrot.net, 0
magenda.sk, 1
magentaize.net, 1
magentapinkinteriors.co.uk, 1
magi-cake.com, 1
magi.systems, 1
@ -20796,7 +20802,6 @@ medicinia.com.br, 1
medicinskavranje.edu.rs, 1
medicocompetente.it, 1
medicoresponde.com.br, 1
medifab.online, 1
medifi.com, 1
medinside.ch, 1
medinside.li, 1
@ -21135,7 +21140,6 @@ michalvasicek.cz, 1
michalwiglasz.cz, 1
michasfahrschule.com, 1
michel-wein.de, 1
michel.pt, 1
michiganunionoptout.com, 1
michmexguides.com.mx, 1
michu.pl, 1
@ -21864,7 +21868,7 @@ mplusm.eu, 1
mpn.poker, 1
mpnpokertour.com, 1
mpodraza.pl, 1
mpreserver.com, 0
mpreserver.com, 1
mprsco.eu, 1
mpserver12.org, 1
mpsgarage.com.au, 1
@ -22842,7 +22846,7 @@ netsight.org, 1
netsigna.de, 1
netsite.dk, 1
netsoins.org, 1
netsparker.com, 0
netsparker.com, 1
netsparker.com.tr, 1
netsystems.pro, 1
nettamente.com, 1
@ -24177,7 +24181,6 @@ outetc.com, 1
outgress.com, 1
outka.xyz, 1
outline.ski, 1
outlines.xyz, 1
outlookonthedesktop.com, 1
outofcontrol.ca, 1
outpostinfo.com, 1
@ -24645,6 +24648,7 @@ pawsr.us, 1
pay.gov, 1
pay.ubuntu.com, 1
pay8522.com, 1
payboy.biz, 1
payboy.rocks, 1
paybro.eu, 1
payfazz.com, 1
@ -30149,6 +30153,7 @@ spornkuller.de, 1
sport-in-sundern.de, 1
sport-potreby.cz, 1
sport-potreby.sk, 1
sport-socken.net, 1
sport247.bet, 1
sporter.com, 1
sportflash.info, 1
@ -30603,6 +30608,7 @@ stonewuu.com, 1
stony.com, 1
stonystratford.org, 1
stopakwardhandshakes.org, 1
stopbreakupnow.org, 1
stopbullying.gov, 1
stopfraud.gov, 1
stopthethyroidmadness.com, 1
@ -31816,6 +31822,7 @@ thedisc.nl, 1
thediscovine.com, 1
thedocumentrefinery.com, 1
thedominatorsclan.com, 1
thedreamtravelgroup.co.uk, 1
thedronechart.com, 1
thedrunkencabbage.com, 1
thedutchmarketers.com, 1
@ -31825,7 +31832,6 @@ theeducationdirectory.org, 1
theepankar.com, 1
theevergreen.me, 1
theexpatriate.de, 1
theeyeopener.com, 1
thefanimatrix.net, 1
thefasterweb.com, 1
thefbstalker.com, 1
@ -32329,7 +32335,6 @@ tkn.tokyo, 1
tkts.cl, 1
tkusano.jp, 1
tkw01536.de, 1
tlach.cz, 1
tlca.org, 1
tlcnet.info, 1
tlehseasyads.com, 1
@ -32450,7 +32455,6 @@ tokky.eu, 1
tokobungadijambi.com, 1
tokobungadilampung.com, 1
tokoindo.top, 1
tokototech.com, 1
tokugai.com, 1
tokumei.co, 1
tokyo-onkyo.jp, 1
@ -32760,6 +32764,7 @@ traderjoe-cloud.de, 1
tradietrove.com.au, 1
tradinews.com, 1
tradinews.fr, 1
tradingbhavishya.com, 1
tradingrooms.com, 0
traditionsvivantesenimages.ch, 1
tradiz.org, 1
@ -33457,6 +33462,7 @@ unirenter.ru, 1
unit7jazz.com, 1
unit7jazz.org, 1
unite-ka.de, 1
uniteasia.org, 1
united-schools.net, 1
united.com, 0
unitedadmins.com, 1
@ -34287,7 +34293,6 @@ volcain.io, 1
volcanconcretos.com, 1
volga.us, 1
volgavibes.ru, 0
voliere-info.nl, 0
volker-gropp.de, 1
volkergropp.de, 1
volkerwesselstransfer.nl, 1
@ -34319,7 +34324,7 @@ vorodevops.com, 1
vos-fleurs.ch, 1
vos-fleurs.com, 1
vosgym.jp, 1
voshod.org, 1
voshod.org, 0
vosjesweb.nl, 1
vosky.fr, 1
vosn.de, 1
@ -34568,7 +34573,6 @@ watertrails.io, 1
waterworkscondos.com, 1
watoo.tech, 1
watsonwork.me, 1
wattechweb.com, 1
wave-ola.es, 1
wave.is, 1
wavesboardshop.com, 1

View File

@ -25,13 +25,13 @@ job-defaults:
scopes:
by-project:
mozilla-beta:
- project:releng:bouncer:action:submission
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:production
mozilla-release:
- project:releng:bouncer:action:submission
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:production
default:
- project:releng:bouncer:action:submission
- project:releng:bouncer:action:aliases
- project:releng:bouncer:server:staging
run-on-projects: []
shipping-phase: ship

View File

@ -29,7 +29,6 @@ def make_task_worker(config, jobs):
job, 'scopes', item_name=job['name'], project=config.params['project']
)
job['scopes'].append('project:releng:bouncer:action:aliases')
job['worker']['entries'] = craft_bouncer_entries(config, job)
del job['bouncer-products']

View File

@ -20,7 +20,6 @@ FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [
'../../xre',
'../alerts',
'../downloads',
'../feeds',
'../find',
'../jsdownloads/src',

View File

@ -21,9 +21,6 @@
#define NS_AUTOCOMPLETEMDBRESULT_CONTRACTID \
"@mozilla.org/autocomplete/mdb-result;1"
#define NS_DOWNLOADMANAGER_CONTRACTID \
"@mozilla.org/download-manager;1"
#define NS_DOWNLOADPLATFORM_CONTRACTID \
"@mozilla.org/toolkit/download-platform;1"
@ -117,9 +114,6 @@
#define NS_AUTOCOMPLETEMDBRESULT_CID \
{ 0x7a6f70b6, 0x2bbd, 0x44b5, { 0x93, 0x4, 0x50, 0x13, 0x52, 0xd4, 0x4a, 0xb5 } }
#define NS_DOWNLOADMANAGER_CID \
{ 0xedb0490e, 0x1dd1, 0x11b2, { 0x83, 0xb8, 0xdb, 0xf8, 0xd8, 0x59, 0x06, 0xa6 } }
#define NS_DOWNLOADPLATFORM_CID \
{ 0x649a14c9, 0xfe5c, 0x48ec, { 0x9c, 0x85, 0x00, 0xca, 0xd9, 0xcc, 0xf3, 0x2e } }

View File

@ -19,7 +19,6 @@
#include "mozilla/AlertNotification.h"
#include "nsAlertsService.h"
#include "nsDownloadManager.h"
#include "DownloadPlatform.h"
#include "rdf.h"
@ -84,8 +83,6 @@ NS_GENERIC_FACTORY_CONSTRUCTOR(nsParentalControlsService)
NS_GENERIC_FACTORY_CONSTRUCTOR(AlertNotification)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsAlertsService)
NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsDownloadManager,
nsDownloadManager::GetSingleton)
NS_GENERIC_FACTORY_CONSTRUCTOR(DownloadPlatform)
NS_GENERIC_FACTORY_CONSTRUCTOR(nsTypeAheadFind)
@ -144,7 +141,6 @@ NS_DEFINE_NAMED_CID(NS_ALERTSSERVICE_CID);
#if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
NS_DEFINE_NAMED_CID(NS_PARENTALCONTROLSSERVICE_CID);
#endif
NS_DEFINE_NAMED_CID(NS_DOWNLOADMANAGER_CID);
NS_DEFINE_NAMED_CID(NS_DOWNLOADPLATFORM_CID);
NS_DEFINE_NAMED_CID(NS_FIND_SERVICE_CID);
NS_DEFINE_NAMED_CID(NS_TYPEAHEADFIND_CID);
@ -180,7 +176,6 @@ static const Module::CIDEntry kToolkitCIDs[] = {
#if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
{ &kNS_PARENTALCONTROLSSERVICE_CID, false, nullptr, nsParentalControlsServiceConstructor },
#endif
{ &kNS_DOWNLOADMANAGER_CID, false, nullptr, nsDownloadManagerConstructor },
{ &kNS_DOWNLOADPLATFORM_CID, false, nullptr, DownloadPlatformConstructor },
{ &kNS_FIND_SERVICE_CID, false, nullptr, nsFindServiceConstructor },
{ &kNS_TYPEAHEADFIND_CID, false, nullptr, nsTypeAheadFindConstructor },
@ -218,7 +213,6 @@ static const Module::ContractIDEntry kToolkitContracts[] = {
#if !defined(MOZ_DISABLE_PARENTAL_CONTROLS)
{ NS_PARENTALCONTROLSSERVICE_CONTRACTID, &kNS_PARENTALCONTROLSSERVICE_CID },
#endif
{ NS_DOWNLOADMANAGER_CONTRACTID, &kNS_DOWNLOADMANAGER_CID },
{ NS_DOWNLOADPLATFORM_CONTRACTID, &kNS_DOWNLOADPLATFORM_CID },
{ NS_FIND_SERVICE_CONTRACTID, &kNS_FIND_SERVICE_CID },
{ NS_TYPEAHEADFIND_CONTRACTID, &kNS_TYPEAHEADFIND_CID },

View File

@ -1,25 +0,0 @@
# -*- 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/.
with Files('*'):
BUG_COMPONENT = ('Toolkit', 'Download Manager')
XPIDL_SOURCES += [
'nsIDownload.idl',
'nsIDownloadManager.idl',
'nsIDownloadManagerUI.idl',
'nsIDownloadProgressListener.idl',
]
XPIDL_MODULE = 'downloads'
UNIFIED_SOURCES += [
'nsDownloadManager.cpp'
]
FINAL_LIBRARY = 'xul'
CXXFLAGS += CONFIG['TK_CFLAGS']

View File

@ -1,406 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 "nsIPrefService.h"
#include "nsIPropertyBag2.h"
#include "nsCExternalHandlerService.h"
#include "nsDirectoryServiceDefs.h"
#include "nsDownloadManager.h"
#include "mozilla/Services.h"
using namespace mozilla;
#define DOWNLOAD_MANAGER_BUNDLE "chrome://mozapps/locale/downloads/downloads.properties"
#define NS_SYSTEMINFO_CONTRACTID "@mozilla.org/system-info;1"
////////////////////////////////////////////////////////////////////////////////
//// nsDownloadManager
NS_IMPL_ISUPPORTS(
nsDownloadManager
, nsIDownloadManager
)
nsDownloadManager *nsDownloadManager::gDownloadManagerService = nullptr;
already_AddRefed<nsDownloadManager>
nsDownloadManager::GetSingleton()
{
if (gDownloadManagerService) {
return do_AddRef(gDownloadManagerService);
}
auto serv = MakeRefPtr<nsDownloadManager>();
// Note: This is cleared in the nsDownloadManager constructor.
gDownloadManagerService = serv.get();
if (NS_SUCCEEDED(serv->Init())) {
return serv.forget();
}
return nullptr;
}
nsDownloadManager::~nsDownloadManager()
{
MOZ_ASSERT(gDownloadManagerService == this);
gDownloadManagerService = nullptr;
}
nsresult
nsDownloadManager::Init()
{
nsresult rv;
nsCOMPtr<nsIStringBundleService> bundleService =
mozilla::services::GetStringBundleService();
if (!bundleService)
return NS_ERROR_FAILURE;
rv = bundleService->CreateBundle(DOWNLOAD_MANAGER_BUNDLE,
getter_AddRefs(mBundle));
NS_ENSURE_SUCCESS(rv, rv);
return NS_OK;
}
////////////////////////////////////////////////////////////////////////////////
//// nsIDownloadManager
NS_IMETHODIMP
nsDownloadManager::GetActivePrivateDownloadCount(int32_t* aResult)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetActiveDownloadCount(int32_t *aResult)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetActiveDownloads(nsISimpleEnumerator **aResult)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetActivePrivateDownloads(nsISimpleEnumerator **aResult)
{
return NS_ERROR_UNEXPECTED;
}
/**
* For platforms where helper apps use the downloads directory (i.e. mobile),
* this should be kept in sync with nsExternalHelperAppService.cpp
*/
NS_IMETHODIMP
nsDownloadManager::GetDefaultDownloadsDirectory(nsIFile **aResult)
{
nsCOMPtr<nsIFile> downloadDir;
nsresult rv;
nsCOMPtr<nsIProperties> dirService =
do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
// OSX 10.4:
// Desktop
// OSX 10.5:
// User download directory
// Vista:
// Downloads
// XP/2K:
// My Documents/Downloads
// Linux:
// XDG user dir spec, with a fallback to Home/Downloads
nsAutoString folderName;
mBundle->GetStringFromName("downloadsFolder", folderName);
#if defined (XP_MACOSX)
rv = dirService->Get(NS_OSX_DEFAULT_DOWNLOAD_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
#elif defined(XP_WIN)
rv = dirService->Get(NS_WIN_DEFAULT_DOWNLOAD_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
// Check the os version
nsCOMPtr<nsIPropertyBag2> infoService =
do_GetService(NS_SYSTEMINFO_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
int32_t version;
NS_NAMED_LITERAL_STRING(osVersion, "version");
rv = infoService->GetPropertyAsInt32(osVersion, &version);
NS_ENSURE_SUCCESS(rv, rv);
if (version < 6) { // XP/2K
// First get "My Documents"
rv = dirService->Get(NS_WIN_PERSONAL_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
rv = downloadDir->Append(folderName);
NS_ENSURE_SUCCESS(rv, rv);
// This could be the first time we are creating the downloads folder in My
// Documents, so make sure it exists.
bool exists;
rv = downloadDir->Exists(&exists);
NS_ENSURE_SUCCESS(rv, rv);
if (!exists) {
rv = downloadDir->Create(nsIFile::DIRECTORY_TYPE, 0755);
NS_ENSURE_SUCCESS(rv, rv);
}
}
#elif defined(XP_UNIX)
#if defined(MOZ_WIDGET_ANDROID)
// Android doesn't have a $HOME directory, and by default we only have
// write access to /data/data/org.mozilla.{$APP} and /sdcard
char* downloadDirPath = getenv("DOWNLOADS_DIRECTORY");
if (downloadDirPath) {
rv = NS_NewNativeLocalFile(nsDependentCString(downloadDirPath),
true, getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
}
else {
rv = NS_ERROR_FAILURE;
}
#else
rv = dirService->Get(NS_UNIX_DEFAULT_DOWNLOAD_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
// fallback to Home/Downloads
if (NS_FAILED(rv)) {
rv = dirService->Get(NS_UNIX_HOME_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
rv = downloadDir->Append(folderName);
NS_ENSURE_SUCCESS(rv, rv);
}
#endif
#else
rv = dirService->Get(NS_OS_HOME_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
rv = downloadDir->Append(folderName);
NS_ENSURE_SUCCESS(rv, rv);
#endif
downloadDir.forget(aResult);
return NS_OK;
}
#define NS_BRANCH_DOWNLOAD "browser.download."
#define NS_PREF_FOLDERLIST "folderList"
#define NS_PREF_DIR "dir"
NS_IMETHODIMP
nsDownloadManager::GetUserDownloadsDirectory(nsIFile **aResult)
{
nsresult rv;
nsCOMPtr<nsIProperties> dirService =
do_GetService(NS_DIRECTORY_SERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPrefService> prefService =
do_GetService(NS_PREFSERVICE_CONTRACTID, &rv);
NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIPrefBranch> prefBranch;
rv = prefService->GetBranch(NS_BRANCH_DOWNLOAD,
getter_AddRefs(prefBranch));
NS_ENSURE_SUCCESS(rv, rv);
int32_t val;
rv = prefBranch->GetIntPref(NS_PREF_FOLDERLIST,
&val);
NS_ENSURE_SUCCESS(rv, rv);
switch(val) {
case 0: // Desktop
{
nsCOMPtr<nsIFile> downloadDir;
rv = dirService->Get(NS_OS_DESKTOP_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(downloadDir));
NS_ENSURE_SUCCESS(rv, rv);
downloadDir.forget(aResult);
return NS_OK;
}
break;
case 1: // Downloads
return GetDefaultDownloadsDirectory(aResult);
case 2: // Custom
{
nsCOMPtr<nsIFile> customDirectory;
prefBranch->GetComplexValue(NS_PREF_DIR,
NS_GET_IID(nsIFile),
getter_AddRefs(customDirectory));
if (customDirectory) {
bool exists = false;
(void)customDirectory->Exists(&exists);
if (!exists) {
rv = customDirectory->Create(nsIFile::DIRECTORY_TYPE, 0755);
if (NS_SUCCEEDED(rv)) {
customDirectory.forget(aResult);
return NS_OK;
}
// Create failed, so it still doesn't exist. Fall out and get the
// default downloads directory.
}
bool writable = false;
bool directory = false;
(void)customDirectory->IsWritable(&writable);
(void)customDirectory->IsDirectory(&directory);
if (exists && writable && directory) {
customDirectory.forget(aResult);
return NS_OK;
}
}
rv = GetDefaultDownloadsDirectory(aResult);
if (NS_SUCCEEDED(rv)) {
(void)prefBranch->SetComplexValue(NS_PREF_DIR,
NS_GET_IID(nsIFile),
*aResult);
}
return rv;
}
break;
}
return NS_ERROR_INVALID_ARG;
}
NS_IMETHODIMP
nsDownloadManager::AddDownload(int16_t aDownloadType,
nsIURI *aSource,
nsIURI *aTarget,
const nsAString& aDisplayName,
nsIMIMEInfo *aMIMEInfo,
PRTime aStartTime,
nsIFile *aTempFile,
nsICancelable *aCancelable,
bool aIsPrivate,
nsIDownload **aDownload)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetDownload(uint32_t aID, nsIDownload **aDownloadItem)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetDownloadByGUID(const nsACString& aGUID,
nsIDownloadManagerResult* aCallback)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::CancelDownload(uint32_t aID)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::RetryDownload(uint32_t aID)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::RemoveDownload(uint32_t aID)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::RemoveDownloadsByTimeframe(int64_t aStartTime,
int64_t aEndTime)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::CleanUp()
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::CleanUpPrivate()
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetCanCleanUp(bool *aResult)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetCanCleanUpPrivate(bool *aResult)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::PauseDownload(uint32_t aID)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::ResumeDownload(uint32_t aID)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetDBConnection(mozIStorageConnection **aDBConn)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::GetPrivateDBConnection(mozIStorageConnection **aDBConn)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::AddListener(nsIDownloadProgressListener *aListener)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::AddPrivacyAwareListener(nsIDownloadProgressListener *aListener)
{
return NS_ERROR_UNEXPECTED;
}
NS_IMETHODIMP
nsDownloadManager::RemoveListener(nsIDownloadProgressListener *aListener)
{
return NS_ERROR_UNEXPECTED;
}

View File

@ -1,39 +0,0 @@
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
#ifndef downloadmanager___h___
#define downloadmanager___h___
#include "nsIDownloadManager.h"
#include "nsIDownloadProgressListener.h"
#include "nsIFile.h"
#include "nsIStringBundle.h"
#include "nsISupportsPrimitives.h"
#include "nsString.h"
class nsDownloadManager final : public nsIDownloadManager
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIDOWNLOADMANAGER
nsresult Init();
static already_AddRefed<nsDownloadManager> GetSingleton();
nsDownloadManager()
{
}
protected:
virtual ~nsDownloadManager();
private:
nsCOMPtr<nsIStringBundle> mBundle;
static nsDownloadManager *gDownloadManagerService;
};
#endif

View File

@ -1,175 +0,0 @@
/* -*- 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 "nsITransfer.idl"
interface nsIURI;
interface nsIFile;
interface nsIObserver;
interface nsICancelable;
interface nsIWebProgressListener;
interface nsIMIMEInfo;
/**
* Represents a download object.
*
* @note This object is no longer updated once it enters a completed state.
* Completed states are the following:
* nsIDownloadManager::DOWNLOAD_FINISHED
* nsIDownloadManager::DOWNLOAD_FAILED
* nsIDownloadManager::DOWNLOAD_CANCELED
* nsIDownloadManager::DOWNLOAD_BLOCKED_PARENTAL
* nsIDownloadManager::DOWNLOAD_DIRTY
* nsIDownloadManager::DOWNLOAD_BLOCKED_POLICY
*/
[scriptable, uuid(2258f465-656e-4566-87cb-f791dbaf0322)]
interface nsIDownload : nsITransfer {
/**
* The target of a download is always a file on the local file system.
*/
readonly attribute nsIFile targetFile;
/**
* The percentage of transfer completed.
* If the file size is unknown it'll be -1 here.
*/
readonly attribute long percentComplete;
/**
* The amount of bytes downloaded so far.
*/
readonly attribute long long amountTransferred;
/**
* The size of file in bytes.
* Unknown size is represented by -1.
*/
readonly attribute long long size;
/**
* The source of the transfer.
*/
readonly attribute nsIURI source;
/**
* The target of the transfer.
*/
readonly attribute nsIURI target;
/**
* Object that can be used to cancel the download.
* Will be null after the download is finished.
*/
readonly attribute nsICancelable cancelable;
/**
* The user-readable description of the transfer.
*/
readonly attribute AString displayName;
/**
* The time a transfer was started.
*/
readonly attribute long long startTime;
/**
* The speed of the transfer in bytes/sec.
*/
readonly attribute double speed;
/**
* Optional. If set, it will contain the target's relevant MIME information.
* This includes its MIME Type, helper app, and whether that helper should be
* executed.
*/
readonly attribute nsIMIMEInfo MIMEInfo;
/**
* The id of the download that is stored in the database - not globally unique.
* For example, a private download and a public one might have identical ids.
* Can only be safely used for direct database manipulation in the database that
* contains this download. Use the guid property instead for safe, database-agnostic
* searching and manipulation.
*
* @deprecated
*/
readonly attribute unsigned long id;
/**
* The guid of the download that is stored in the database.
* Has the form of twelve alphanumeric characters.
*/
readonly attribute ACString guid;
/**
* The state of the download.
* @see nsIDownloadManager and nsIXPInstallManagerUI
*/
readonly attribute short state;
/**
* The referrer uri of the download. This is only valid for HTTP downloads,
* and can be null.
*/
readonly attribute nsIURI referrer;
/**
* Indicates if the download can be resumed after being paused or not. This
* is only the case if the download is over HTTP/1.1 or FTP and if the
* server supports it.
*/
readonly attribute boolean resumable;
/**
* Indicates if the download was initiated from a context marked as private,
* controlling whether it should be stored in a permanent manner or not.
*/
readonly attribute boolean isPrivate;
/**
* Cancel this download if it's currently in progress.
*/
void cancel();
/**
* Pause this download if it is in progress.
*
* @throws NS_ERROR_UNEXPECTED if it cannot be paused.
*/
void pause();
/**
* Resume this download if it is paused.
*
* @throws NS_ERROR_UNEXPECTED if it cannot be resumed or is not paused.
*/
void resume();
/**
* Instruct the download manager to remove this download. Whereas
* cancel simply cancels the transfer, but retains information about it,
* remove removes all knowledge of it.
*
* @see nsIDownloadManager.removeDownload for more detail
* @throws NS_ERROR_FAILURE if the download is active.
*/
void remove();
/**
* Instruct the download manager to retry this failed download
* @throws NS_ERROR_NOT_AVAILABLE if the download is not known.
* @throws NS_ERROR_FAILURE if the download is not in the following states:
* nsIDownloadManager::DOWNLOAD_CANCELED
* nsIDownloadManager::DOWNLOAD_FAILED
*/
void retry();
};
%{C++
// {b02be33b-d47c-4bd3-afd9-402a942426b0}
#define NS_DOWNLOAD_CID \
{ 0xb02be33b, 0xd47c, 0x4bd3, { 0xaf, 0xd9, 0x40, 0x2a, 0x94, 0x24, 0x26, 0xb0 } }
%}

View File

@ -1,358 +0,0 @@
/* -*- 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/. */
// Keeps track of ongoing downloads, in the form of nsIDownload's.
#include "nsISupports.idl"
interface nsIURI;
interface nsIFile;
interface nsIDownload;
interface nsICancelable;
interface nsIMIMEInfo;
interface nsIDownloadProgressListener;
interface nsISimpleEnumerator;
interface mozIStorageConnection;
[scriptable, function, uuid(0c07ffeb-791b-49f3-ae38-2c331fd55a52)]
interface nsIDownloadManagerResult : nsISupports {
/**
* Process an asynchronous result from getDownloadByGUID.
*
* @param aStatus The result code of the operation:
* * NS_OK: an item was found. No other success values are returned.
* * NS_ERROR_NOT_AVAILABLE: no such item was found.
* * Other error values are possible, but less well-defined.
*/
void handleResult(in nsresult aStatus, in nsIDownload aDownload);
};
[scriptable, uuid(b29aac15-7ec4-4ab3-a53b-08f78aed3b34)]
interface nsIDownloadManager : nsISupports {
/**
* Download type for generic file download.
*/
const short DOWNLOAD_TYPE_DOWNLOAD = 0;
/**
* Download state for uninitialized download object.
*/
const short DOWNLOAD_NOTSTARTED = -1;
/**
* Download is currently transferring data.
*/
const short DOWNLOAD_DOWNLOADING = 0;
/**
* Download completed including any processing of the target
* file. (completed)
*/
const short DOWNLOAD_FINISHED = 1;
/**
* Transfer failed due to error. (completed)
*/
const short DOWNLOAD_FAILED = 2;
/**
* Download was canceled by the user. (completed)
*/
const short DOWNLOAD_CANCELED = 3;
/**
* Transfer was paused by the user.
*/
const short DOWNLOAD_PAUSED = 4;
/**
* Download is active but data has not yet been received.
*/
const short DOWNLOAD_QUEUED = 5;
/**
* Transfer request was blocked by parental controls proxies. (completed)
*/
const short DOWNLOAD_BLOCKED_PARENTAL = 6;
/**
* Transferred download is being scanned by virus scanners.
*/
const short DOWNLOAD_SCANNING = 7;
/**
* A virus was detected in the download. The target will most likely
* no longer exist. (completed)
*/
const short DOWNLOAD_DIRTY = 8;
/**
* Win specific: Request was blocked by zone policy settings.
* (see bug #416683) (completed)
*/
const short DOWNLOAD_BLOCKED_POLICY = 9;
/**
* Creates an nsIDownload and adds it to be managed by the download manager.
*
* @param aSource The source URI of the transfer. Must not be null.
*
* @param aTarget The target URI of the transfer. Must not be null.
*
* @param aDisplayName The user-readable description of the transfer.
* Can be empty.
*
* @param aMIMEInfo The MIME info associated with the target,
* including MIME type and helper app when appropriate.
* This parameter is optional.
*
* @param startTime Time when the download started
*
* @param aTempFile The location of a temporary file; i.e. a file in which
* the received data will be stored, but which is not
* equal to the target file. (will be moved to the real
* target by the DownloadManager, when the download is
* finished). This will be null for all callers except for
* nsExternalHelperAppHandler. Addons should generally pass
* null for aTempFile. This will be moved to the real target
* by the download manager when the download is finished,
* and the action indicated by aMIMEInfo will be executed.
*
* @param aCancelable An object that can be used to abort the download.
* Must not be null.
*
* @param aIsPrivate Used to determine the privacy status of the new download.
* If true, the download is stored in a manner that leaves
* no permanent trace outside of the current private session.
*
* @return The newly created download item with the passed-in properties.
*
* @note This does not actually start a download. If you want to add and
* start a download, you need to create an nsIWebBrowserPersist, pass it
* as the aCancelable object, call this method, set the progressListener
* as the returned download object, then call saveURI.
*/
nsIDownload addDownload(in short aDownloadType,
in nsIURI aSource,
in nsIURI aTarget,
in AString aDisplayName,
in nsIMIMEInfo aMIMEInfo,
in PRTime aStartTime,
in nsIFile aTempFile,
in nsICancelable aCancelable,
in boolean aIsPrivate);
/**
* Retrieves a download managed by the download manager. This can be one that
* is in progress, or one that has completed in the past and is stored in the
* database.
*
* @param aID The unique ID of the download.
* @return The download with the specified ID.
* @throws NS_ERROR_NOT_AVAILABLE if the download is not in the database.
*/
nsIDownload getDownload(in unsigned long aID);
/**
* Retrieves a download managed by the download manager. This can be one that
* is in progress, or one that has completed in the past and is stored in the
* database. The result of this method is returned via an asynchronous callback,
* the parameter of which will be an nsIDownload object, or null if none exists
* with the provided GUID.
*
* @param aGUID The unique GUID of the download.
* @param aCallback The callback to invoke with the result of the search.
*/
void getDownloadByGUID(in ACString aGUID, in nsIDownloadManagerResult aCallback);
/**
* Cancels the download with the specified ID if it's currently in-progress.
* This calls cancel(NS_BINDING_ABORTED) on the nsICancelable provided by the
* download.
*
* @param aID The unique ID of the download.
* @throws NS_ERROR_FAILURE if the download is not in-progress.
*/
void cancelDownload(in unsigned long aID);
/**
* Removes the download with the specified id if it's not currently
* in-progress. Whereas cancelDownload simply cancels the transfer, but
* retains information about it, removeDownload removes all knowledge of it.
*
* Also notifies observers of the "download-manager-remove-download-guid"
* topic with the download guid as the subject to allow any DM consumers to
* react to the removal.
*
* Also may notify observers of the "download-manager-remove-download" topic
* with the download id as the subject, if the download removed is public
* or if global private browsing mode is in use. This notification is deprecated;
* the guid notification should be relied upon instead.
*
* @param aID The unique ID of the download.
* @throws NS_ERROR_FAILURE if the download is active.
*/
void removeDownload(in unsigned long aID);
/**
* Removes all inactive downloads that were started inclusively within the
* specified time frame.
*
* @param aBeginTime
* The start time to remove downloads by in microseconds.
* @param aEndTime
* The end time to remove downloads by in microseconds.
*/
void removeDownloadsByTimeframe(in long long aBeginTime,
in long long aEndTime);
/**
* Pause the specified download.
*
* @param aID The unique ID of the download.
* @throws NS_ERROR_FAILURE if the download is not in-progress.
*/
void pauseDownload(in unsigned long aID);
/**
* Resume the specified download.
*
* @param aID The unique ID of the download.
* @throws NS_ERROR_FAILURE if the download is not in-progress.
*/
void resumeDownload(in unsigned long aID);
/**
* Retries a failed download.
*
* @param aID The unique ID of the download.
* @throws NS_ERROR_NOT_AVAILALE if the download id is not known.
* @throws NS_ERROR_FAILURE if the download is not in the following states:
* nsIDownloadManager::DOWNLOAD_CANCELED
* nsIDownloadManager::DOWNLOAD_FAILED
*/
void retryDownload(in unsigned long aID);
/**
* The database connection to the downloads database.
*/
readonly attribute mozIStorageConnection DBConnection;
readonly attribute mozIStorageConnection privateDBConnection;
/**
* Whether or not there are downloads that can be cleaned up (removed)
* i.e. downloads that have completed, have failed or have been canceled.
* In global private browsing mode, this reports the status of the relevant
* private or public downloads. In per-window mode, it only reports for
* public ones.
*/
readonly attribute boolean canCleanUp;
/**
* Whether or not there are private downloads that can be cleaned up (removed)
* i.e. downloads that have completed, have failed or have been canceled.
*/
readonly attribute boolean canCleanUpPrivate;
/**
* Removes completed, failed, and canceled downloads from the list.
* In global private browsing mode, this operates on the relevant
* private or public downloads. In per-window mode, it only operates
* on public ones.
*
* Also notifies observers of the "download-manager-remove-download-gui"
* and "download-manager-remove-download" topics with a null subject to
* allow any DM consumers to react to the removals.
*/
void cleanUp();
/**
* Removes completed, failed, and canceled downloads from the list
* of private downloads.
*
* Also notifies observers of the "download-manager-remove-download-gui"
* and "download-manager-remove-download" topics with a null subject to
* allow any DM consumers to react to the removals.
*/
void cleanUpPrivate();
/**
* The number of files currently being downloaded.
*
* In global private browsing mode, this reports the status of the relevant
* private or public downloads. In per-window mode, it only reports public
* ones.
*/
readonly attribute long activeDownloadCount;
/**
* The number of private files currently being downloaded.
*/
readonly attribute long activePrivateDownloadCount;
/**
* An enumeration of active nsIDownloads
*
* In global private browsing mode, this reports the status of the relevant
* private or public downloads. In per-window mode, it only reports public
* ones.
*/
readonly attribute nsISimpleEnumerator activeDownloads;
/**
* An enumeration of active private nsIDownloads
*/
readonly attribute nsISimpleEnumerator activePrivateDownloads;
/**
* Adds a listener to the download manager. It is expected that this
* listener will only access downloads via their deprecated integer id attribute,
* and when global private browsing compatibility mode is disabled, this listener
* will receive no notifications for downloads marked private.
*/
void addListener(in nsIDownloadProgressListener aListener);
/**
* Adds a listener to the download manager. This listener must be able to
* understand and use the guid attribute of downloads for all interactions
* with the download manager.
*/
void addPrivacyAwareListener(in nsIDownloadProgressListener aListener);
/**
* Removes a listener from the download manager.
*/
void removeListener(in nsIDownloadProgressListener aListener);
/**
* Returns the platform default downloads directory.
*/
readonly attribute nsIFile defaultDownloadsDirectory;
/**
* Returns the user configured downloads directory.
* The path is dependent on two user configurable prefs
* set in preferences:
*
* browser.download.folderList
* Indicates the location users wish to save downloaded
* files too.
* Values:
* 0 - The desktop is the default download location.
* 1 - The system's downloads folder is the default download location.
* 2 - The default download location is elsewhere as specified in
* browser.download.dir. If invalid, userDownloadsDirectory
* will fallback on defaultDownloadsDirectory.
*
* browser.download.dir -
* A local path the user may have selected at some point
* where downloaded files are saved. The use of which is
* enabled when folderList equals 2.
*/
readonly attribute nsIFile userDownloadsDirectory;
};

View File

@ -1,55 +0,0 @@
/* 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 nsIInterfaceRequestor;
interface nsIDownload;
[scriptable, uuid(0c76d4cf-0b06-4c1a-9bea-520c7bbdba99)]
interface nsIDownloadManagerUI : nsISupports {
/**
* The reason that should be passed when the user requests to show the
* download manager's UI.
*/
const short REASON_USER_INTERACTED = 0;
/**
* The reason that should be passed to the show method when we are displaying
* the UI because a new download is being added to it.
*/
const short REASON_NEW_DOWNLOAD = 1;
/**
* Shows the Download Manager's UI to the user.
*
* @param [optional] aWindowContext
* The parent window context to show the UI.
* @param [optional] aDownload
* The download to be preselected upon opening.
* @param [optional] aReason
* The reason to show the download manager's UI. This defaults to
* REASON_USER_INTERACTED, and should be one of the previously listed
* constants.
* @param [optional] aUsePrivateUI
* Pass true as this argument to hint to the implementation that it
* should only display private downloads in the UI, if possible.
*/
void show([optional] in nsIInterfaceRequestor aWindowContext,
[optional] in nsIDownload aDownload,
[optional] in short aReason,
[optional] in boolean aUsePrivateUI);
/**
* Indicates if the UI is visible or not.
*/
readonly attribute boolean visible;
/**
* Brings attention to the UI if it is already visible
*
* @throws NS_ERROR_UNEXPECTED if the UI is not visible.
*/
void getAttention();
};

View File

@ -1,60 +0,0 @@
/* -*- 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/. */
/* A minimally extended progress listener used by download manager
* to update its default UI. This is implemented in nsDownloadProgressListener.js.
* See nsIWebProgressListener for documentation, and use its constants. This isn't
* too pretty, but the alternative is having this extend nsIWebProgressListener and
* adding an |item| attribute, which would mean a separate nsIDownloadProgressListener
* for every nsIDownloadItem, which is a waste...
*/
#include "nsISupports.idl"
interface nsIWebProgress;
interface nsIRequest;
interface nsIURI;
interface nsIDownload;
interface nsIDOMDocument;
[scriptable, uuid(7acb07ea-cac2-4c15-a3ad-23aaa789ed51)]
interface nsIDownloadProgressListener : nsISupports {
/**
* document
* The document of the download manager frontend.
*/
attribute nsIDOMDocument document;
/**
* Dispatched whenever the state of the download changes.
*
* @param aState The previous download sate.
* @param aDownload The download object.
* @see nsIDownloadManager for download states.
*/
void onDownloadStateChange(in short aState, in nsIDownload aDownload);
void onStateChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in unsigned long aStateFlags,
in nsresult aStatus,
in nsIDownload aDownload);
void onProgressChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in long long aCurSelfProgress,
in long long aMaxSelfProgress,
in long long aCurTotalProgress,
in long long aMaxTotalProgress,
in nsIDownload aDownload);
void onSecurityChange(in nsIWebProgress aWebProgress,
in nsIRequest aRequest,
in unsigned long aState,
in nsIDownload aDownload);
};

View File

@ -29,7 +29,6 @@ DIRS += [
'crashes',
'crashmonitor',
'diskspacewatcher',
'downloads',
'enterprisepolicies',
'extensions',
'filewatcher',

View File

@ -76,7 +76,6 @@ var initTable = {
cpmm: ["@mozilla.org/childprocessmessagemanager;1", "nsIMessageSender"],
console: ["@mozilla.org/consoleservice;1", "nsIConsoleService"],
cookies: ["@mozilla.org/cookiemanager;1", "nsICookieManager"],
downloads: ["@mozilla.org/download-manager;1", "nsIDownloadManager"],
droppedLinkHandler: ["@mozilla.org/content/dropped-link-handler;1", "nsIDroppedLinkHandler"],
els: ["@mozilla.org/eventlistenerservice;1", "nsIEventListenerService"],
eTLD: ["@mozilla.org/network/effective-tld-service;1", "nsIEffectiveTLDService"],

View File

@ -33,7 +33,6 @@ function run_test() {
checkService("dirsvc", Ci.nsIProperties);
checkService("DOMRequest", Ci.nsIDOMRequestService);
checkService("domStorageManager", Ci.nsIDOMStorageManager);
checkService("downloads", Ci.nsIDownloadManager);
checkService("droppedLinkHandler", Ci.nsIDroppedLinkHandler);
checkService("eTLD", Ci.nsIEffectiveTLDService);
checkService("focus", Ci.nsIFocusManager);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -4,7 +4,6 @@
toolkit.jar:
#include ../../shared/mozapps.inc.mn
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
* skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
* skin/classic/mozapps/extensions/newaddon.css (extensions/newaddon.css)
skin/classic/mozapps/extensions/heart.png (extensions/heart.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -5,7 +5,6 @@
toolkit.jar:
#include ../../shared/mozapps.inc.mn
skin/classic/mozapps/downloads/buttons.png (downloads/buttons.png)
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
skin/classic/mozapps/downloads/unknownContentType.css (downloads/unknownContentType.css)
skin/classic/mozapps/extensions/discover-logo.png (extensions/discover-logo.png)
skin/classic/mozapps/extensions/rating-won.png (extensions/rating-won.png)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -4,7 +4,6 @@
toolkit.jar:
#include ../../shared/mozapps.inc.mn
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
* skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
skin/classic/mozapps/extensions/heart.png (extensions/heart.png)
* skin/classic/mozapps/extensions/newaddon.css (extensions/newaddon.css)