mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 05:41:12 +00:00
Merge m-i to m-c, a=merge
This commit is contained in:
commit
02a56df647
@ -7,6 +7,7 @@ support-files =
|
||||
invalid.json
|
||||
[browser_sdk_loader_sdk_modules.js]
|
||||
[browser_sdk_loader_sdk_gui_modules.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_sdk_loader_jsm_modules.js]
|
||||
[browser_sdk_loader_js_modules.js]
|
||||
[browser_sdk_loader_json.js]
|
||||
|
@ -256,6 +256,7 @@ skip-if = os == "mac" # mac: Intermittent failures, bug 925225
|
||||
skip-if = os == "mac" # Bug 1102331 - does focus things on the content window which break in e10s mode (still causes orange on Mac 10.10)
|
||||
[browser_bug710878.js]
|
||||
[browser_bug719271.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_bug724239.js]
|
||||
[browser_bug734076.js]
|
||||
[browser_bug735471.js]
|
||||
@ -406,6 +407,7 @@ skip-if = os == "linux" # Bug 1329991 - test fails intermittently on Linux build
|
||||
skip-if = os == 'linux' # Bug 1304272
|
||||
[browser_tab_close_dependent_window.js]
|
||||
[browser_tabDrop.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_tabReorder.js]
|
||||
[browser_tab_detach_restore.js]
|
||||
[browser_tab_drag_drop_perwindow.js]
|
||||
@ -416,8 +418,9 @@ skip-if = buildapp == 'mulet' || (e10s && (debug || asan)) # Bug 1312436
|
||||
skip-if = os == "linux" || os == "mac" # No tabs in titlebar on linux
|
||||
# Disabled on OS X because of bug 967917
|
||||
[browser_tabfocus.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_tabkeynavigation.js]
|
||||
skip-if = (os == "mac" && !e10s) # Bug 1237713 - OSX eats keypresses for some reason
|
||||
skip-if = true || (os == "mac" && !e10s) # Bug 1315042, Bug 1237713 - OSX eats keypresses for some reason
|
||||
[browser_tabopen_reflows.js]
|
||||
[browser_tabs_close_beforeunload.js]
|
||||
support-files =
|
||||
|
@ -56,6 +56,7 @@ skip-if = !crashreporter
|
||||
[browser_CTP_iframe.js]
|
||||
[browser_CTP_multi_allow.js]
|
||||
[browser_CTP_nonplugins.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_CTP_notificationBar.js]
|
||||
[browser_CTP_outsideScrollArea.js]
|
||||
[browser_CTP_remove_navigate.js]
|
||||
|
@ -6,7 +6,9 @@ support-files =
|
||||
head.js
|
||||
|
||||
[browser_referrer_middle_click.js]
|
||||
skip-if = true # Bug 1315042
|
||||
[browser_referrer_middle_click_in_container.js]
|
||||
skip-if = true # Bug 1315042
|
||||
[browser_referrer_open_link_in_private.js]
|
||||
skip-if = os == 'linux' # Bug 1145199
|
||||
[browser_referrer_open_link_in_tab.js]
|
||||
|
@ -8,6 +8,6 @@ skip-if = !e10s || !crashreporter
|
||||
[browser_showForm.js]
|
||||
skip-if = !e10s || !crashreporter
|
||||
[browser_withoutDump.js]
|
||||
skip-if = !e10s
|
||||
skip-if = !e10s || !crashreporter
|
||||
[browser_autoSubmitRequest.js]
|
||||
skip-if = !e10s || !crashreporter
|
||||
|
@ -29,6 +29,7 @@ support-files =
|
||||
[browser_bug556061.js]
|
||||
subsuite = clipboard
|
||||
[browser_bug562649.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_bug623155.js]
|
||||
support-files =
|
||||
redirect_bug623155.sjs
|
||||
|
@ -12,6 +12,7 @@ skip-if = (os == "linux" && debug) # linux: bug 976544
|
||||
[browser_devices_get_user_media_screen.js]
|
||||
skip-if = (e10s && debug) || (os == "linux" && !debug) # bug 1320754 for e10s debug, and bug 1320994 for linux opt
|
||||
[browser_devices_get_user_media_tear_off_tab.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_devices_get_user_media_unprompted_access.js]
|
||||
[browser_devices_get_user_media_unprompted_access_in_frame.js]
|
||||
[browser_devices_get_user_media_unprompted_access_tear_off_tab.js]
|
||||
|
@ -13,6 +13,7 @@ support-files =
|
||||
[browser_forgetaboutsite.js]
|
||||
[browser_forgetAPI_cookie_getCookiesWithOriginAttributes.js]
|
||||
[browser_forgetAPI_EME_forgetThisSite.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_forgetAPI_quota_clearStoragesForPrincipal.js]
|
||||
[browser_newtabButton.js]
|
||||
[browser_usercontext.js]
|
||||
|
@ -50,10 +50,10 @@ add_task(function*() {
|
||||
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
||||
}
|
||||
|
||||
yield checkPrefSwitch(true, true);
|
||||
yield checkPrefSwitch(false, true);
|
||||
yield checkPrefSwitch(true, false);
|
||||
yield checkPrefSwitch(false, false);
|
||||
yield* checkPrefSwitch(true, true);
|
||||
yield* checkPrefSwitch(false, true);
|
||||
yield* checkPrefSwitch(true, false);
|
||||
yield* checkPrefSwitch(false, false);
|
||||
});
|
||||
|
||||
// test the download protection preference
|
||||
@ -84,8 +84,8 @@ add_task(function*() {
|
||||
yield BrowserTestUtils.removeTab(gBrowser.selectedTab);
|
||||
}
|
||||
|
||||
yield checkPrefSwitch(true);
|
||||
yield checkPrefSwitch(false);
|
||||
yield* checkPrefSwitch(true);
|
||||
yield* checkPrefSwitch(false);
|
||||
});
|
||||
|
||||
// test the unwanted/uncommon software warning preference
|
||||
|
@ -26,6 +26,7 @@ tags = trackingprotection
|
||||
[browser_privatebrowsing_cache.js]
|
||||
[browser_privatebrowsing_certexceptionsui.js]
|
||||
[browser_privatebrowsing_concurrent.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_privatebrowsing_context_and_chromeFlags.js]
|
||||
[browser_privatebrowsing_crh.js]
|
||||
[browser_privatebrowsing_downloadLastDir.js]
|
||||
|
@ -42,9 +42,11 @@ add_task(function* () {
|
||||
|
||||
let targetElement = name.parentNode.parentNode;
|
||||
let status = targetElement.querySelector(".target-status");
|
||||
is(status.textContent, "Registering", "Service worker is currently registering");
|
||||
// We might miss the registering state in some setup...
|
||||
if (status.textContent == "Registering") {
|
||||
yield waitForMutation(serviceWorkersElement, { childList: true, subtree: true });
|
||||
}
|
||||
|
||||
yield waitForMutation(serviceWorkersElement, { childList: true, subtree: true });
|
||||
is(status.textContent, "Running", "Service worker is currently running");
|
||||
|
||||
yield waitForMutation(serviceWorkersElement, { attributes: true, subtree: true });
|
||||
|
@ -1,6 +1,7 @@
|
||||
add_task(function* () {
|
||||
yield SpecialPowers.pushPrefEnv({
|
||||
set: [["browser.groupedhistory.enabled", true]]
|
||||
set: [["browser.groupedhistory.enabled", true],
|
||||
["dom.ipc.processCount", 1]]
|
||||
});
|
||||
|
||||
// Wait for a process change and then fulfil the promise.
|
||||
|
@ -20,6 +20,7 @@ tags = mcb
|
||||
[browser_bug1011748.js]
|
||||
[browser_bug1058164.js]
|
||||
[browser_messagemanager_loadprocessscript.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_messagemanager_targetframeloader.js]
|
||||
[browser_messagemanager_unload.js]
|
||||
[browser_pagehide_on_tab_close.js]
|
||||
|
@ -71,6 +71,7 @@ disabled = disabled for bug 1266035 (bug 1310706 for re-enabling)
|
||||
[test_browserElement_oop_OpenTab.html]
|
||||
disabled = Disabling some OOP tests for WebIDL scope changes (bug 1310706 for re-enabling)
|
||||
[test_browserElement_oop_PrivateBrowsing.html]
|
||||
skip-if = true # Bug 1315042
|
||||
[test_browserElement_oop_PromptCheck.html]
|
||||
[test_browserElement_oop_PromptConfirm.html]
|
||||
[test_browserElement_oop_PurgeHistory.html]
|
||||
|
1
dom/cache/test/mochitest/browser.ini
vendored
1
dom/cache/test/mochitest/browser.ini
vendored
@ -1 +1,2 @@
|
||||
[browser_cache_pb_window.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
|
@ -36,7 +36,7 @@ skip-if = e10s
|
||||
[browser_focus_steal_from_chrome_during_mousedown.js]
|
||||
[browser_frame_elements.js]
|
||||
[browser_largeAllocation.js]
|
||||
skip-if = !e10s # Large-Allocation requires e10s
|
||||
skip-if = true || !e10s # Large-Allocation requires e10s, turned off for e10s-multi Bug 1315042
|
||||
[browser_localStorage_privatestorageevent.js]
|
||||
[browser_test__content.js]
|
||||
[browser_test_new_window_from_content.js]
|
||||
@ -52,4 +52,4 @@ support-files =
|
||||
support-files =
|
||||
prerender.html
|
||||
prerender_target.html
|
||||
skip-if = !e10s # Prerendering requires e10s
|
||||
skip-if = true || !e10s # Prerendering requires e10s, turned off for e10s-multi Bug 1315042
|
||||
|
@ -253,8 +253,6 @@ struct InternalBarrierMethods<T*>
|
||||
{
|
||||
static bool isMarkable(T* v) { return v != nullptr; }
|
||||
|
||||
static bool isMarkableTaggedPointer(T* v) { return !IsNullTaggedPointer(v); }
|
||||
|
||||
static void preBarrier(T* v) { T::writeBarrierPre(v); }
|
||||
|
||||
static void postBarrier(T** vp, T* prev, T* next) { T::writeBarrierPost(vp, prev, next); }
|
||||
@ -274,7 +272,6 @@ template <>
|
||||
struct InternalBarrierMethods<Value>
|
||||
{
|
||||
static bool isMarkable(const Value& v) { return v.isGCThing(); }
|
||||
static bool isMarkableTaggedPointer(const Value& v) { return isMarkable(v); }
|
||||
|
||||
static void preBarrier(const Value& v) {
|
||||
DispatchTyped(PreBarrierFunctor<Value>(), v);
|
||||
@ -310,8 +307,6 @@ template <>
|
||||
struct InternalBarrierMethods<jsid>
|
||||
{
|
||||
static bool isMarkable(jsid id) { return JSID_IS_GCTHING(id); }
|
||||
static bool isMarkableTaggedPointer(jsid id) { return isMarkable(id); }
|
||||
|
||||
static void preBarrier(jsid id) { DispatchTyped(PreBarrierFunctor<jsid>(), id); }
|
||||
static void postBarrier(jsid* idp, jsid prev, jsid next) {}
|
||||
};
|
||||
|
@ -300,10 +300,6 @@ class TenuredCell : public Cell
|
||||
MOZ_ALWAYS_INLINE void unmark(uint32_t color) const;
|
||||
MOZ_ALWAYS_INLINE void copyMarkBitsFrom(const TenuredCell* src);
|
||||
|
||||
// Note: this is in TenuredCell because JSObject subclasses are sometimes
|
||||
// used tagged.
|
||||
static MOZ_ALWAYS_INLINE bool isNullLike(const Cell* thing) { return !thing; }
|
||||
|
||||
// Access to the arena.
|
||||
inline Arena* arena() const;
|
||||
inline AllocKind getAllocKind() const;
|
||||
@ -1285,7 +1281,7 @@ TenuredCell::isInsideZone(JS::Zone* zone) const
|
||||
TenuredCell::readBarrier(TenuredCell* thing)
|
||||
{
|
||||
MOZ_ASSERT(!CurrentThreadIsIonCompiling());
|
||||
MOZ_ASSERT(!isNullLike(thing));
|
||||
MOZ_ASSERT(thing);
|
||||
|
||||
// It would be good if barriers were never triggered during collection, but
|
||||
// at the moment this can happen e.g. when rekeying tables containing
|
||||
@ -1318,7 +1314,6 @@ AssertSafeToSkipBarrier(TenuredCell* thing);
|
||||
TenuredCell::writeBarrierPre(TenuredCell* thing)
|
||||
{
|
||||
MOZ_ASSERT(!CurrentThreadIsIonCompiling());
|
||||
MOZ_ASSERT_IF(thing, !isNullLike(thing));
|
||||
if (!thing)
|
||||
return;
|
||||
|
||||
|
@ -502,7 +502,7 @@ void
|
||||
js::TraceNullableRoot(JSTracer* trc, T* thingp, const char* name)
|
||||
{
|
||||
AssertRootMarkingPhase(trc);
|
||||
if (InternalBarrierMethods<T>::isMarkableTaggedPointer(*thingp))
|
||||
if (InternalBarrierMethods<T>::isMarkable(*thingp))
|
||||
DispatchToTracer(trc, ConvertToBase(thingp), name);
|
||||
}
|
||||
|
||||
|
@ -414,14 +414,6 @@ ToMarkable(Cell* cell)
|
||||
return cell;
|
||||
}
|
||||
|
||||
// Return true if the pointer is nullptr, or if it is a tagged pointer to
|
||||
// nullptr.
|
||||
MOZ_ALWAYS_INLINE bool
|
||||
IsNullTaggedPointer(void* p)
|
||||
{
|
||||
return uintptr_t(p) <= LargestTaggedNullCellPointer;
|
||||
}
|
||||
|
||||
// Wrap a GC thing pointer into a new Value or jsid. The type system enforces
|
||||
// that the thing pointer is a wrappable type.
|
||||
template <typename S, typename T>
|
||||
|
@ -305,7 +305,6 @@ class JSObject : public js::gc::Cell
|
||||
|
||||
static const JS::TraceKind TraceKind = JS::TraceKind::Object;
|
||||
static const size_t MaxTagBits = 3;
|
||||
static bool isNullLike(const JSObject* obj) { return uintptr_t(obj) < (1 << MaxTagBits); }
|
||||
|
||||
MOZ_ALWAYS_INLINE JS::Zone* zone() const {
|
||||
return group_->zone();
|
||||
@ -641,7 +640,6 @@ struct JSObject_Slots16 : JSObject { void* data[3]; js::Value fslots[16]; };
|
||||
/* static */ MOZ_ALWAYS_INLINE void
|
||||
JSObject::readBarrier(JSObject* obj)
|
||||
{
|
||||
MOZ_ASSERT_IF(obj, !isNullLike(obj));
|
||||
if (obj && obj->isTenured())
|
||||
obj->asTenured().readBarrier(&obj->asTenured());
|
||||
}
|
||||
@ -649,7 +647,6 @@ JSObject::readBarrier(JSObject* obj)
|
||||
/* static */ MOZ_ALWAYS_INLINE void
|
||||
JSObject::writeBarrierPre(JSObject* obj)
|
||||
{
|
||||
MOZ_ASSERT_IF(obj, !isNullLike(obj));
|
||||
if (obj && obj->isTenured())
|
||||
obj->asTenured().writeBarrierPre(&obj->asTenured());
|
||||
}
|
||||
@ -658,8 +655,6 @@ JSObject::writeBarrierPre(JSObject* obj)
|
||||
JSObject::writeBarrierPost(void* cellp, JSObject* prev, JSObject* next)
|
||||
{
|
||||
MOZ_ASSERT(cellp);
|
||||
MOZ_ASSERT_IF(next, !IsNullTaggedPointer(next));
|
||||
MOZ_ASSERT_IF(prev, !IsNullTaggedPointer(prev));
|
||||
|
||||
// If the target needs an entry, add it.
|
||||
js::gc::StoreBuffer* buffer;
|
||||
|
@ -523,7 +523,7 @@ class JSString : public js::gc::TenuredCell
|
||||
}
|
||||
|
||||
static MOZ_ALWAYS_INLINE void writeBarrierPre(JSString* thing) {
|
||||
if (isNullLike(thing) || thing->isPermanentAtom())
|
||||
if (!thing || thing->isPermanentAtom())
|
||||
return;
|
||||
|
||||
TenuredCell::writeBarrierPre(thing);
|
||||
|
@ -69,10 +69,6 @@ struct InternalBarrierMethods<TaggedProto>
|
||||
|
||||
static void readBarrier(const TaggedProto& proto);
|
||||
|
||||
static bool isMarkableTaggedPointer(const TaggedProto& proto) {
|
||||
return proto.isObject();
|
||||
}
|
||||
|
||||
static bool isMarkable(const TaggedProto& proto) {
|
||||
return proto.isObject();
|
||||
}
|
||||
|
@ -2159,7 +2159,7 @@ class MOZ_STACK_CLASS ModuleValidator
|
||||
bool declareFuncPtrTable(Sig&& sig, PropertyName* name, uint32_t firstUse, uint32_t mask,
|
||||
uint32_t* index)
|
||||
{
|
||||
if (mask > MaxTableLength)
|
||||
if (mask > MaxTableInitialLength)
|
||||
return failCurrentOffset("function pointer table too big");
|
||||
uint32_t sigIndex;
|
||||
if (!newSig(Move(sig), &sigIndex))
|
||||
|
@ -455,11 +455,12 @@ static const unsigned MaxExports = 100000;
|
||||
static const unsigned MaxGlobals = 1000000;
|
||||
static const unsigned MaxDataSegments = 100000;
|
||||
static const unsigned MaxElemSegments = 10000000;
|
||||
static const unsigned MaxTableLength = 10000000;
|
||||
static const unsigned MaxTableInitialLength = 10000000;
|
||||
static const unsigned MaxStringBytes = 100000;
|
||||
static const unsigned MaxLocals = 50000;
|
||||
static const unsigned MaxParams = 1000;
|
||||
static const unsigned MaxBrTableElems = 1000000;
|
||||
static const unsigned MaxMemoryInitialBytes = 1024 * 1024 * 1024;
|
||||
static const unsigned MaxModuleBytes = 1024 * 1024 * 1024;
|
||||
static const unsigned MaxFunctionBytes = 128 * 1024;
|
||||
|
||||
|
@ -214,6 +214,11 @@ CodeSegment::create(JSContext* cx,
|
||||
MOZ_ASSERT(linkData.globalDataLength % gc::SystemPageSize() == 0);
|
||||
MOZ_ASSERT(linkData.functionCodeLength < bytecode.length());
|
||||
|
||||
// These should always exist and should never be first in the code segment.
|
||||
MOZ_ASSERT(linkData.interruptOffset != 0);
|
||||
MOZ_ASSERT(linkData.outOfBoundsOffset != 0);
|
||||
MOZ_ASSERT(linkData.unalignedAccessOffset != 0);
|
||||
|
||||
auto cs = cx->make_unique<CodeSegment>();
|
||||
if (!cs)
|
||||
return nullptr;
|
||||
|
@ -628,6 +628,7 @@ ModuleGenerator::finishCodegen()
|
||||
|
||||
// Fill in LinkData with the offsets of these stubs.
|
||||
|
||||
linkData_.unalignedAccessOffset = unalignedAccessExit.begin;
|
||||
linkData_.outOfBoundsOffset = outOfBoundsExit.begin;
|
||||
linkData_.interruptOffset = interruptExit.begin;
|
||||
|
||||
@ -1084,7 +1085,7 @@ ModuleGenerator::initSigTableLength(uint32_t sigIndex, uint32_t length)
|
||||
{
|
||||
MOZ_ASSERT(isAsmJS());
|
||||
MOZ_ASSERT(length != 0);
|
||||
MOZ_ASSERT(length <= MaxTableLength);
|
||||
MOZ_ASSERT(length <= MaxTableInitialLength);
|
||||
|
||||
MOZ_ASSERT(env_->asmJSSigToTableIndex[sigIndex] == 0);
|
||||
env_->asmJSSigToTableIndex[sigIndex] = numTables_;
|
||||
|
@ -1172,6 +1172,10 @@ HandleFault(int signum, siginfo_t* info, void* ctx)
|
||||
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
if (signal == Signal::BusError) {
|
||||
// TODO: We may see a bus error for something that is an unaligned access that
|
||||
// partly overlaps the end of the heap. In this case, it is an out-of-bounds
|
||||
// error and we should signal that properly, but to do so we must inspect
|
||||
// the operand of the failed access.
|
||||
*ppc = instance->codeSegment().unalignedAccessCode();
|
||||
return true;
|
||||
}
|
||||
|
@ -150,7 +150,7 @@ Table::grow(uint32_t delta, JSContext* cx)
|
||||
|
||||
CheckedInt<uint32_t> newLength = oldLength;
|
||||
newLength += delta;
|
||||
if (!newLength.isValid() || newLength.value() > MaxTableLength)
|
||||
if (!newLength.isValid())
|
||||
return -1;
|
||||
|
||||
if (maximum_ && newLength.value() > maximum_.value())
|
||||
|
@ -873,7 +873,7 @@ DecodeTableLimits(Decoder& d, TableDescVector* tables)
|
||||
if (!DecodeLimits(d, &limits))
|
||||
return false;
|
||||
|
||||
if (limits.initial > MaxTableLength)
|
||||
if (limits.initial > MaxTableInitialLength)
|
||||
return d.fail("too many table elements");
|
||||
|
||||
if (tables->length())
|
||||
@ -933,7 +933,7 @@ DecodeMemoryLimits(Decoder& d, ModuleEnvironment* env)
|
||||
|
||||
CheckedInt<uint32_t> initialBytes = memory.initial;
|
||||
initialBytes *= PageSize;
|
||||
if (!initialBytes.isValid() || initialBytes.value() > uint32_t(INT32_MAX))
|
||||
if (!initialBytes.isValid() || initialBytes.value() > MaxMemoryInitialBytes)
|
||||
return d.fail("initial memory size too big");
|
||||
|
||||
memory.initial = initialBytes.value();
|
||||
@ -1418,7 +1418,7 @@ DecodeElemSection(Decoder& d, ModuleEnvironment* env)
|
||||
if (!d.readVarU32(&numElems))
|
||||
return d.fail("expected segment size");
|
||||
|
||||
if (numElems > MaxTableLength)
|
||||
if (numElems > MaxTableInitialLength)
|
||||
return d.fail("too many table elements");
|
||||
|
||||
Uint32Vector elemFuncIndices;
|
||||
@ -1564,6 +1564,9 @@ DecodeDataSection(Decoder& d, ModuleEnvironment* env)
|
||||
if (!d.readVarU32(&seg.length))
|
||||
return d.fail("expected segment size");
|
||||
|
||||
if (seg.length > MaxMemoryInitialBytes)
|
||||
return d.fail("segment size too big");
|
||||
|
||||
seg.bytecodeOffset = d.currentOffset();
|
||||
|
||||
if (!d.readBytes(seg.length))
|
||||
|
@ -2884,7 +2884,11 @@ pref("dom.ipc.plugins.asyncdrawing.enabled", false);
|
||||
pref("dom.ipc.plugins.asyncdrawing.enabled", true);
|
||||
#endif
|
||||
|
||||
#ifdef NIGHTLY_BUILD
|
||||
pref("dom.ipc.processCount", 2);
|
||||
#else
|
||||
pref("dom.ipc.processCount", 1);
|
||||
#endif
|
||||
|
||||
// Disable support for SVG
|
||||
pref("svg.disabled", false);
|
||||
|
@ -8345,25 +8345,6 @@ nsHttpChannel::ReportNetVSCacheTelemetry()
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t diskStorageSizeK = 0;
|
||||
rv = mCacheEntry->GetDiskStorageSizeInKB(&diskStorageSizeK);
|
||||
if (NS_FAILED(rv)) {
|
||||
return;
|
||||
}
|
||||
|
||||
nsAutoCString contentType;
|
||||
if (mResponseHead && mResponseHead->HasContentType()) {
|
||||
mResponseHead->ContentType(contentType);
|
||||
}
|
||||
bool isImage = StringBeginsWith(contentType, NS_LITERAL_CSTRING("image/"));
|
||||
if (isImage) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_ISIMG, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_ISIMG, onStopDiff);
|
||||
} else {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_NOTIMG, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_NOTIMG, onStopDiff);
|
||||
}
|
||||
|
||||
if (mCacheOpenWithPriority) {
|
||||
if (mCacheQueueSizeWhenOpen < 5) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_QSMALL_HIGHPRI, onStartDiff);
|
||||
@ -8388,30 +8369,17 @@ nsHttpChannel::ReportNetVSCacheTelemetry()
|
||||
}
|
||||
}
|
||||
|
||||
if (diskStorageSizeK < 32) {
|
||||
if (mCacheOpenWithPriority) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_SMALL_HIGHPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_SMALL_HIGHPRI, onStopDiff);
|
||||
} else {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_SMALL_NORMALPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_SMALL_NORMALPRI, onStopDiff);
|
||||
}
|
||||
} else if (diskStorageSizeK < 256) {
|
||||
if (mCacheOpenWithPriority) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_MED_HIGHPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_MED_HIGHPRI, onStopDiff);
|
||||
} else {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_MED_NORMALPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_MED_NORMALPRI, onStopDiff);
|
||||
}
|
||||
uint32_t diskStorageSizeK = 0;
|
||||
rv = mCacheEntry->GetDiskStorageSizeInKB(&diskStorageSizeK);
|
||||
if (NS_FAILED(rv)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// No significant difference was observed between different sizes for |onStartDiff|
|
||||
if (diskStorageSizeK < 256) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_SMALL, onStopDiff);
|
||||
} else {
|
||||
if (mCacheOpenWithPriority) {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_LARGE_HIGHPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_LARGE_HIGHPRI, onStopDiff);
|
||||
} else {
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTART_LARGE_NORMALPRI, onStartDiff);
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_LARGE_NORMALPRI, onStopDiff);
|
||||
}
|
||||
Telemetry::Accumulate(Telemetry::HTTP_NET_VS_CACHE_ONSTOP_LARGE, onStopDiff);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,8 @@
|
||||
#include "nsIOService.h"
|
||||
#include "nsIRequestContext.h"
|
||||
#include "nsIHttpAuthenticator.h"
|
||||
#include "NSSErrorsService.h"
|
||||
#include "sslerr.h"
|
||||
#include <algorithm>
|
||||
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
@ -943,7 +945,9 @@ nsHttpTransaction::Close(nsresult reason)
|
||||
// connection. It will break that connection and also confuse the channel's
|
||||
// auth provider, beliving the cached credentials are wrong and asking for
|
||||
// the password mistakenly again from the user.
|
||||
if ((reason == NS_ERROR_NET_RESET || reason == NS_OK) &&
|
||||
if ((reason == NS_ERROR_NET_RESET ||
|
||||
reason == NS_OK ||
|
||||
reason == psm::GetXPCOMFromNSSError(SSL_ERROR_DOWNGRADE_WITH_EARLY_DATA)) &&
|
||||
!(mCaps & NS_HTTP_STICKY_CONNECTION)) {
|
||||
|
||||
if (mForceRestart && NS_SUCCEEDED(Restart())) {
|
||||
@ -972,9 +976,10 @@ nsHttpTransaction::Close(nsresult reason)
|
||||
bool reallySentData =
|
||||
mSentData && (!mConnection || mConnection->BytesWritten());
|
||||
|
||||
if (!mReceivedData &&
|
||||
if (reason == psm::GetXPCOMFromNSSError(SSL_ERROR_DOWNGRADE_WITH_EARLY_DATA) ||
|
||||
(!mReceivedData &&
|
||||
((mRequestHead && mRequestHead->IsSafeMethod()) ||
|
||||
!reallySentData || connReused)) {
|
||||
!reallySentData || connReused))) {
|
||||
// if restarting fails, then we must proceed to close the pipe,
|
||||
// which will notify the channel that the transaction failed.
|
||||
|
||||
|
@ -11,6 +11,7 @@ tags = local
|
||||
tags = local
|
||||
[test_safe_browsing_initial_download.py]
|
||||
[test_safe_browsing_notification.py]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[test_safe_browsing_warning_pages.py]
|
||||
[test_security_notification.py]
|
||||
[test_ssl_disabled_error_page.py]
|
||||
|
@ -88,7 +88,8 @@ add_task(function* test_cookies() {
|
||||
browser.test.assertEq(1, stores[0].tabIds.length, "one tabId returned for store");
|
||||
browser.test.assertEq("number", typeof stores[0].tabIds[0], "tabId is a number");
|
||||
|
||||
{
|
||||
// This part causes intermittent failures see Bug 1309637.
|
||||
if (false) {
|
||||
let privateWindow = await browser.windows.create({incognito: true});
|
||||
let stores = await browser.cookies.getAllCookieStores();
|
||||
|
||||
@ -179,7 +180,8 @@ add_task(function* test_cookies() {
|
||||
browser.test.assertEq("", cookie.value, "default value set");
|
||||
browser.test.assertEq(true, cookie.session, "no expiry date created session cookie");
|
||||
|
||||
{
|
||||
// This part causes intermittent failures see Bug 1309637.
|
||||
if (false) {
|
||||
let privateWindow = await browser.windows.create({incognito: true});
|
||||
|
||||
// Hacky work-around for bugzil.la/1309637
|
||||
|
@ -7,6 +7,12 @@
|
||||
|
||||
"use strict";
|
||||
|
||||
add_task(function* setup() {
|
||||
yield SpecialPowers.pushPrefEnv({
|
||||
set: [["dom.ipc.processCount", 1]]
|
||||
});
|
||||
});
|
||||
|
||||
/**
|
||||
* Open the requestAutocomplete UI and test that selecting a profile results in
|
||||
* the correct data being sent back to the opener.
|
||||
|
@ -45,6 +45,7 @@ support-files =
|
||||
[browser_formless_submit_chrome.js]
|
||||
[browser_hasInsecureLoginForms.js]
|
||||
[browser_hasInsecureLoginForms_streamConverter.js]
|
||||
skip-if = e10s # Bug 1315042
|
||||
[browser_http_autofill.js]
|
||||
[browser_insecurePasswordWarning.js]
|
||||
[browser_notifications.js]
|
||||
|
@ -1738,42 +1738,6 @@
|
||||
"n_values": 12,
|
||||
"description": "Whether the URL gets redirected? (0=200, 1=301, 2=302, 3=304, 4=307, 5=308, 6=400, 7=401, 8=403, 9=404, 10=500, 11=other)"
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_ISIMG": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for images. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_NOTIMG": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for non-images. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_ISIMG": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for images. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_NOTIMG": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for non-images. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_QSMALL_NORMALPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
@ -1882,113 +1846,23 @@
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for requests with a high priority and large queue. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_SMALL_NORMALPRI": {
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_SMALL": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"bug_numbers": [1325090],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a small size (<32K) and normal priority. Offset by 500 ms."
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a small size (<256K). Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_MED_NORMALPRI": {
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_LARGE": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"bug_numbers": [1325090],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a medium size (<256K) and normal priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_LARGE_NORMALPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a large size (>256K) and normal priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_SMALL_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a small size (<32K) and high priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_MED_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a medium size (<256K) and high priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_LARGE_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStartRequest) difference (ms) for cache files with a large size (>256K) and high priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_SMALL_NORMALPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a small size (<32K) and normal priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_MED_NORMALPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a medium size (<256K) and normal priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_LARGE_NORMALPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a large size (>256K) and normal priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_SMALL_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a small size (<32K) and high priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_MED_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a medium size (<256K) and high priority. Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTOP_LARGE_HIGHPRI": {
|
||||
"expires_in_version": "58",
|
||||
"alert_emails": ["necko@mozilla.com"],
|
||||
"bug_numbers": [1313095],
|
||||
"kind": "linear",
|
||||
"high": 1000,
|
||||
"n_buckets": 100,
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a large size (>256K) and high priority. Offset by 500 ms."
|
||||
"description": "Network vs cache time load (OnStopRequest) difference (ms) for cache files with a large size (>=256K). Offset by 500 ms."
|
||||
},
|
||||
"HTTP_NET_VS_CACHE_ONSTART_REVALIDATED": {
|
||||
"expires_in_version": "58",
|
||||
|
@ -65,3 +65,4 @@ skip-if = buildapp == 'mulet'
|
||||
skip-if = buildapp == 'mulet'
|
||||
[browser_webext_options.js]
|
||||
tags = webextensions
|
||||
skip-if = e10s # Bug 1315042
|
||||
|
Loading…
Reference in New Issue
Block a user