From aa7d33ab1b2d54e79b961d1bdc9aa1305f08d6d4 Mon Sep 17 00:00:00 2001 From: David Rajchenbach-Teller Date: Mon, 18 May 2015 16:40:22 +0200 Subject: [PATCH 01/34] Bug 1157870 - Performance Groups should have a unique ID (low-level). r=jandem --- js/src/jsapi.cpp | 2 +- js/src/jsapi.h | 12 +++++------- js/src/vm/Runtime.cpp | 11 ++++++++++- js/src/vm/Runtime.h | 13 +++++++++++++ 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 01861a22641..367e81ea192 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -338,7 +338,7 @@ IterPerformanceStats(JSContext* cx, continue; } - if (!(*walker)(cx, group->data, closure)) { + if (!(*walker)(cx, group->data, group->uid, closure)) { // Issue in callback return false; } diff --git a/js/src/jsapi.h b/js/src/jsapi.h index c09c4f7bbd9..8c919bee482 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -5448,6 +5448,9 @@ struct PerformanceGroup { // Performance data for this group. PerformanceData data; + // An id unique to this runtime. + const uint64_t uid; + // `true` if an instance of `AutoStopwatch` is already monitoring // the performance of this performance group for this iteration // of the event loop, `false` otherwise. @@ -5472,12 +5475,7 @@ struct PerformanceGroup { stopwatch_ = nullptr; } - explicit PerformanceGroup(void* key) - : stopwatch_(nullptr) - , iteration_(0) - , key_(key) - , refCount_(0) - { } + explicit PerformanceGroup(JSContext* cx, void* key); ~PerformanceGroup() { MOZ_ASSERT(refCount_ == 0); @@ -5589,7 +5587,7 @@ extern JS_PUBLIC_API(PerformanceData*) GetPerformanceData(JSRuntime*); typedef bool -(PerformanceStatsWalker)(JSContext* cx, const PerformanceData& stats, void* closure); +(PerformanceStatsWalker)(JSContext* cx, const PerformanceData& stats, uint64_t uid, void* closure); /** * Extract the performance statistics. diff --git a/js/src/vm/Runtime.cpp b/js/src/vm/Runtime.cpp index dc910304cd6..668acdd07a4 100644 --- a/js/src/vm/Runtime.cpp +++ b/js/src/vm/Runtime.cpp @@ -955,7 +955,7 @@ js::PerformanceGroupHolder::getGroup(JSContext* cx) group_ = ptr->value(); MOZ_ASSERT(group_); } else { - group_ = runtime_->new_(key); + group_ = runtime_->new_(cx, key); runtime_->stopwatch.groups_.add(ptr, key, group_); } @@ -970,6 +970,15 @@ js::GetPerformanceData(JSRuntime* rt) return &rt->stopwatch.performance; } +js::PerformanceGroup::PerformanceGroup(JSContext* cx, void* key) + : uid(cx->runtime()->stopwatch.uniqueId()) + , stopwatch_(nullptr) + , iteration_(0) + , key_(key) + , refCount_(0) +{ +} + void JS_SetCurrentPerfGroupCallback(JSRuntime *rt, JSCurrentPerfGroupCallback cb) { diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h index 5cfcb7e6365..8ab6b2fd92e 100644 --- a/js/src/vm/Runtime.h +++ b/js/src/vm/Runtime.h @@ -1517,6 +1517,7 @@ struct JSRuntime : public JS::shadow::Runtime, , currentPerfGroupCallback(nullptr) , isMonitoringJank_(false) , isMonitoringCPOW_(false) + , idCounter_(0) { } /** @@ -1570,6 +1571,13 @@ struct JSRuntime : public JS::shadow::Runtime, return isMonitoringCPOW_; } + /** + * Return a identifier for a group, unique to the runtime. + */ + uint64_t uniqueId() { + return idCounter_++; + } + // Some systems have non-monotonic clocks. While we cannot // improve the precision, we can make sure that our measures // are monotonic nevertheless. We do this by storing the @@ -1620,6 +1628,11 @@ struct JSRuntime : public JS::shadow::Runtime, */ bool isMonitoringJank_; bool isMonitoringCPOW_; + + /** + * A counter used to generate unique identifiers for groups. + */ + uint64_t idCounter_; }; Stopwatch stopwatch; }; From cb25adcae1bfd0ed852cd6b980876f53c2be2941 Mon Sep 17 00:00:00 2001 From: David Rajchenbach-Teller Date: Mon, 18 May 2015 16:40:34 +0200 Subject: [PATCH 02/34] Bug 1157870 - Performance Groups should have a unique ID (high-level). r=mossop --- .../content/aboutPerformance.js | 3 +- .../perfmonitoring/PerformanceStats.jsm | 2 +- .../perfmonitoring/nsIPerformanceStats.idl | 10 ++- .../perfmonitoring/nsPerformanceStats.cpp | 72 +++++++++++++++---- .../perfmonitoring/nsPerformanceStats.h | 1 + .../tests/browser/browser_compartments.js | 22 ++---- 6 files changed, 75 insertions(+), 35 deletions(-) diff --git a/toolkit/components/aboutperformance/content/aboutPerformance.js b/toolkit/components/aboutperformance/content/aboutPerformance.js index 28633c522db..126584f2cd9 100644 --- a/toolkit/components/aboutperformance/content/aboutPerformance.js +++ b/toolkit/components/aboutperformance/content/aboutPerformance.js @@ -120,8 +120,7 @@ let State = { let newData = new Map(); let deltas = []; for (let componentNew of snapshot.componentsData) { - let {name, addonId, isSystem} = componentNew; - let key = JSON.stringify({name, addonId, isSystem}); + let key = componentNew.groupId; let componentOld = State._componentsData.get(key); deltas.push(componentNew.subtract(componentOld)); newData.set(key, componentNew); diff --git a/toolkit/components/perfmonitoring/PerformanceStats.jsm b/toolkit/components/perfmonitoring/PerformanceStats.jsm index 039d1d50140..8ff56cf47e6 100644 --- a/toolkit/components/perfmonitoring/PerformanceStats.jsm +++ b/toolkit/components/perfmonitoring/PerformanceStats.jsm @@ -42,7 +42,7 @@ XPCOMUtils.defineLazyServiceGetter(this, "finalizer", // and that we can release/close the probes it holds. const FINALIZATION_TOPIC = "performancemonitor-finalize"; -const PROPERTIES_META_IMMUTABLE = ["name", "addonId", "isSystem"]; +const PROPERTIES_META_IMMUTABLE = ["name", "addonId", "isSystem", "groupId"]; const PROPERTIES_META = [...PROPERTIES_META_IMMUTABLE, "windowId", "title"]; /** diff --git a/toolkit/components/perfmonitoring/nsIPerformanceStats.idl b/toolkit/components/perfmonitoring/nsIPerformanceStats.idl index eaae3a860c1..272178e253d 100644 --- a/toolkit/components/perfmonitoring/nsIPerformanceStats.idl +++ b/toolkit/components/perfmonitoring/nsIPerformanceStats.idl @@ -22,8 +22,16 @@ * All values are monotonic and are updated only when * `nsIPerformanceStatsService.isStopwatchActive` is `true`. */ -[scriptable, uuid(b060d75d-55bc-4c82-a4ff-458fc5ab2a69)] +[scriptable, uuid(47f8d36d-1d67-43cb-befd-d2f4720ac568)] interface nsIPerformanceStats: nsISupports { + /** + * An identifier unique to the component. + * + * This identifier is somewhat human-readable to aid with debugging, + * but clients should not rely upon the format. + */ + readonly attribute AString groupId; + /** * The name of the component: * - for the process itself, ""; diff --git a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp index 7433f2df060..345ac152f6e 100644 --- a/toolkit/components/perfmonitoring/nsPerformanceStats.cpp +++ b/toolkit/components/perfmonitoring/nsPerformanceStats.cpp @@ -22,15 +22,23 @@ #include "nsIDOMWindow.h" #include "nsGlobalWindow.h" +#if defined(XP_WIN) +#include "Windows.h" +#else +#include +#endif + class nsPerformanceStats: public nsIPerformanceStats { public: nsPerformanceStats(const nsAString& aName, + const nsAString& aGroupId, const nsAString& aAddonId, const nsAString& aTitle, const uint64_t aWindowId, const bool aIsSystem, const js::PerformanceData& aPerformanceData) : mName(aName) + , mGroupId(aGroupId) , mAddonId(aAddonId) , mTitle(aTitle) , mWindowId(aWindowId) @@ -48,7 +56,13 @@ public: return NS_OK; }; - /* readonly attribute AString addon id; */ + /* readonly attribute AString groupId; */ + NS_IMETHOD GetGroupId(nsAString& aGroupId) override { + aGroupId.Assign(mGroupId); + return NS_OK; + }; + + /* readonly attribute AString addonId; */ NS_IMETHOD GetAddonId(nsAString& aAddonId) override { aAddonId.Assign(mAddonId); return NS_OK; @@ -111,6 +125,7 @@ public: private: nsString mName; + nsString mGroupId; nsString mAddonId; nsString mTitle; uint64_t mWindowId; @@ -131,7 +146,7 @@ public: NS_DECL_NSIPERFORMANCESNAPSHOT nsPerformanceSnapshot(); - nsresult Init(JSContext*); + nsresult Init(JSContext*, uint64_t processId); private: virtual ~nsPerformanceSnapshot(); @@ -145,20 +160,22 @@ private: * entire process, rather than the statistics for a specific set of * compartments. */ - already_AddRefed ImportStats(JSContext* cx, const js::PerformanceData& data); + already_AddRefed ImportStats(JSContext* cx, const js::PerformanceData& data, uint64_t uid); /** * Callbacks for iterating through the `PerformanceStats` of a runtime. */ - bool IterPerformanceStatsCallbackInternal(JSContext* cx, const js::PerformanceData& stats); - static bool IterPerformanceStatsCallback(JSContext* cx, const js::PerformanceData& stats, void* self); + bool IterPerformanceStatsCallbackInternal(JSContext* cx, const js::PerformanceData& stats, uint64_t uid); + static bool IterPerformanceStatsCallback(JSContext* cx, const js::PerformanceData& stats, uint64_t uid, void* self); // If the context represents a window, extract the title and window ID. // Otherwise, extract "" and 0. static void GetWindowData(JSContext*, nsString& title, uint64_t* windowId); - + void GetGroupId(JSContext*, + uint64_t uid, + nsString& groupId); // If the context presents an add-on, extract the addon ID. // Otherwise, extract "". static void GetAddonId(JSContext*, @@ -172,6 +189,7 @@ private: private: nsCOMArray mComponentsData; nsCOMPtr mProcessData; + uint64_t mProcessId; }; NS_IMPL_ISUPPORTS(nsPerformanceSnapshot, nsIPerformanceSnapshot) @@ -233,6 +251,22 @@ nsPerformanceSnapshot::GetAddonId(JSContext*, AssignJSFlatString(addonId, (JSFlatString*)jsid); } +void +nsPerformanceSnapshot::GetGroupId(JSContext* cx, + uint64_t uid, + nsString& groupId) +{ + JSRuntime* rt = JS_GetRuntime(cx); + uint64_t runtimeId = reinterpret_cast(rt); + + groupId.AssignLiteral("process: "); + groupId.AppendInt(mProcessId); + groupId.AssignLiteral(", thread: "); + groupId.AppendInt(runtimeId); + groupId.AppendLiteral(", group: "); + groupId.AppendInt(uid); +} + /* static */ bool nsPerformanceSnapshot::GetIsSystem(JSContext*, JS::Handle global) @@ -241,7 +275,7 @@ nsPerformanceSnapshot::GetIsSystem(JSContext*, } already_AddRefed -nsPerformanceSnapshot::ImportStats(JSContext* cx, const js::PerformanceData& performance) { +nsPerformanceSnapshot::ImportStats(JSContext* cx, const js::PerformanceData& performance, const uint64_t uid) { JS::RootedObject global(cx, JS::CurrentGlobalOrNull(cx)); if (!global) { @@ -250,6 +284,9 @@ nsPerformanceSnapshot::ImportStats(JSContext* cx, const js::PerformanceData& per return nullptr; } + nsString groupId; + GetGroupId(cx, uid, groupId); + nsString addonId; GetAddonId(cx, global, addonId); @@ -265,18 +302,18 @@ nsPerformanceSnapshot::ImportStats(JSContext* cx, const js::PerformanceData& per bool isSystem = GetIsSystem(cx, global); nsCOMPtr result = - new nsPerformanceStats(name, addonId, title, windowId, isSystem, performance); + new nsPerformanceStats(name, groupId, addonId, title, windowId, isSystem, performance); return result.forget(); } /*static*/ bool -nsPerformanceSnapshot::IterPerformanceStatsCallback(JSContext* cx, const js::PerformanceData& stats, void* self) { - return reinterpret_cast(self)->IterPerformanceStatsCallbackInternal(cx, stats); +nsPerformanceSnapshot::IterPerformanceStatsCallback(JSContext* cx, const js::PerformanceData& stats, const uint64_t uid, void* self) { + return reinterpret_cast(self)->IterPerformanceStatsCallbackInternal(cx, stats, uid); } bool -nsPerformanceSnapshot::IterPerformanceStatsCallbackInternal(JSContext* cx, const js::PerformanceData& stats) { - nsCOMPtr result = ImportStats(cx, stats); +nsPerformanceSnapshot::IterPerformanceStatsCallbackInternal(JSContext* cx, const js::PerformanceData& stats, const uint64_t uid) { + nsCOMPtr result = ImportStats(cx, stats, uid); if (result) { mComponentsData.AppendElement(result); } @@ -285,13 +322,15 @@ nsPerformanceSnapshot::IterPerformanceStatsCallbackInternal(JSContext* cx, const } nsresult -nsPerformanceSnapshot::Init(JSContext* cx) { +nsPerformanceSnapshot::Init(JSContext* cx, uint64_t processId) { + mProcessId = processId; js::PerformanceData processStats; if (!js::IterPerformanceStats(cx, nsPerformanceSnapshot::IterPerformanceStatsCallback, &processStats, this)) { return NS_ERROR_UNEXPECTED; } mProcessData = new nsPerformanceStats(NS_LITERAL_STRING(""), // name + NS_LITERAL_STRING(""), // group id NS_LITERAL_STRING(""), // add-on id NS_LITERAL_STRING(""), // title 0, // window id @@ -326,6 +365,11 @@ NS_IMETHODIMP nsPerformanceSnapshot::GetProcessData(nsIPerformanceStats * *aProc NS_IMPL_ISUPPORTS(nsPerformanceStatsService, nsIPerformanceStatsService) nsPerformanceStatsService::nsPerformanceStatsService() +#if defined(XP_WIN) + : mProcessId(GetCurrentProcessId()) +#else + : mProcessId(getpid()) +#endif { } @@ -367,7 +411,7 @@ NS_IMETHODIMP nsPerformanceStatsService::SetIsMonitoringJank(JSContext* cx, bool NS_IMETHODIMP nsPerformanceStatsService::GetSnapshot(JSContext* cx, nsIPerformanceSnapshot * *aSnapshot) { nsRefPtr snapshot = new nsPerformanceSnapshot(); - nsresult rv = snapshot->Init(cx); + nsresult rv = snapshot->Init(cx, mProcessId); if (NS_FAILED(rv)) { return rv; } diff --git a/toolkit/components/perfmonitoring/nsPerformanceStats.h b/toolkit/components/perfmonitoring/nsPerformanceStats.h index 54e1a89bbbe..cb95891369c 100644 --- a/toolkit/components/perfmonitoring/nsPerformanceStats.h +++ b/toolkit/components/perfmonitoring/nsPerformanceStats.h @@ -19,6 +19,7 @@ public: private: virtual ~nsPerformanceStatsService(); + const uint64_t mProcessId; protected: }; diff --git a/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js b/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js index c4c3f2ea396..938a6e4b8c5 100644 --- a/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js +++ b/toolkit/components/perfmonitoring/tests/browser/browser_compartments.js @@ -103,8 +103,8 @@ function monotinicity_tester(source, testName) { if (prev == null) { return; } - for (let k of ["name", "addonId", "isSystem"]) { - SilentAssert.equal(prev[k], next[k], `Sanity check (${testName}): ${k} hasn't changed.`); + for (let k of ["groupId", "addonId", "isSystem"]) { + SilentAssert.equal(prev[k], next[k], `Sanity check (${testName}): ${k} hasn't changed (${prev.name}).`); } for (let [probe, k] of [ ["jank", "totalUserTime"], @@ -147,10 +147,9 @@ function monotinicity_tester(source, testName) { previous.procesData = snapshot.processData; // Sanity check on components data. - let set = new Set(); let map = new Map(); for (let item of snapshot.componentsData) { - for (let [probe, k] of [ + for (let [probe, k] of [ ["jank", "totalUserTime"], ["jank", "totalSystemTime"], ["cpow", "totalCPOWTime"] @@ -159,25 +158,14 @@ function monotinicity_tester(source, testName) { `Sanity check (${testName}): component has a lower ${k} than process`); } - let key = `{name: ${item.name}, window: ${item.windowId}, addonId: ${item.addonId}, isSystem: ${item.isSystem}}`; - if (set.has(key)) { - // There are at least two components with the same name (e.g. about:blank). - // Don't perform sanity checks on that name until we know how to make - // the difference. - map.delete(key); - continue; - } + let key = item.groupId; + SilentAssert.ok(!map.has(key), "The component hasn't been seen yet."); map.set(key, item); - set.add(key); } for (let [key, item] of map) { sanityCheck(previous.componentsMap.get(key), item); previous.componentsMap.set(key, item); } - info(`Deactivating deduplication check (Bug 1150045)`); - if (false) { - SilentAssert.equal(set.size, snapshot.componentsData.length); - } }); let interval = window.setInterval(frameCheck, 300); registerCleanupFunction(() => { From 7a03b46240c2952a830e0d9c72654c3687bbed11 Mon Sep 17 00:00:00 2001 From: Victor Porof Date: Tue, 16 Jun 2015 20:18:04 -0400 Subject: [PATCH 03/34] Bug 1169135 - Make Graphs.jsm a require module, r=jsantell --- .../performance/modules/widgets/graphs.js | 8 ++-- .../modules/widgets/markers-overview.js | 2 +- .../devtools/performance/views/overview.js | 2 +- browser/devtools/shared/moz.build | 2 +- .../devtools/shared/test/browser_graphs-01.js | 2 +- .../devtools/shared/test/browser_graphs-02.js | 2 +- .../devtools/shared/test/browser_graphs-03.js | 2 +- .../devtools/shared/test/browser_graphs-04.js | 2 +- .../devtools/shared/test/browser_graphs-05.js | 2 +- .../devtools/shared/test/browser_graphs-06.js | 2 +- .../shared/test/browser_graphs-07a.js | 2 +- .../shared/test/browser_graphs-07b.js | 2 +- .../shared/test/browser_graphs-07c.js | 2 +- .../shared/test/browser_graphs-07d.js | 2 +- .../devtools/shared/test/browser_graphs-08.js | 2 +- .../shared/test/browser_graphs-09a.js | 2 +- .../shared/test/browser_graphs-09b.js | 2 +- .../shared/test/browser_graphs-09c.js | 2 +- .../shared/test/browser_graphs-09d.js | 2 +- .../shared/test/browser_graphs-09e.js | 2 +- .../shared/test/browser_graphs-09f.js | 2 +- .../shared/test/browser_graphs-10a.js | 2 +- .../shared/test/browser_graphs-10b.js | 2 +- .../shared/test/browser_graphs-10c.js | 2 +- .../shared/test/browser_graphs-11a.js | 2 +- .../shared/test/browser_graphs-11b.js | 2 +- .../devtools/shared/test/browser_graphs-12.js | 2 +- .../devtools/shared/test/browser_graphs-13.js | 2 +- .../devtools/shared/test/browser_graphs-14.js | 2 +- .../devtools/shared/test/browser_graphs-15.js | 2 +- browser/devtools/shared/widgets/FlameGraph.js | 12 +++--- .../shared/widgets/{Graphs.jsm => Graphs.js} | 37 ++++++++++--------- .../devtools/shared/widgets/GraphsWorker.js | 2 +- browser/devtools/webaudioeditor/includes.js | 5 ++- 34 files changed, 63 insertions(+), 59 deletions(-) rename browser/devtools/shared/widgets/{Graphs.jsm => Graphs.js} (98%) diff --git a/browser/devtools/performance/modules/widgets/graphs.js b/browser/devtools/performance/modules/widgets/graphs.js index bb5b50b126f..db2c07d04f0 100644 --- a/browser/devtools/performance/modules/widgets/graphs.js +++ b/browser/devtools/performance/modules/widgets/graphs.js @@ -9,10 +9,10 @@ const { Cc, Ci, Cu, Cr } = require("chrome"); const { Task } = require("resource://gre/modules/Task.jsm"); -const { LineGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); -const { BarGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); -const { CanvasGraphUtils } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { LineGraphWidget } = require("devtools/shared/widgets/Graphs"); +const { BarGraphWidget } = require("devtools/shared/widgets/Graphs"); +const { CanvasGraphUtils } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "promise"); loader.lazyRequireGetter(this, "EventEmitter", @@ -325,7 +325,7 @@ GraphsController.prototype = { /** * Fetches the currently mapped selection. If graphs are not yet rendered, - * (which throws in Graphs.jsm), return null. + * (which throws in Graphs.js), return null. */ getMappedSelection: function ({ mapStart, mapEnd }) { let primary = this._getPrimaryLink(); diff --git a/browser/devtools/performance/modules/widgets/markers-overview.js b/browser/devtools/performance/modules/widgets/markers-overview.js index 53bfbf2ad1b..1659ffc3d5a 100644 --- a/browser/devtools/performance/modules/widgets/markers-overview.js +++ b/browser/devtools/performance/modules/widgets/markers-overview.js @@ -10,8 +10,8 @@ */ const { Cc, Ci, Cu, Cr } = require("chrome"); -const { AbstractCanvasGraph } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { AbstractCanvasGraph } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "colorUtils", "devtools/css-color", true); diff --git a/browser/devtools/performance/views/overview.js b/browser/devtools/performance/views/overview.js index 5f017f7e008..f8b3b2378cc 100644 --- a/browser/devtools/performance/views/overview.js +++ b/browser/devtools/performance/views/overview.js @@ -178,7 +178,7 @@ let OverviewView = { * Method for handling all the set up for rendering the overview graphs. * * @param number resolution - * The fps graph resolution. @see Graphs.jsm + * The fps graph resolution. @see Graphs.js */ render: Task.async(function *(resolution) { if (this.isDisabled()) { diff --git a/browser/devtools/shared/moz.build b/browser/devtools/shared/moz.build index ac002b6b3f2..cbc9139b637 100644 --- a/browser/devtools/shared/moz.build +++ b/browser/devtools/shared/moz.build @@ -21,7 +21,6 @@ EXTRA_JS_MODULES.devtools += [ 'widgets/AbstractTreeItem.jsm', 'widgets/BreadcrumbsWidget.jsm', 'widgets/Chart.jsm', - 'widgets/Graphs.jsm', 'widgets/GraphsWorker.js', 'widgets/SideMenuWidget.jsm', 'widgets/SimpleListWidget.jsm', @@ -54,6 +53,7 @@ EXTRA_JS_MODULES.devtools.shared.widgets += [ 'widgets/FastListWidget.js', 'widgets/FilterWidget.js', 'widgets/FlameGraph.js', + 'widgets/Graphs.js', 'widgets/MdnDocsWidget.js', 'widgets/Spectrum.js', 'widgets/TableWidget.js', diff --git a/browser/devtools/shared/test/browser_graphs-01.js b/browser/devtools/shared/test/browser_graphs-01.js index f9cf66cde03..2a55222b065 100644 --- a/browser/devtools/shared/test/browser_graphs-01.js +++ b/browser/devtools/shared/test/browser_graphs-01.js @@ -3,7 +3,7 @@ // Tests that graph widgets works properly. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-02.js b/browser/devtools/shared/test/browser_graphs-02.js index 5c56ac93bc5..9a97e706c38 100644 --- a/browser/devtools/shared/test/browser_graphs-02.js +++ b/browser/devtools/shared/test/browser_graphs-02.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-03.js b/browser/devtools/shared/test/browser_graphs-03.js index 6aa6b8aae1a..37c72e8d759 100644 --- a/browser/devtools/shared/test/browser_graphs-03.js +++ b/browser/devtools/shared/test/browser_graphs-03.js @@ -4,7 +4,7 @@ // Tests that graph widgets can handle clients getting/setting the // selection or cursor. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-04.js b/browser/devtools/shared/test/browser_graphs-04.js index c75cf3c1852..277f1c847aa 100644 --- a/browser/devtools/shared/test/browser_graphs-04.js +++ b/browser/devtools/shared/test/browser_graphs-04.js @@ -3,7 +3,7 @@ // Tests that graph widgets can correctly compare selections and cursors. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-05.js b/browser/devtools/shared/test/browser_graphs-05.js index 15d9c48c994..ef10c25121a 100644 --- a/browser/devtools/shared/test/browser_graphs-05.js +++ b/browser/devtools/shared/test/browser_graphs-05.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-06.js b/browser/devtools/shared/test/browser_graphs-06.js index f102b6b3e5d..2c99e4edc54 100644 --- a/browser/devtools/shared/test/browser_graphs-06.js +++ b/browser/devtools/shared/test/browser_graphs-06.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07a.js b/browser/devtools/shared/test/browser_graphs-07a.js index 8aeed71714d..7716af4505c 100644 --- a/browser/devtools/shared/test/browser_graphs-07a.js +++ b/browser/devtools/shared/test/browser_graphs-07a.js @@ -4,7 +4,7 @@ // Tests if selecting, resizing, moving selections and zooming in/out works. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07b.js b/browser/devtools/shared/test/browser_graphs-07b.js index 1af18be88e0..03d84d44e7f 100644 --- a/browser/devtools/shared/test/browser_graphs-07b.js +++ b/browser/devtools/shared/test/browser_graphs-07b.js @@ -4,7 +4,7 @@ // Tests if selections can't be added via clicking, while not allowed. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07c.js b/browser/devtools/shared/test/browser_graphs-07c.js index 17ec16947ef..a1457124a9c 100644 --- a/browser/devtools/shared/test/browser_graphs-07c.js +++ b/browser/devtools/shared/test/browser_graphs-07c.js @@ -6,7 +6,7 @@ // callbacks with textX / testY for convenience. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07d.js b/browser/devtools/shared/test/browser_graphs-07d.js index 90b3203ef33..a36cb6fb811 100644 --- a/browser/devtools/shared/test/browser_graphs-07d.js +++ b/browser/devtools/shared/test/browser_graphs-07d.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-08.js b/browser/devtools/shared/test/browser_graphs-08.js index 43c79061647..deea4c45c89 100644 --- a/browser/devtools/shared/test/browser_graphs-08.js +++ b/browser/devtools/shared/test/browser_graphs-08.js @@ -4,7 +4,7 @@ // Tests if a selection is dropped when clicking outside of it. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09a.js b/browser/devtools/shared/test/browser_graphs-09a.js index 3325139a5fe..b118dd37e2b 100644 --- a/browser/devtools/shared/test/browser_graphs-09a.js +++ b/browser/devtools/shared/test/browser_graphs-09a.js @@ -4,7 +4,7 @@ // Tests that line graphs properly create the gutter and tooltips. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09b.js b/browser/devtools/shared/test/browser_graphs-09b.js index d5171ccd465..7f2dcf78f99 100644 --- a/browser/devtools/shared/test/browser_graphs-09b.js +++ b/browser/devtools/shared/test/browser_graphs-09b.js @@ -4,7 +4,7 @@ // Tests that line graphs properly use the tooltips configuration properties. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09c.js b/browser/devtools/shared/test/browser_graphs-09c.js index 7007f516b6d..aa0289f7686 100644 --- a/browser/devtools/shared/test/browser_graphs-09c.js +++ b/browser/devtools/shared/test/browser_graphs-09c.js @@ -4,7 +4,7 @@ // Tests that line graphs hide the tooltips when there's no data available. const TEST_DATA = []; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09d.js b/browser/devtools/shared/test/browser_graphs-09d.js index 6138b91f538..339bf22619f 100644 --- a/browser/devtools/shared/test/browser_graphs-09d.js +++ b/browser/devtools/shared/test/browser_graphs-09d.js @@ -5,7 +5,7 @@ // the 'min' and 'max' tooltip is too small. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 59.9 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09e.js b/browser/devtools/shared/test/browser_graphs-09e.js index afa7a9065ff..8e261deeb35 100644 --- a/browser/devtools/shared/test/browser_graphs-09e.js +++ b/browser/devtools/shared/test/browser_graphs-09e.js @@ -7,7 +7,7 @@ const NO_DATA = []; const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09f.js b/browser/devtools/shared/test/browser_graphs-09f.js index 10723acc35b..1851cf918c1 100644 --- a/browser/devtools/shared/test/browser_graphs-09f.js +++ b/browser/devtools/shared/test/browser_graphs-09f.js @@ -5,7 +5,7 @@ // gutter/tooltips and lines. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 1 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10a.js b/browser/devtools/shared/test/browser_graphs-10a.js index d371ea8d2fd..429ed244652 100644 --- a/browser/devtools/shared/test/browser_graphs-10a.js +++ b/browser/devtools/shared/test/browser_graphs-10a.js @@ -4,7 +4,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10b.js b/browser/devtools/shared/test/browser_graphs-10b.js index 2796765b278..7997bec9cff 100644 --- a/browser/devtools/shared/test/browser_graphs-10b.js +++ b/browser/devtools/shared/test/browser_graphs-10b.js @@ -5,7 +5,7 @@ // the graph dimensions stay the same. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10c.js b/browser/devtools/shared/test/browser_graphs-10c.js index e802f6c1462..6d847344659 100644 --- a/browser/devtools/shared/test/browser_graphs-10c.js +++ b/browser/devtools/shared/test/browser_graphs-10c.js @@ -2,7 +2,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-11a.js b/browser/devtools/shared/test/browser_graphs-11a.js index cb07d91f0f6..ef8ce6f7433 100644 --- a/browser/devtools/shared/test/browser_graphs-11a.js +++ b/browser/devtools/shared/test/browser_graphs-11a.js @@ -3,7 +3,7 @@ // Tests that bar graph create a legend as expected. -let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-11b.js b/browser/devtools/shared/test/browser_graphs-11b.js index 509026592d2..30656ddee2c 100644 --- a/browser/devtools/shared/test/browser_graphs-11b.js +++ b/browser/devtools/shared/test/browser_graphs-11b.js @@ -3,7 +3,7 @@ // Tests that bar graph's legend items handle mouseover/mouseout. -let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-12.js b/browser/devtools/shared/test/browser_graphs-12.js index 5cbd73aeb6d..36dee7fa464 100644 --- a/browser/devtools/shared/test/browser_graphs-12.js +++ b/browser/devtools/shared/test/browser_graphs-12.js @@ -3,7 +3,7 @@ // Tests that canvas graphs can have their selection linked. -let {LineGraphWidget, BarGraphWidget, CanvasGraphUtils} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget,BarGraphWidget,CanvasGraphUtils} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-13.js b/browser/devtools/shared/test/browser_graphs-13.js index b7b6b729d0c..38684d5c0d5 100644 --- a/browser/devtools/shared/test/browser_graphs-13.js +++ b/browser/devtools/shared/test/browser_graphs-13.js @@ -3,7 +3,7 @@ // Tests that graph widgets may have a fixed width or height. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-14.js b/browser/devtools/shared/test/browser_graphs-14.js index 613ee2a9af0..3ee8b7f13ef 100644 --- a/browser/devtools/shared/test/browser_graphs-14.js +++ b/browser/devtools/shared/test/browser_graphs-14.js @@ -4,7 +4,7 @@ // Tests that graph widgets correctly emit mouse input events. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-15.js b/browser/devtools/shared/test/browser_graphs-15.js index e54f533bb9c..399800ef7df 100644 --- a/browser/devtools/shared/test/browser_graphs-15.js +++ b/browser/devtools/shared/test/browser_graphs-15.js @@ -19,7 +19,7 @@ for (let frameRate of FRAMES) { } } -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/widgets/FlameGraph.js b/browser/devtools/shared/widgets/FlameGraph.js index dccd2f8569b..a912fe295d7 100644 --- a/browser/devtools/shared/widgets/FlameGraph.js +++ b/browser/devtools/shared/widgets/FlameGraph.js @@ -19,12 +19,12 @@ loader.lazyRequireGetter(this, "CATEGORY_MAPPINGS", loader.lazyRequireGetter(this, "FrameUtils", "devtools/performance/frame-utils"); -loader.lazyImporter(this, "AbstractCanvasGraph", - "resource:///modules/devtools/Graphs.jsm"); -loader.lazyImporter(this, "GraphArea", - "resource:///modules/devtools/Graphs.jsm"); -loader.lazyImporter(this, "GraphAreaDragger", - "resource:///modules/devtools/Graphs.jsm"); +loader.lazyRequireGetter(this, "AbstractCanvasGraph", + "devtools/shared/widgets/Graphs", true); +loader.lazyRequireGetter(this, "GraphArea", + "devtools/shared/widgets/Graphs", true); +loader.lazyRequireGetter(this, "GraphAreaDragger", + "devtools/shared/widgets/Graphs", true); const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; diff --git a/browser/devtools/shared/widgets/Graphs.jsm b/browser/devtools/shared/widgets/Graphs.js similarity index 98% rename from browser/devtools/shared/widgets/Graphs.jsm rename to browser/devtools/shared/widgets/Graphs.js index b065a0848fd..fd2f23d1638 100644 --- a/browser/devtools/shared/widgets/Graphs.jsm +++ b/browser/devtools/shared/widgets/Graphs.js @@ -3,29 +3,23 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; -const Cu = Components.utils; +const { Cc, Ci, Cu, Cr } = require("chrome"); -Cu.import("resource:///modules/devtools/ViewHelpers.jsm"); -const promise = Cu.import("resource://gre/modules/Promise.jsm", {}).Promise; -const {Task} = Cu.import("resource://gre/modules/Task.jsm", {}); -const {EventEmitter} = Cu.import("resource://gre/modules/devtools/event-emitter.js", {}); -const {DevToolsWorker} = Cu.import("resource://gre/modules/devtools/shared/worker.js", {}); -const {LayoutHelpers} = Cu.import("resource://gre/modules/devtools/LayoutHelpers.jsm", {}); +const { Task } = Cu.import("resource://gre/modules/Task.jsm", {}); +const { ViewHelpers } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { Heritage, setNamedTimeout, clearNamedTimeout } = require("resource:///modules/devtools/ViewHelpers.jsm"); -this.EXPORTED_SYMBOLS = [ - "GraphCursor", - "GraphArea", - "GraphAreaDragger", - "GraphAreaResizer", - "AbstractCanvasGraph", - "LineGraphWidget", - "BarGraphWidget", - "CanvasGraphUtils" -]; +loader.lazyRequireGetter(this, "promise"); +loader.lazyRequireGetter(this, "EventEmitter", + "devtools/toolkit/event-emitter"); + +loader.lazyImporter(this, "DevToolsWorker", + "resource://gre/modules/devtools/shared/worker.js"); const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; const WORKER_URL = "resource:///modules/devtools/GraphsWorker.js"; + const L10N = new ViewHelpers.L10N(); // Generic constants. @@ -2225,6 +2219,15 @@ function findFirst(array, predicate) { } } +exports.GraphCursor = GraphCursor; +exports.GraphArea = GraphArea; +exports.GraphAreaDragger = GraphAreaDragger; +exports.GraphAreaResizer = GraphAreaResizer; +exports.AbstractCanvasGraph = AbstractCanvasGraph; +exports.LineGraphWidget = LineGraphWidget; +exports.BarGraphWidget = BarGraphWidget; +exports.CanvasGraphUtils = CanvasGraphUtils; + /** * Finds the last element in an array that validates a predicate. * @param array diff --git a/browser/devtools/shared/widgets/GraphsWorker.js b/browser/devtools/shared/widgets/GraphsWorker.js index e63e6dc365c..5820651a33a 100644 --- a/browser/devtools/shared/widgets/GraphsWorker.js +++ b/browser/devtools/shared/widgets/GraphsWorker.js @@ -10,7 +10,7 @@ importScripts("resource://gre/modules/workers/require.js"); const { createTask } = require("resource://gre/modules/devtools/shared/worker-helper"); /** - * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.jsm + * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.js * @param number id * @param array timestamps * @param number interval diff --git a/browser/devtools/webaudioeditor/includes.js b/browser/devtools/webaudioeditor/includes.js index 2e6b8ece4ea..915ac85f789 100644 --- a/browser/devtools/webaudioeditor/includes.js +++ b/browser/devtools/webaudioeditor/includes.js @@ -23,8 +23,9 @@ const STRINGS_URI = "chrome://browser/locale/devtools/webaudioeditor.properties" const L10N = new ViewHelpers.L10N(STRINGS_URI); const Telemetry = require("devtools/shared/telemetry"); const telemetry = new Telemetry(); -devtools.lazyImporter(this, "LineGraphWidget", - "resource:///modules/devtools/Graphs.jsm"); + +devtools.lazyRequireGetter(this, "LineGraphWidget", + "devtools/shared/widgets/Graphs", true); // `AUDIO_NODE_DEFINITION` defined in the controller's initialization, // which describes all the properties of an AudioNode From 3687e06ac5e3ca5f3ee347a7a1c2e2e8c3c05382 Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Wed, 17 Jun 2015 09:54:47 -0700 Subject: [PATCH 04/34] No bug - Make robocop.apk debuggable. r=me --- build/mobile/robocop/AndroidManifest.xml.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build/mobile/robocop/AndroidManifest.xml.in b/build/mobile/robocop/AndroidManifest.xml.in index 914f4dd31f1..d925ffe6500 100644 --- a/build/mobile/robocop/AndroidManifest.xml.in +++ b/build/mobile/robocop/AndroidManifest.xml.in @@ -14,12 +14,16 @@ #endif android:targetSdkVersion="@ANDROID_TARGET_SDK@"/> + + + android:label="@string/app_name" + android:debuggable="true"> + From a8729ffd74bd86bd9c6b43df372114e6e4bc9aa5 Mon Sep 17 00:00:00 2001 From: Brian Grinstead Date: Wed, 17 Jun 2015 10:15:34 -0700 Subject: [PATCH 05/34] Bug 1175549 - Split current tracking protection test into 2 and move shared database functionality into head.js;r=MattN --- browser/base/content/test/general/browser.ini | 6 +- ..._trackingUI.js => browser_trackingUI_1.js} | 104 ++++++------------ .../test/general/browser_trackingUI_2.js | 46 ++++++++ browser/base/content/test/general/head.js | 49 +++++++++ browser/base/content/urlbarBindings.xml | 4 +- 5 files changed, 136 insertions(+), 73 deletions(-) rename browser/base/content/test/general/{browser_trackingUI.js => browser_trackingUI_1.js} (55%) create mode 100644 browser/base/content/test/general/browser_trackingUI_2.js diff --git a/browser/base/content/test/general/browser.ini b/browser/base/content/test/general/browser.ini index 698773898e7..8d7fa1a5dfc 100644 --- a/browser/base/content/test/general/browser.ini +++ b/browser/base/content/test/general/browser.ini @@ -418,7 +418,11 @@ skip-if = e10s # Bug 1100664 - test relies on linkedBrowser.docShell [browser_tabs_owner.js] [browser_testOpenNewRemoteTabsFromNonRemoteBrowsers.js] run-if = e10s -[browser_trackingUI.js] +[browser_trackingUI_1.js] +support-files = + trackingPage.html + benignPage.html +[browser_trackingUI_2.js] support-files = trackingPage.html benignPage.html diff --git a/browser/base/content/test/general/browser_trackingUI.js b/browser/base/content/test/general/browser_trackingUI_1.js similarity index 55% rename from browser/base/content/test/general/browser_trackingUI.js rename to browser/base/content/test/general/browser_trackingUI_1.js index f097f673489..00555c9c549 100644 --- a/browser/base/content/test/general/browser_trackingUI.js +++ b/browser/base/content/test/general/browser_trackingUI_1.js @@ -6,50 +6,8 @@ // and has the correct state when tracking content is blocked (Bug 1043801) var PREF = "privacy.trackingprotection.enabled"; -var TABLE = "urlclassifier.trackingTable"; - -// Update tracking database -function doUpdate() { - // Add some URLs to the tracking database (to be blocked) - var testData = "tracking.example.com/"; - var testUpdate = - "n:1000\ni:test-track-simple\nad:1\n" + - "a:524:32:" + testData.length + "\n" + - testData; - - var dbService = Cc["@mozilla.org/url-classifier/dbservice;1"] - .getService(Ci.nsIUrlClassifierDBService); - - let deferred = Promise.defer(); - - var listener = { - QueryInterface: function(iid) - { - if (iid.equals(Ci.nsISupports) || - iid.equals(Ci.nsIUrlClassifierUpdateObserver)) - return this; - - throw Cr.NS_ERROR_NO_INTERFACE; - }, - updateUrlRequested: function(url) { }, - streamFinished: function(status) { }, - updateError: function(errorCode) { - ok(false, "Couldn't update classifier."); - deferred.resolve(); - }, - updateSuccess: function(requestedTimeout) { - deferred.resolve(); - } - }; - - dbService.beginUpdate(listener, "test-track-simple", ""); - dbService.beginStream("", ""); - dbService.updateStream(testUpdate); - dbService.finishStream(); - dbService.finishUpdate(); - - return deferred.promise; -} +var BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html"; +var TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html"; function testBenignPage(gTestBrowser) { @@ -64,38 +22,43 @@ function* testTrackingPage(gTestBrowser) var notification = PopupNotifications.getNotification("bad-content", gTestBrowser); isnot(notification, null, "Tracking Content Doorhanger did appear when protection was ON and tracking was present"); notification.reshow(); + var notificationElement = PopupNotifications.panel.firstChild; // Wait for the method to be attached after showing the popup yield promiseWaitForCondition(() => { - return PopupNotifications.panel.firstChild.disableTrackingContentProtection; + return notificationElement.disableTrackingContentProtection; }); - // Make sure the state of the doorhanger includes blocking tracking elements - is(PopupNotifications.panel.firstChild.isTrackingContentBlocked, - Ci.nsIWebProgressListener.STATE_BLOCKED_TRACKING_CONTENT, + ok(notificationElement.isTrackingContentBlocked, "Tracking Content is being blocked"); // Make sure the notification has no trackingblockdisabled attribute - ok(!PopupNotifications.panel.firstChild.hasAttribute("trackingblockdisabled"), + ok(!notificationElement.hasAttribute("trackingblockdisabled"), "Doorhanger must have no trackingblockdisabled attribute"); - - // Disable Tracking Content Protection for the page (which reloads the page) - PopupNotifications.panel.firstChild.disableTrackingContentProtection(); } -function testTrackingPageWhitelisted(gTestBrowser) +function* testTrackingPageWhitelisted(gTestBrowser) { // Make sure the doorhanger appears var notification = PopupNotifications.getNotification("bad-content", gTestBrowser); isnot(notification, null, "Tracking Content Doorhanger did appear when protection was ON and tracking was present but white-listed"); notification.reshow(); + var notificationElement = PopupNotifications.panel.firstChild; + + // Wait for the method to be attached after showing the popup + yield promiseWaitForCondition(() => { + return notificationElement.disableTrackingContentProtection; + }); + + var notificationElement = PopupNotifications.panel.firstChild; + // Make sure the state of the doorhanger does NOT include blocking tracking elements - is(PopupNotifications.panel.firstChild.isTrackingContentBlocked, 0, + ok(!notificationElement.isTrackingContentBlocked, "Tracking Content is NOT being blocked"); // Make sure the notification has the trackingblockdisabled attribute set to true - is(PopupNotifications.panel.firstChild.getAttribute("trackingblockdisabled"), "true", + is(notificationElement.getAttribute("trackingblockdisabled"), "true", "Doorhanger must have [trackingblockdisabled='true'] attribute"); } @@ -116,13 +79,10 @@ function testBenignPageOFF(gTestBrowser) add_task(function* () { registerCleanupFunction(function() { Services.prefs.clearUserPref(PREF); - Services.prefs.clearUserPref(TABLE); gBrowser.removeCurrentTab(); }); - // Populate and use 'test-track-simple' for tracking protection lookups - Services.prefs.setCharPref(TABLE, "test-track-simple"); - yield doUpdate(); + yield updateTrackingProtectionDatabase(); let tab = gBrowser.selectedTab = gBrowser.addTab(); @@ -130,26 +90,30 @@ add_task(function* () { Services.prefs.setBoolPref(PREF, true); // Point tab to a test page NOT containing tracking elements - yield promiseTabLoadEvent(tab, "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html"); + yield promiseTabLoadEvent(tab, BENIGN_PAGE); testBenignPage(gBrowser.getBrowserForTab(tab)); // Point tab to a test page containing tracking elements - yield promiseTabLoadEvent(tab, "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html"); + yield promiseTabLoadEvent(tab, TRACKING_PAGE); + + // Tracking content must be blocked yield testTrackingPage(gBrowser.getBrowserForTab(tab)); + // Disable Tracking Content Protection for the page (which reloads the page) + PopupNotifications.panel.firstChild.disableTrackingContentProtection(); + // Wait for tab to reload following tracking-protection page white-listing yield promiseTabLoadEvent(tab); + // Tracking content must be white-listed (NOT blocked) - testTrackingPageWhitelisted(gBrowser.getBrowserForTab(tab)); + yield testTrackingPageWhitelisted(gBrowser.getBrowserForTab(tab)); - // Disable Tracking Protection - Services.prefs.setBoolPref(PREF, false); + // Re-enable Tracking Content Protection for the page (which reloads the page) + PopupNotifications.panel.firstChild.enableTrackingContentProtection(); - // Point tab to a test page containing tracking elements - yield promiseTabLoadEvent(tab, "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html"); - testTrackingPageOFF(gBrowser.getBrowserForTab(tab)); + // Wait for tab to reload following tracking-protection page white-listing + yield promiseTabLoadEvent(tab); - // Point tab to a test page NOT containing tracking elements - yield promiseTabLoadEvent(tab, "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html"); - testBenignPageOFF(gBrowser.getBrowserForTab(tab)); + // Tracking content must be blocked + yield testTrackingPage(gBrowser.getBrowserForTab(tab)); }); diff --git a/browser/base/content/test/general/browser_trackingUI_2.js b/browser/base/content/test/general/browser_trackingUI_2.js new file mode 100644 index 00000000000..a466bb9d4c5 --- /dev/null +++ b/browser/base/content/test/general/browser_trackingUI_2.js @@ -0,0 +1,46 @@ +/* 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/. */ + +// Test that the Tracking Protection Doorhanger does not ever appear +// when the feature is off (Bug 1043801) + +var PREF = "privacy.trackingprotection.enabled"; +var BENIGN_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/benignPage.html"; +var TRACKING_PAGE = "http://tracking.example.org/browser/browser/base/content/test/general/trackingPage.html"; + +function testTrackingPageOFF(gTestBrowser) +{ + // Make sure the doorhanger does NOT appear + var notification = PopupNotifications.getNotification("bad-content", gTestBrowser); + is(notification, null, "Tracking Content Doorhanger did NOT appear when protection was OFF and tracking was present"); +} + +function testBenignPageOFF(gTestBrowser) +{ + // Make sure the doorhanger does NOT appear + var notification = PopupNotifications.getNotification("bad-content", gTestBrowser); + is(notification, null, "Tracking Content Doorhanger did NOT appear when protection was OFF and tracking was NOT present"); +} + +add_task(function* () { + registerCleanupFunction(function() { + Services.prefs.clearUserPref(PREF); + gBrowser.removeCurrentTab(); + }); + + yield updateTrackingProtectionDatabase(); + + let tab = gBrowser.selectedTab = gBrowser.addTab(); + + // Disable Tracking Protection + Services.prefs.setBoolPref(PREF, false); + + // Point tab to a test page containing tracking elements + yield promiseTabLoadEvent(tab, TRACKING_PAGE); + testTrackingPageOFF(gBrowser.getBrowserForTab(tab)); + + // Point tab to a test page NOT containing tracking elements + yield promiseTabLoadEvent(tab, BENIGN_PAGE); + testBenignPageOFF(gBrowser.getBrowserForTab(tab)); +}); diff --git a/browser/base/content/test/general/head.js b/browser/base/content/test/general/head.js index 44cdd5137cc..bc795b5693a 100644 --- a/browser/base/content/test/general/head.js +++ b/browser/base/content/test/general/head.js @@ -660,6 +660,55 @@ function promiseIndicatorWindow() { return promiseWindow("chrome://browser/content/webrtcIndicator.xul"); } +/** + * Add some entries to a test tracking protection database, and reset + * back to the default database after the test ends. + */ +function updateTrackingProtectionDatabase() { + let TABLE = "urlclassifier.trackingTable"; + Services.prefs.setCharPref(TABLE, "test-track-simple"); + + registerCleanupFunction(function() { + Services.prefs.clearUserPref(TABLE); + }); + + // Add some URLs to the tracking database (to be blocked) + let testData = "tracking.example.com/"; + let testUpdate = + "n:1000\ni:test-track-simple\nad:1\n" + + "a:524:32:" + testData.length + "\n" + + testData; + + return new Promise((resolve, reject) => { + let dbService = Cc["@mozilla.org/url-classifier/dbservice;1"] + .getService(Ci.nsIUrlClassifierDBService); + let listener = { + QueryInterface: iid => { + if (iid.equals(Ci.nsISupports) || + iid.equals(Ci.nsIUrlClassifierUpdateObserver)) + return listener; + + throw Cr.NS_ERROR_NO_INTERFACE; + }, + updateUrlRequested: url => { }, + streamFinished: status => { }, + updateError: errorCode => { + ok(false, "Couldn't update classifier."); + resolve(); + }, + updateSuccess: requestedTimeout => { + resolve(); + } + }; + + dbService.beginUpdate(listener, "test-track-simple", ""); + dbService.beginStream("", ""); + dbService.updateStream(testUpdate); + dbService.finishStream(); + dbService.finishUpdate(); + }); +} + function assertWebRTCIndicatorStatus(expected) { let ui = Cu.import("resource:///modules/webrtcUI.jsm", {}).webrtcUI; let expectedState = expected ? "visible" : "hidden"; diff --git a/browser/base/content/urlbarBindings.xml b/browser/base/content/urlbarBindings.xml index 2d2fed10c83..563b6bce3e1 100644 --- a/browser/base/content/urlbarBindings.xml +++ b/browser/base/content/urlbarBindings.xml @@ -2302,8 +2302,8 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/. Date: Wed, 17 Jun 2015 14:41:29 -0400 Subject: [PATCH 06/34] Backed out changeset ff46473241e4 (bug 1169135) for browser_graphs-07c.js failures. CLOSED TREE --- .../performance/modules/widgets/graphs.js | 8 ++-- .../modules/widgets/markers-overview.js | 2 +- .../devtools/performance/views/overview.js | 2 +- browser/devtools/shared/moz.build | 2 +- .../devtools/shared/test/browser_graphs-01.js | 2 +- .../devtools/shared/test/browser_graphs-02.js | 2 +- .../devtools/shared/test/browser_graphs-03.js | 2 +- .../devtools/shared/test/browser_graphs-04.js | 2 +- .../devtools/shared/test/browser_graphs-05.js | 2 +- .../devtools/shared/test/browser_graphs-06.js | 2 +- .../shared/test/browser_graphs-07a.js | 2 +- .../shared/test/browser_graphs-07b.js | 2 +- .../shared/test/browser_graphs-07c.js | 2 +- .../shared/test/browser_graphs-07d.js | 2 +- .../devtools/shared/test/browser_graphs-08.js | 2 +- .../shared/test/browser_graphs-09a.js | 2 +- .../shared/test/browser_graphs-09b.js | 2 +- .../shared/test/browser_graphs-09c.js | 2 +- .../shared/test/browser_graphs-09d.js | 2 +- .../shared/test/browser_graphs-09e.js | 2 +- .../shared/test/browser_graphs-09f.js | 2 +- .../shared/test/browser_graphs-10a.js | 2 +- .../shared/test/browser_graphs-10b.js | 2 +- .../shared/test/browser_graphs-10c.js | 2 +- .../shared/test/browser_graphs-11a.js | 2 +- .../shared/test/browser_graphs-11b.js | 2 +- .../devtools/shared/test/browser_graphs-12.js | 2 +- .../devtools/shared/test/browser_graphs-13.js | 2 +- .../devtools/shared/test/browser_graphs-14.js | 2 +- .../devtools/shared/test/browser_graphs-15.js | 2 +- browser/devtools/shared/widgets/FlameGraph.js | 12 +++--- .../shared/widgets/{Graphs.js => Graphs.jsm} | 37 +++++++++---------- .../devtools/shared/widgets/GraphsWorker.js | 2 +- browser/devtools/webaudioeditor/includes.js | 5 +-- 34 files changed, 59 insertions(+), 63 deletions(-) rename browser/devtools/shared/widgets/{Graphs.js => Graphs.jsm} (98%) diff --git a/browser/devtools/performance/modules/widgets/graphs.js b/browser/devtools/performance/modules/widgets/graphs.js index db2c07d04f0..bb5b50b126f 100644 --- a/browser/devtools/performance/modules/widgets/graphs.js +++ b/browser/devtools/performance/modules/widgets/graphs.js @@ -9,10 +9,10 @@ const { Cc, Ci, Cu, Cr } = require("chrome"); const { Task } = require("resource://gre/modules/Task.jsm"); +const { LineGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); +const { BarGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); +const { CanvasGraphUtils } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); -const { LineGraphWidget } = require("devtools/shared/widgets/Graphs"); -const { BarGraphWidget } = require("devtools/shared/widgets/Graphs"); -const { CanvasGraphUtils } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "promise"); loader.lazyRequireGetter(this, "EventEmitter", @@ -325,7 +325,7 @@ GraphsController.prototype = { /** * Fetches the currently mapped selection. If graphs are not yet rendered, - * (which throws in Graphs.js), return null. + * (which throws in Graphs.jsm), return null. */ getMappedSelection: function ({ mapStart, mapEnd }) { let primary = this._getPrimaryLink(); diff --git a/browser/devtools/performance/modules/widgets/markers-overview.js b/browser/devtools/performance/modules/widgets/markers-overview.js index 1659ffc3d5a..53bfbf2ad1b 100644 --- a/browser/devtools/performance/modules/widgets/markers-overview.js +++ b/browser/devtools/performance/modules/widgets/markers-overview.js @@ -10,8 +10,8 @@ */ const { Cc, Ci, Cu, Cr } = require("chrome"); +const { AbstractCanvasGraph } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); -const { AbstractCanvasGraph } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "colorUtils", "devtools/css-color", true); diff --git a/browser/devtools/performance/views/overview.js b/browser/devtools/performance/views/overview.js index f8b3b2378cc..5f017f7e008 100644 --- a/browser/devtools/performance/views/overview.js +++ b/browser/devtools/performance/views/overview.js @@ -178,7 +178,7 @@ let OverviewView = { * Method for handling all the set up for rendering the overview graphs. * * @param number resolution - * The fps graph resolution. @see Graphs.js + * The fps graph resolution. @see Graphs.jsm */ render: Task.async(function *(resolution) { if (this.isDisabled()) { diff --git a/browser/devtools/shared/moz.build b/browser/devtools/shared/moz.build index cbc9139b637..ac002b6b3f2 100644 --- a/browser/devtools/shared/moz.build +++ b/browser/devtools/shared/moz.build @@ -21,6 +21,7 @@ EXTRA_JS_MODULES.devtools += [ 'widgets/AbstractTreeItem.jsm', 'widgets/BreadcrumbsWidget.jsm', 'widgets/Chart.jsm', + 'widgets/Graphs.jsm', 'widgets/GraphsWorker.js', 'widgets/SideMenuWidget.jsm', 'widgets/SimpleListWidget.jsm', @@ -53,7 +54,6 @@ EXTRA_JS_MODULES.devtools.shared.widgets += [ 'widgets/FastListWidget.js', 'widgets/FilterWidget.js', 'widgets/FlameGraph.js', - 'widgets/Graphs.js', 'widgets/MdnDocsWidget.js', 'widgets/Spectrum.js', 'widgets/TableWidget.js', diff --git a/browser/devtools/shared/test/browser_graphs-01.js b/browser/devtools/shared/test/browser_graphs-01.js index 2a55222b065..f9cf66cde03 100644 --- a/browser/devtools/shared/test/browser_graphs-01.js +++ b/browser/devtools/shared/test/browser_graphs-01.js @@ -3,7 +3,7 @@ // Tests that graph widgets works properly. -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-02.js b/browser/devtools/shared/test/browser_graphs-02.js index 9a97e706c38..5c56ac93bc5 100644 --- a/browser/devtools/shared/test/browser_graphs-02.js +++ b/browser/devtools/shared/test/browser_graphs-02.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-03.js b/browser/devtools/shared/test/browser_graphs-03.js index 37c72e8d759..6aa6b8aae1a 100644 --- a/browser/devtools/shared/test/browser_graphs-03.js +++ b/browser/devtools/shared/test/browser_graphs-03.js @@ -4,7 +4,7 @@ // Tests that graph widgets can handle clients getting/setting the // selection or cursor. -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-04.js b/browser/devtools/shared/test/browser_graphs-04.js index 277f1c847aa..c75cf3c1852 100644 --- a/browser/devtools/shared/test/browser_graphs-04.js +++ b/browser/devtools/shared/test/browser_graphs-04.js @@ -3,7 +3,7 @@ // Tests that graph widgets can correctly compare selections and cursors. -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-05.js b/browser/devtools/shared/test/browser_graphs-05.js index ef10c25121a..15d9c48c994 100644 --- a/browser/devtools/shared/test/browser_graphs-05.js +++ b/browser/devtools/shared/test/browser_graphs-05.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-06.js b/browser/devtools/shared/test/browser_graphs-06.js index 2c99e4edc54..f102b6b3e5d 100644 --- a/browser/devtools/shared/test/browser_graphs-06.js +++ b/browser/devtools/shared/test/browser_graphs-06.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07a.js b/browser/devtools/shared/test/browser_graphs-07a.js index 7716af4505c..8aeed71714d 100644 --- a/browser/devtools/shared/test/browser_graphs-07a.js +++ b/browser/devtools/shared/test/browser_graphs-07a.js @@ -4,7 +4,7 @@ // Tests if selecting, resizing, moving selections and zooming in/out works. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07b.js b/browser/devtools/shared/test/browser_graphs-07b.js index 03d84d44e7f..1af18be88e0 100644 --- a/browser/devtools/shared/test/browser_graphs-07b.js +++ b/browser/devtools/shared/test/browser_graphs-07b.js @@ -4,7 +4,7 @@ // Tests if selections can't be added via clicking, while not allowed. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07c.js b/browser/devtools/shared/test/browser_graphs-07c.js index a1457124a9c..17ec16947ef 100644 --- a/browser/devtools/shared/test/browser_graphs-07c.js +++ b/browser/devtools/shared/test/browser_graphs-07c.js @@ -6,7 +6,7 @@ // callbacks with textX / testY for convenience. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07d.js b/browser/devtools/shared/test/browser_graphs-07d.js index a36cb6fb811..90b3203ef33 100644 --- a/browser/devtools/shared/test/browser_graphs-07d.js +++ b/browser/devtools/shared/test/browser_graphs-07d.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-08.js b/browser/devtools/shared/test/browser_graphs-08.js index deea4c45c89..43c79061647 100644 --- a/browser/devtools/shared/test/browser_graphs-08.js +++ b/browser/devtools/shared/test/browser_graphs-08.js @@ -4,7 +4,7 @@ // Tests if a selection is dropped when clicking outside of it. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09a.js b/browser/devtools/shared/test/browser_graphs-09a.js index b118dd37e2b..3325139a5fe 100644 --- a/browser/devtools/shared/test/browser_graphs-09a.js +++ b/browser/devtools/shared/test/browser_graphs-09a.js @@ -4,7 +4,7 @@ // Tests that line graphs properly create the gutter and tooltips. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09b.js b/browser/devtools/shared/test/browser_graphs-09b.js index 7f2dcf78f99..d5171ccd465 100644 --- a/browser/devtools/shared/test/browser_graphs-09b.js +++ b/browser/devtools/shared/test/browser_graphs-09b.js @@ -4,7 +4,7 @@ // Tests that line graphs properly use the tooltips configuration properties. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09c.js b/browser/devtools/shared/test/browser_graphs-09c.js index aa0289f7686..7007f516b6d 100644 --- a/browser/devtools/shared/test/browser_graphs-09c.js +++ b/browser/devtools/shared/test/browser_graphs-09c.js @@ -4,7 +4,7 @@ // Tests that line graphs hide the tooltips when there's no data available. const TEST_DATA = []; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09d.js b/browser/devtools/shared/test/browser_graphs-09d.js index 339bf22619f..6138b91f538 100644 --- a/browser/devtools/shared/test/browser_graphs-09d.js +++ b/browser/devtools/shared/test/browser_graphs-09d.js @@ -5,7 +5,7 @@ // the 'min' and 'max' tooltip is too small. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 59.9 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09e.js b/browser/devtools/shared/test/browser_graphs-09e.js index 8e261deeb35..afa7a9065ff 100644 --- a/browser/devtools/shared/test/browser_graphs-09e.js +++ b/browser/devtools/shared/test/browser_graphs-09e.js @@ -7,7 +7,7 @@ const NO_DATA = []; const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09f.js b/browser/devtools/shared/test/browser_graphs-09f.js index 1851cf918c1..10723acc35b 100644 --- a/browser/devtools/shared/test/browser_graphs-09f.js +++ b/browser/devtools/shared/test/browser_graphs-09f.js @@ -5,7 +5,7 @@ // gutter/tooltips and lines. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 1 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10a.js b/browser/devtools/shared/test/browser_graphs-10a.js index 429ed244652..d371ea8d2fd 100644 --- a/browser/devtools/shared/test/browser_graphs-10a.js +++ b/browser/devtools/shared/test/browser_graphs-10a.js @@ -4,7 +4,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10b.js b/browser/devtools/shared/test/browser_graphs-10b.js index 7997bec9cff..2796765b278 100644 --- a/browser/devtools/shared/test/browser_graphs-10b.js +++ b/browser/devtools/shared/test/browser_graphs-10b.js @@ -5,7 +5,7 @@ // the graph dimensions stay the same. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10c.js b/browser/devtools/shared/test/browser_graphs-10c.js index 6d847344659..e802f6c1462 100644 --- a/browser/devtools/shared/test/browser_graphs-10c.js +++ b/browser/devtools/shared/test/browser_graphs-10c.js @@ -2,7 +2,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-11a.js b/browser/devtools/shared/test/browser_graphs-11a.js index ef8ce6f7433..cb07d91f0f6 100644 --- a/browser/devtools/shared/test/browser_graphs-11a.js +++ b/browser/devtools/shared/test/browser_graphs-11a.js @@ -3,7 +3,7 @@ // Tests that bar graph create a legend as expected. -let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-11b.js b/browser/devtools/shared/test/browser_graphs-11b.js index 30656ddee2c..509026592d2 100644 --- a/browser/devtools/shared/test/browser_graphs-11b.js +++ b/browser/devtools/shared/test/browser_graphs-11b.js @@ -3,7 +3,7 @@ // Tests that bar graph's legend items handle mouseover/mouseout. -let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-12.js b/browser/devtools/shared/test/browser_graphs-12.js index 36dee7fa464..5cbd73aeb6d 100644 --- a/browser/devtools/shared/test/browser_graphs-12.js +++ b/browser/devtools/shared/test/browser_graphs-12.js @@ -3,7 +3,7 @@ // Tests that canvas graphs can have their selection linked. -let {LineGraphWidget,BarGraphWidget,CanvasGraphUtils} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget, BarGraphWidget, CanvasGraphUtils} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-13.js b/browser/devtools/shared/test/browser_graphs-13.js index 38684d5c0d5..b7b6b729d0c 100644 --- a/browser/devtools/shared/test/browser_graphs-13.js +++ b/browser/devtools/shared/test/browser_graphs-13.js @@ -3,7 +3,7 @@ // Tests that graph widgets may have a fixed width or height. -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-14.js b/browser/devtools/shared/test/browser_graphs-14.js index 3ee8b7f13ef..613ee2a9af0 100644 --- a/browser/devtools/shared/test/browser_graphs-14.js +++ b/browser/devtools/shared/test/browser_graphs-14.js @@ -4,7 +4,7 @@ // Tests that graph widgets correctly emit mouse input events. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-15.js b/browser/devtools/shared/test/browser_graphs-15.js index 399800ef7df..e54f533bb9c 100644 --- a/browser/devtools/shared/test/browser_graphs-15.js +++ b/browser/devtools/shared/test/browser_graphs-15.js @@ -19,7 +19,7 @@ for (let frameRate of FRAMES) { } } -let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); +let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/widgets/FlameGraph.js b/browser/devtools/shared/widgets/FlameGraph.js index a912fe295d7..dccd2f8569b 100644 --- a/browser/devtools/shared/widgets/FlameGraph.js +++ b/browser/devtools/shared/widgets/FlameGraph.js @@ -19,12 +19,12 @@ loader.lazyRequireGetter(this, "CATEGORY_MAPPINGS", loader.lazyRequireGetter(this, "FrameUtils", "devtools/performance/frame-utils"); -loader.lazyRequireGetter(this, "AbstractCanvasGraph", - "devtools/shared/widgets/Graphs", true); -loader.lazyRequireGetter(this, "GraphArea", - "devtools/shared/widgets/Graphs", true); -loader.lazyRequireGetter(this, "GraphAreaDragger", - "devtools/shared/widgets/Graphs", true); +loader.lazyImporter(this, "AbstractCanvasGraph", + "resource:///modules/devtools/Graphs.jsm"); +loader.lazyImporter(this, "GraphArea", + "resource:///modules/devtools/Graphs.jsm"); +loader.lazyImporter(this, "GraphAreaDragger", + "resource:///modules/devtools/Graphs.jsm"); const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; diff --git a/browser/devtools/shared/widgets/Graphs.js b/browser/devtools/shared/widgets/Graphs.jsm similarity index 98% rename from browser/devtools/shared/widgets/Graphs.js rename to browser/devtools/shared/widgets/Graphs.jsm index fd2f23d1638..b065a0848fd 100644 --- a/browser/devtools/shared/widgets/Graphs.js +++ b/browser/devtools/shared/widgets/Graphs.jsm @@ -3,23 +3,29 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; -const { Cc, Ci, Cu, Cr } = require("chrome"); +const Cu = Components.utils; -const { Task } = Cu.import("resource://gre/modules/Task.jsm", {}); -const { ViewHelpers } = require("resource:///modules/devtools/ViewHelpers.jsm"); -const { Heritage, setNamedTimeout, clearNamedTimeout } = require("resource:///modules/devtools/ViewHelpers.jsm"); +Cu.import("resource:///modules/devtools/ViewHelpers.jsm"); +const promise = Cu.import("resource://gre/modules/Promise.jsm", {}).Promise; +const {Task} = Cu.import("resource://gre/modules/Task.jsm", {}); +const {EventEmitter} = Cu.import("resource://gre/modules/devtools/event-emitter.js", {}); +const {DevToolsWorker} = Cu.import("resource://gre/modules/devtools/shared/worker.js", {}); +const {LayoutHelpers} = Cu.import("resource://gre/modules/devtools/LayoutHelpers.jsm", {}); -loader.lazyRequireGetter(this, "promise"); -loader.lazyRequireGetter(this, "EventEmitter", - "devtools/toolkit/event-emitter"); - -loader.lazyImporter(this, "DevToolsWorker", - "resource://gre/modules/devtools/shared/worker.js"); +this.EXPORTED_SYMBOLS = [ + "GraphCursor", + "GraphArea", + "GraphAreaDragger", + "GraphAreaResizer", + "AbstractCanvasGraph", + "LineGraphWidget", + "BarGraphWidget", + "CanvasGraphUtils" +]; const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; const WORKER_URL = "resource:///modules/devtools/GraphsWorker.js"; - const L10N = new ViewHelpers.L10N(); // Generic constants. @@ -2219,15 +2225,6 @@ function findFirst(array, predicate) { } } -exports.GraphCursor = GraphCursor; -exports.GraphArea = GraphArea; -exports.GraphAreaDragger = GraphAreaDragger; -exports.GraphAreaResizer = GraphAreaResizer; -exports.AbstractCanvasGraph = AbstractCanvasGraph; -exports.LineGraphWidget = LineGraphWidget; -exports.BarGraphWidget = BarGraphWidget; -exports.CanvasGraphUtils = CanvasGraphUtils; - /** * Finds the last element in an array that validates a predicate. * @param array diff --git a/browser/devtools/shared/widgets/GraphsWorker.js b/browser/devtools/shared/widgets/GraphsWorker.js index 5820651a33a..e63e6dc365c 100644 --- a/browser/devtools/shared/widgets/GraphsWorker.js +++ b/browser/devtools/shared/widgets/GraphsWorker.js @@ -10,7 +10,7 @@ importScripts("resource://gre/modules/workers/require.js"); const { createTask } = require("resource://gre/modules/devtools/shared/worker-helper"); /** - * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.js + * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.jsm * @param number id * @param array timestamps * @param number interval diff --git a/browser/devtools/webaudioeditor/includes.js b/browser/devtools/webaudioeditor/includes.js index 915ac85f789..2e6b8ece4ea 100644 --- a/browser/devtools/webaudioeditor/includes.js +++ b/browser/devtools/webaudioeditor/includes.js @@ -23,9 +23,8 @@ const STRINGS_URI = "chrome://browser/locale/devtools/webaudioeditor.properties" const L10N = new ViewHelpers.L10N(STRINGS_URI); const Telemetry = require("devtools/shared/telemetry"); const telemetry = new Telemetry(); - -devtools.lazyRequireGetter(this, "LineGraphWidget", - "devtools/shared/widgets/Graphs", true); +devtools.lazyImporter(this, "LineGraphWidget", + "resource:///modules/devtools/Graphs.jsm"); // `AUDIO_NODE_DEFINITION` defined in the controller's initialization, // which describes all the properties of an AudioNode From 6713e88f9c402da87ada5e658325a213ad1628c7 Mon Sep 17 00:00:00 2001 From: Dan Mosedale Date: Wed, 17 Jun 2015 11:50:45 -0700 Subject: [PATCH 07/34] Bug 1173909-Give loop showcase FramedExamples dashed borders and CSS style exclusion --- browser/components/loop/ui/index.html | 9 ++- .../loop/ui/react-frame-component.js | 44 +++++++++--- browser/components/loop/ui/ui-showcase.css | 4 +- browser/components/loop/ui/ui-showcase.js | 68 ++++++++++++------- browser/components/loop/ui/ui-showcase.jsx | 62 +++++++++++------ 5 files changed, 130 insertions(+), 57 deletions(-) diff --git a/browser/components/loop/ui/index.html b/browser/components/loop/ui/index.html index 3cbf2950767..ee647666d6c 100644 --- a/browser/components/loop/ui/index.html +++ b/browser/components/loop/ui/index.html @@ -9,9 +9,12 @@ - - - + + + diff --git a/browser/components/loop/ui/react-frame-component.js b/browser/components/loop/ui/react-frame-component.js index 969f3456989..1f86b40edc0 100644 --- a/browser/components/loop/ui/react-frame-component.js +++ b/browser/components/loop/ui/react-frame-component.js @@ -29,31 +29,55 @@ window.Frame = React.createClass({ head: React.PropTypes.node, width: React.PropTypes.number, height: React.PropTypes.number, - onContentsRendered: React.PropTypes.func + onContentsRendered: React.PropTypes.func, + className: React.PropTypes.string, + /* By default, section .comp.dashed { +.showcase > section .comp.dashed, +.showcase > section .comp > iframe.dashed +{ border: 1px dashed #ccc; } diff --git a/browser/components/loop/ui/ui-showcase.js b/browser/components/loop/ui/ui-showcase.js index 0ae0f5186e2..68896a31fda 100644 --- a/browser/components/loop/ui/ui-showcase.js +++ b/browser/components/loop/ui/ui-showcase.js @@ -100,9 +100,9 @@ * @returns {loop.store.ActiveRoomStore} */ function makeActiveRoomStore(options) { - var dispatcher = new loop.Dispatcher(); + var roomDispatcher = new loop.Dispatcher(); - var store = new loop.store.ActiveRoomStore(dispatcher, { + var store = new loop.store.ActiveRoomStore(roomDispatcher, { mozLoop: navigator.mozLoop, sdkDriver: mockSDK }); @@ -370,7 +370,9 @@ propTypes: { width: React.PropTypes.number, height: React.PropTypes.number, - onContentsRendered: React.PropTypes.func + onContentsRendered: React.PropTypes.func, + dashed: React.PropTypes.bool, + cssClass: React.PropTypes.string }, makeId: function(prefix) { @@ -378,6 +380,15 @@ }, render: function() { + var height = this.props.height; + var width = this.props.width; + + // make room for a 1-pixel border on each edge + if (this.props.dashed) { + height += 2; + width += 2; + } + var cx = React.addons.classSet; return ( React.createElement("div", {className: "example"}, @@ -385,10 +396,11 @@ this.props.summary, React.createElement("a", {href: this.makeId("#")}, " ¶") ), - React.createElement("div", {className: cx({comp: true, dashed: this.props.dashed}), - style: this.props.style}, - React.createElement(Frame, {width: this.props.width, height: this.props.height, - onContentsRendered: this.props.onContentsRendered}, + React.createElement("div", {className: "comp"}, + React.createElement(Frame, {width: width, height: height, + onContentsRendered: this.props.onContentsRendered, + className: cx({dashed: this.props.dashed}), + cssClass: this.props.cssClass}, this.props.children ) ) @@ -815,8 +827,9 @@ ), React.createElement(Section, {name: "StandaloneRoomView"}, - React.createElement(FramedExample, {width: 644, height: 483, - summary: "Standalone room conversation (ready)"}, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", + summary: "Standalone room conversation (ready)"}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { dispatcher: dispatcher, @@ -826,8 +839,9 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, summary: "Standalone room conversation (joined)", + cssClass: "standalone", onContentsRendered: joinedRoomStore.forcedUpdate}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { @@ -838,7 +852,8 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", onContentsRendered: updatingActiveRoomStore.forcedUpdate, summary: "Standalone room conversation (has-participants, 644x483)"}, React.createElement("div", {className: "standalone"}, @@ -852,7 +867,8 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", onContentsRendered: localFaceMuteRoomStore.forcedUpdate, summary: "Standalone room conversation (local face mute, has-participants, 644x483)"}, React.createElement("div", {className: "standalone"}, @@ -865,7 +881,8 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", onContentsRendered: remoteFaceMuteRoomStore.forcedUpdate, summary: "Standalone room conversation (remote face mute, has-participants, 644x483)"}, React.createElement("div", {className: "standalone"}, @@ -878,7 +895,8 @@ ) ), - React.createElement(FramedExample, {width: 800, height: 660, + React.createElement(FramedExample, {width: 800, height: 660, dashed: true, + cssClass: "standalone", onContentsRendered: updatingSharingRoomStore.forcedUpdate, summary: "Standalone room convo (has-participants, receivingScreenShare, 800x660)"}, React.createElement("div", {className: "standalone"}, @@ -894,7 +912,8 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", summary: "Standalone room conversation (full - FFx user)"}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { @@ -904,8 +923,9 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, - summary: "Standalone room conversation (full - non FFx user)"}, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", + summary: "Standalone room conversation (full - non FFx user)"}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { dispatcher: dispatcher, @@ -914,8 +934,9 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, - summary: "Standalone room conversation (feedback)"}, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", + summary: "Standalone room conversation (feedback)"}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { dispatcher: dispatcher, @@ -925,7 +946,8 @@ ) ), - React.createElement(FramedExample, {width: 644, height: 483, + React.createElement(FramedExample, {width: 644, height: 483, dashed: true, + cssClass: "standalone", summary: "Standalone room conversation (failed)"}, React.createElement("div", {className: "standalone"}, React.createElement(StandaloneRoomView, { @@ -937,7 +959,7 @@ ), React.createElement(Section, {name: "StandaloneRoomView (Mobile)"}, - React.createElement(FramedExample, {width: 600, height: 480, + React.createElement(FramedExample, {width: 600, height: 480, cssClass: "standalone", onContentsRendered: updatingActiveRoomStore.forcedUpdate, summary: "Standalone room conversation (has-participants, 600x480)"}, React.createElement("div", {className: "standalone"}, @@ -953,7 +975,7 @@ ), React.createElement(Section, {name: "TextChatView (standalone)"}, - React.createElement(FramedExample, {width: 200, height: 400, + React.createElement(FramedExample, {width: 200, height: 400, cssClass: "standalone", summary: "Standalone Text Chat conversation (200 x 400)"}, React.createElement("div", {className: "standalone text-chat-example"}, React.createElement(TextChatView, { @@ -995,7 +1017,7 @@ // Wait until all the FramedExamples have been fully loaded. setTimeout(function waitForQueuedFrames() { - if (window.queuedFrames.length != 0) { + if (window.queuedFrames.length !== 0) { setTimeout(waitForQueuedFrames, 500); return; } diff --git a/browser/components/loop/ui/ui-showcase.jsx b/browser/components/loop/ui/ui-showcase.jsx index ec57628f317..a5216b73e7d 100644 --- a/browser/components/loop/ui/ui-showcase.jsx +++ b/browser/components/loop/ui/ui-showcase.jsx @@ -370,7 +370,9 @@ propTypes: { width: React.PropTypes.number, height: React.PropTypes.number, - onContentsRendered: React.PropTypes.func + onContentsRendered: React.PropTypes.func, + dashed: React.PropTypes.bool, + cssClass: React.PropTypes.string }, makeId: function(prefix) { @@ -378,6 +380,15 @@ }, render: function() { + var height = this.props.height; + var width = this.props.width; + + // make room for a 1-pixel border on each edge + if (this.props.dashed) { + height += 2; + width += 2; + } + var cx = React.addons.classSet; return (
@@ -385,10 +396,11 @@ {this.props.summary}  ¶ -
- +
+ {this.props.children}
@@ -815,8 +827,9 @@
- +
-
-
@@ -852,7 +867,8 @@
-
@@ -865,7 +881,8 @@
-
@@ -878,7 +895,8 @@
-
@@ -894,7 +912,8 @@
-
- +
- +
-
-
@@ -953,7 +975,7 @@
-
Date: Wed, 17 Jun 2015 11:59:15 -0700 Subject: [PATCH 08/34] Bug 1175306 fix metadata url for hello and share, r=markh --- browser/base/content/test/general/browser.ini | 1 + .../general/browser_PageMetaData_pushstate.js | 32 +++++++++++++++++++ toolkit/modules/PageMetadata.jsm | 15 +++++++++ 3 files changed, 48 insertions(+) create mode 100644 browser/base/content/test/general/browser_PageMetaData_pushstate.js diff --git a/browser/base/content/test/general/browser.ini b/browser/base/content/test/general/browser.ini index 8d7fa1a5dfc..942739a8323 100644 --- a/browser/base/content/test/general/browser.ini +++ b/browser/base/content/test/general/browser.ini @@ -351,6 +351,7 @@ skip-if = buildapp == 'mulet' || e10s # Bug 1101973 - breaks the next test in e1 skip-if = buildapp == 'mulet' [browser_private_no_prompt.js] skip-if = buildapp == 'mulet' +[browser_PageMetaData_pushstate.js] [browser_relatedTabs.js] [browser_remoteTroubleshoot.js] support-files = diff --git a/browser/base/content/test/general/browser_PageMetaData_pushstate.js b/browser/base/content/test/general/browser_PageMetaData_pushstate.js new file mode 100644 index 00000000000..9e21fa2603e --- /dev/null +++ b/browser/base/content/test/general/browser_PageMetaData_pushstate.js @@ -0,0 +1,32 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +add_task(function* () { + let rooturi = "https://example.com/browser/toolkit/modules/tests/browser/"; + yield BrowserTestUtils.openNewForegroundTab(gBrowser, rooturi + "metadata_simple.html"); + let result = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () { + return PageMetadata.getData(content.document); + }); + // result should have description + is(result.url, rooturi + "metadata_simple.html", "metadata url is correct"); + is(result.title, "Test Title", "metadata title is correct"); + is(result.description, "A very simple test page", "description is correct"); + + result = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () { + content.history.pushState({}, "2", "2.html"); + return PageMetadata.getData(content.document); + }); + // result should not have description + is(result.url, rooturi + "2.html", "metadata url is correct"); + is(result.title, "Test Title", "metadata title is correct"); + ok(!result.description, "description is undefined"); + + let documentURI = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () { + return content.document.documentURI; + }); + is(gBrowser.currentURI.spec, rooturi + "2.html", "gBrowser has correct url"); + is(documentURI, rooturi + "2.html", "content.document has correct url"); + + gBrowser.removeTab(gBrowser.selectedTab); +}); diff --git a/toolkit/modules/PageMetadata.jsm b/toolkit/modules/PageMetadata.jsm index b1da109c8e4..901b6d35310 100644 --- a/toolkit/modules/PageMetadata.jsm +++ b/toolkit/modules/PageMetadata.jsm @@ -50,6 +50,21 @@ this.PageMetadata = { previews: [], }; + // if pushState was used to change the url, most likely all meta data is + // invalid. This is the case with several major sites that rely on + // pushState. In that case, we'll only return uri and title. If document is + // via XHR or something, there is no view or history. + if (document.defaultView) { + let docshell = document.defaultView.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsIDocShell); + let shentry = {}; + if (docshell.getCurrentSHEntry(shentry) && + shentry.value && shentry.value.URIWasModified) { + return result; + } + } + this._getMetaData(document, result); this._getLinkData(document, result); this._getPageData(document, result); From 7103aa38a0075092e8788e66471a2f1a1c32c8d8 Mon Sep 17 00:00:00 2001 From: Ursula Date: Mon, 15 Jun 2015 15:36:43 -0400 Subject: [PATCH 09/34] Bug 1168589 - Convert newtab-customize-panel into an HTML element. r=mconley, feedback=emtwo. --- browser/base/content/newtab/customize.js | 133 ++++++++++++++--------- browser/base/content/newtab/newTab.css | 41 ++++++- browser/base/content/newtab/newTab.xul | 50 +++++---- browser/base/content/test/newtab/head.js | 46 +++++--- browser/components/nsBrowserGlue.js | 5 + browser/modules/AboutNewTab.jsm | 39 +++++++ browser/modules/moz.build | 1 + 7 files changed, 213 insertions(+), 102 deletions(-) create mode 100644 browser/modules/AboutNewTab.jsm diff --git a/browser/base/content/newtab/customize.js b/browser/base/content/newtab/customize.js index 16f8b9b82d9..bcf4b3cc535 100644 --- a/browser/base/content/newtab/customize.js +++ b/browser/base/content/newtab/customize.js @@ -22,70 +22,95 @@ let gCustomize = { this._nodes[idSuffix] = document.getElementById("newtab-customize-" + idSuffix); } - this._nodes.button.addEventListener("click", e => this.showPanel()); - this._nodes.blank.addEventListener("click", e => { - gAllPages.enabled = false; - }); - this._nodes.classic.addEventListener("click", e => { - gAllPages.enabled = true; - - if (this._nodes.enhanced.getAttribute("selected")) { - gAllPages.enhanced = true; - } else { - gAllPages.enhanced = false; - } - }); - this._nodes.enhanced.addEventListener("click", e => { - if (!gAllPages.enabled) { - gAllPages.enabled = true; - return; - } - gAllPages.enhanced = !gAllPages.enhanced; - }); - this._nodes.learn.addEventListener("click", e => { - window.open(TILES_INTRO_LINK,'new_window'); - this._onHidden(); - }); + this._nodes.button.addEventListener("click", e => this.showPanel(e)); + this._nodes.blank.addEventListener("click", this); + this._nodes.classic.addEventListener("click", this); + this._nodes.enhanced.addEventListener("click", this); + this._nodes.learn.addEventListener("click", this); this.updateSelected(); }, - _onHidden: function() { - let nodes = gCustomize._nodes; - nodes.overlay.addEventListener("transitionend", function onTransitionEnd() { - nodes.overlay.removeEventListener("transitionend", onTransitionEnd); - nodes.overlay.style.display = "none"; + hidePanel: function() { + this._nodes.overlay.addEventListener("transitionend", function onTransitionEnd() { + gCustomize._nodes.overlay.removeEventListener("transitionend", onTransitionEnd); + gCustomize._nodes.overlay.style.display = "none"; }); - nodes.overlay.style.opacity = 0; - nodes.panel.removeEventListener("popuphidden", gCustomize._onHidden); - nodes.panel.hidden = true; - nodes.button.removeAttribute("active"); + this._nodes.overlay.style.opacity = 0; + this._nodes.button.removeAttribute("active"); + this._nodes.panel.removeAttribute("open"); + document.removeEventListener("click", this); + document.removeEventListener("keydown", this); }, - showPanel: function() { - this._nodes.overlay.style.display = "block"; - setTimeout(() => { - // Wait for display update to take place, then animate. - this._nodes.overlay.style.opacity = 0.8; - }, 0); - - let nodes = this._nodes; - let {button, panel} = nodes; - if (button.hasAttribute("active")) { - return Promise.resolve(nodes); + showPanel: function(event) { + if (this._nodes.panel.getAttribute("open") == "true") { + return; } - panel.hidden = false; - panel.openPopup(button); - button.setAttribute("active", true); - panel.addEventListener("popuphidden", this._onHidden); + let {panel, button, overlay} = this._nodes; + overlay.style.display = "block"; + panel.setAttribute("open", "true"); + button.setAttribute("active", "true"); + setTimeout(() => { + // Wait for display update to take place, then animate. + overlay.style.opacity = 0.8; + }, 0); - return new Promise(resolve => { - panel.addEventListener("popupshown", function onShown() { - panel.removeEventListener("popupshown", onShown); - resolve(nodes); - }); - }); + document.addEventListener("click", this); + document.addEventListener("keydown", this); + + // Stop the event propogation to prevent panel from immediately closing + // via the document click event that we just added. + event.stopPropagation(); + }, + + handleEvent: function(event) { + switch (event.type) { + case "click": + this.onClick(event); + break; + case "keydown": + this.onKeyDown(event); + break; + } + }, + + onClick: function(event) { + if (event.currentTarget == document) { + if (!this._nodes.panel.contains(event.target)) { + this.hidePanel(); + } + } + switch (event.currentTarget.id) { + case "newtab-customize-blank": + sendAsyncMessage("NewTab:Customize", {enabled: false, enhanced: false}); + break; + case "newtab-customize-classic": + if (this._nodes.enhanced.getAttribute("selected")){ + sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: true}); + } else { + sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: false}); + } + break; + case "newtab-customize-enhanced": + sendAsyncMessage("NewTab:Customize", {enabled: true, enhanced: !gAllPages.enhanced}); + break; + case "newtab-customize-learn": + this.showLearn(); + break; + } + }, + + onKeyDown: function(event) { + if (event.keyCode == event.DOM_VK_ESCAPE) { + this.hidePanel(); + } + }, + + showLearn: function() { + window.open(TILES_INTRO_LINK, 'new_window'); + this.hidePanel(); }, updateSelected: function() { diff --git a/browser/base/content/newtab/newTab.css b/browser/base/content/newtab/newTab.css index 93a62ada244..db7edbaa467 100644 --- a/browser/base/content/newtab/newTab.css +++ b/browser/base/content/newtab/newTab.css @@ -481,10 +481,38 @@ input[type=button] { transition: opacity .07s linear; } +.newtab-customize-panel-container { + position: absolute; + margin-right: 40px; +} + #newtab-customize-panel { - z-index: 101; - margin-top: -5px; + z-index: 999; + margin-top: 55px; min-width: 270px; + position: absolute; + top: 100%; + right: -25px; + background-color: white; + border-radius: 6px; + filter: drop-shadow(0 0 1px rgba(0,0,0,0.4)) drop-shadow(0 3px 4px rgba(0,0,0,0.4)); + transition: all 200ms ease-in-out; + transform-origin: top right; + transform: translate(-30px, -20px) scale(0) translate(30px, 20px); +} + +#newtab-customize-panel[open="true"] { + transform: translate(-30px, -20px) scale(1) translate(30px, 20px); +} + +#newtab-customize-panel-anchor { + width: 18px; + height: 18px; + background-color: white; + transform: rotate(45deg); + position: absolute; + top: -6px; + right: 15px; } #newtab-customize-title { @@ -499,6 +527,7 @@ input[type=button] { max-width: 300px; overflow: hidden; display: table-cell; + border-top: none; } #newtab-customize-title > label { @@ -518,6 +547,7 @@ input[type=button] { -moz-padding-start: 40px; font-size: 14px; cursor: pointer; + max-width: 300px; } .newtab-customize-panel-item:not(:first-child), @@ -544,10 +574,8 @@ input[type=button] { .newtab-customize-panel-item, .newtab-customize-complex-option { - width: 100%; display: block; text-align: start; - max-width: 300px; background-color: #F9F9F9; } @@ -615,6 +643,7 @@ input[type=button] { padding: 0px 15px 15px 15px; -moz-padding-start: 40px; display: block; + max-width: 300px; } .newtab-customize-panel-subitem > label { @@ -788,7 +817,7 @@ input[type=button] { .newtab-intro-image-customize { box-shadow: 3px 3px 5px #888; - margin: 0 !important; + margin-top: 0px; background-color: #FFF; float: left; z-index: 101; @@ -799,7 +828,7 @@ input[type=button] { .newtab-intro-image-customize #newtab-customize-title { display: block; - max-height: 72px; + max-height: 40px; } .newtab-intro-image-customize .newtab-customize-panel-item:not([selected]):hover { diff --git a/browser/base/content/newtab/newTab.xul b/browser/base/content/newtab/newTab.xul index 55ca7812ac4..4868bbf8b2d 100644 --- a/browser/base/content/newtab/newTab.xul +++ b/browser/base/content/newtab/newTab.xul @@ -22,8 +22,6 @@ xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="&newtab.pageTitle;"> -
- - +
+
+
+
+ +
+ +
+
+ +
+
+ + +
+
+
+ +
+
+ +
+
+
+ +
@@ -126,7 +129,6 @@
-
diff --git a/browser/base/content/test/newtab/head.js b/browser/base/content/test/newtab/head.js index a959d1c54e9..f07cb54d880 100644 --- a/browser/base/content/test/newtab/head.js +++ b/browser/base/content/test/newtab/head.js @@ -742,26 +742,36 @@ function whenSearchInitDone() { * Can be any of("blank"|"classic"|"enhanced") */ function customizeNewTabPage(aTheme) { - let document = getContentDocument(); - let panel = document.getElementById("newtab-customize-panel"); - let customizeButton = document.getElementById("newtab-customize-button"); + let promise = ContentTask.spawn(gBrowser.selectedBrowser, aTheme, function*(aTheme) { - // Attache onShown the listener on panel - panel.addEventListener("popupshown", function onShown() { - panel.removeEventListener("popupshown", onShown); + let document = content.document; + let panel = document.getElementById("newtab-customize-panel"); + let customizeButton = document.getElementById("newtab-customize-button"); - // Get the element for the specific option and click on it, - // then trigger an escape to close the panel - document.getElementById("newtab-customize-" + aTheme).click(); - executeSoon(() => { panel.hidePopup(); }); + function panelOpened(opened) { + return new Promise( (resolve) => { + let options = {attributes: true, oldValue: true}; + let observer = new content.MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + document.getElementById("newtab-customize-" + aTheme).click(); + observer.disconnect(); + if (opened == panel.hasAttribute("open")) { + resolve(); + } + }); + }); + observer.observe(panel, options); + }); + } + + let opened = panelOpened(true); + customizeButton.click(); + yield opened; + + let closed = panelOpened(false); + customizeButton.click(); + yield closed; }); - // Attache the listener for panel closing, this will resolve the promise - panel.addEventListener("popuphidden", function onHidden() { - panel.removeEventListener("popuphidden", onHidden); - executeSoon(TestRunner.next); - }); - - // Click on the customize button to display the panel - customizeButton.click(); + promise.then(TestRunner.next); } diff --git a/browser/components/nsBrowserGlue.js b/browser/components/nsBrowserGlue.js index d6eb1e92e77..f235109b745 100644 --- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -17,6 +17,9 @@ Cu.import("resource://gre/modules/Services.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "AboutHome", "resource:///modules/AboutHome.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "AboutNewTab", + "resource:///modules/AboutNewTab.jsm"); + XPCOMUtils.defineLazyModuleGetter(this, "UITour", "resource:///modules/UITour.jsm"); @@ -690,6 +693,7 @@ BrowserGlue.prototype = { #endif webrtcUI.init(); AboutHome.init(); + AboutNewTab.init(); SessionStore.init(); BrowserUITelemetry.init(); ContentSearch.init(); @@ -1015,6 +1019,7 @@ BrowserGlue.prototype = { CustomizationTabPreloader.uninit(); WebappManager.uninit(); + AboutNewTab.uninit(); #ifdef NIGHTLY_BUILD if (Services.prefs.getBoolPref("dom.identity.enabled")) { SignInToWebsiteUX.uninit(); diff --git a/browser/modules/AboutNewTab.jsm b/browser/modules/AboutNewTab.jsm new file mode 100644 index 00000000000..df12c9f2345 --- /dev/null +++ b/browser/modules/AboutNewTab.jsm @@ -0,0 +1,39 @@ +/* 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/. */ + +"use strict"; + +let Cc = Components.classes; +let Ci = Components.interfaces; +let Cu = Components.utils; + +this.EXPORTED_SYMBOLS = [ "AboutNewTab" ]; + +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); + +XPCOMUtils.defineLazyModuleGetter(this, "RemotePages", + "resource://gre/modules/RemotePageManager.jsm"); +XPCOMUtils.defineLazyModuleGetter(this, "NewTabUtils", + "resource://gre/modules/NewTabUtils.jsm"); + +let AboutNewTab = { + + pageListener: null, + + init: function() { + this.pageListener = new RemotePages("about:newtab"); + this.pageListener.addMessageListener("NewTab:Customize", this.customize.bind(this)); + }, + + customize: function(message) { + NewTabUtils.allPages.enabled = message.data.enabled; + NewTabUtils.allPages.enhanced = message.data.enhanced; + }, + + uninit: function() { + this.pageListener.destroy(); + this.pageListener = null; + }, +}; diff --git a/browser/modules/moz.build b/browser/modules/moz.build index cd319f4f6d1..4bb2d984677 100644 --- a/browser/modules/moz.build +++ b/browser/modules/moz.build @@ -12,6 +12,7 @@ XPCSHELL_TESTS_MANIFESTS += [ EXTRA_JS_MODULES += [ 'AboutHome.jsm', + 'AboutNewTab.jsm', 'BrowserUITelemetry.jsm', 'CastingApps.jsm', 'Chat.jsm', From 60d3fc5c204b3cdaad2eaaf8801d425878d2c1a9 Mon Sep 17 00:00:00 2001 From: Mark Banner Date: Wed, 17 Jun 2015 20:43:56 +0100 Subject: [PATCH 10/34] Follow-up to bug 1174945 - fix generated react file output for some files that were missed in the commit. rs=dmose over irc --- browser/components/loop/content/js/contacts.js | 6 +++--- browser/components/loop/content/js/roomViews.js | 11 ++++++----- browser/components/loop/content/shared/js/views.js | 10 +++++----- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/browser/components/loop/content/js/contacts.js b/browser/components/loop/content/js/contacts.js index e32e7c005cf..d57d7f7f0c4 100644 --- a/browser/components/loop/content/js/contacts.js +++ b/browser/components/loop/content/js/contacts.js @@ -485,9 +485,9 @@ loop.contacts = (function(_, mozL10n) { message: mozL10n.get("confirm_delete_contact_alert"), okButton: mozL10n.get("confirm_delete_contact_remove_button"), cancelButton: mozL10n.get("confirm_delete_contact_cancel_button") - }, (err, result) => { - if (err) { - throw err; + }, (error, result) => { + if (error) { + throw error; } if (!result) { diff --git a/browser/components/loop/content/js/roomViews.js b/browser/components/loop/content/js/roomViews.js index ff083b323aa..40b86671c4b 100644 --- a/browser/components/loop/content/js/roomViews.js +++ b/browser/components/loop/content/js/roomViews.js @@ -92,9 +92,10 @@ loop.roomViews = (function(mozL10n) { event.preventDefault(); var origin = event.currentTarget.dataset.provider; - var provider = this.props.socialShareProviders.filter(function(provider) { - return provider.origin == origin; - })[0]; + var provider = this.props.socialShareProviders + .filter(function(socialProvider) { + return socialProvider.origin == origin; + })[0]; this.props.dispatcher.dispatch(new sharedActions.ShareRoomUrl({ provider: provider, @@ -304,12 +305,12 @@ loop.roomViews = (function(mozL10n) { this.props.mozLoop.getSelectedTabMetadata(function(metadata) { var previewImage = metadata.favicon || ""; var description = metadata.title || metadata.description; - var url = metadata.url; + var metaUrl = metadata.url; this.setState({ availableContext: { previewImage: previewImage, description: description, - url: url + url: metaUrl } }); }.bind(this)); diff --git a/browser/components/loop/content/shared/js/views.js b/browser/components/loop/content/shared/js/views.js index 992054b5593..72cb62a6428 100644 --- a/browser/components/loop/content/shared/js/views.js +++ b/browser/components/loop/content/shared/js/views.js @@ -391,14 +391,14 @@ loop.shared.views = (function(_, l10n) { // Suppress OT GuM custom dialog, see bug 1018875 this.listenTo(this.publisher, "accessDialogOpened accessDenied", - function(event) { - event.preventDefault(); + function(ev) { + ev.preventDefault(); }); - this.listenTo(this.publisher, "streamCreated", function(event) { + this.listenTo(this.publisher, "streamCreated", function(ev) { this.setState({ - audio: {enabled: event.stream.hasAudio}, - video: {enabled: event.stream.hasVideo} + audio: {enabled: ev.stream.hasAudio}, + video: {enabled: ev.stream.hasVideo} }); }.bind(this)); From d5681224dbc6ae630a349be27eefb77fc81a6965 Mon Sep 17 00:00:00 2001 From: Nick Alexander Date: Wed, 17 Jun 2015 12:32:03 -0700 Subject: [PATCH 11/34] Bug 1161234 - Pre: Add "CreateFirefoxAccountFromJSON" message. r=rnewman We will probably grow a helper module for handling these account-related messages, but this is enough to develop an about:accounts style add-on. --- mobile/android/base/BrowserApp.java | 46 +++++++++++++++++++++++++---- mobile/android/modules/Accounts.jsm | 20 +++++++++++-- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/mobile/android/base/BrowserApp.java b/mobile/android/base/BrowserApp.java index 1e53b79152b..fdbddd29950 100644 --- a/mobile/android/base/BrowserApp.java +++ b/mobile/android/base/BrowserApp.java @@ -25,7 +25,11 @@ import org.mozilla.gecko.favicons.OnFaviconLoadedListener; import org.mozilla.gecko.favicons.decoders.IconDirectoryEntry; import org.mozilla.gecko.firstrun.FirstrunPane; import org.mozilla.gecko.fxa.FirefoxAccounts; +import org.mozilla.gecko.fxa.FxAccountConstants; import org.mozilla.gecko.fxa.activities.FxAccountGetStartedActivity; +import org.mozilla.gecko.fxa.authenticator.AndroidFxAccount; +import org.mozilla.gecko.fxa.login.Engaged; +import org.mozilla.gecko.fxa.login.State; import org.mozilla.gecko.gfx.BitmapUtils; import org.mozilla.gecko.gfx.ImmutableViewportMetrics; import org.mozilla.gecko.gfx.LayerMarginsAnimator; @@ -52,6 +56,7 @@ import org.mozilla.gecko.preferences.ClearOnShutdownPref; import org.mozilla.gecko.preferences.GeckoPreferences; import org.mozilla.gecko.prompts.Prompt; import org.mozilla.gecko.prompts.PromptListItem; +import org.mozilla.gecko.sync.Utils; import org.mozilla.gecko.sync.repositories.android.FennecTabsRepository; import org.mozilla.gecko.sync.setup.SyncAccounts; import org.mozilla.gecko.tabqueue.TabQueueHelper; @@ -819,6 +824,7 @@ public class BrowserApp extends GeckoApp EventDispatcher.getInstance().registerGeckoThreadListener((NativeEventListener)this, "Accounts:Create", + "Accounts:CreateFirefoxAccountFromJSON", "CharEncoding:Data", "CharEncoding:State", "Favicon:CacheLoad", @@ -1016,7 +1022,7 @@ public class BrowserApp extends GeckoApp return; } - EventDispatcher.getInstance().unregisterGeckoThreadListener((GeckoEventListener)this, + EventDispatcher.getInstance().unregisterGeckoThreadListener((GeckoEventListener) this, "Prompt:ShowTop"); processTabQueue(); @@ -1026,7 +1032,7 @@ public class BrowserApp extends GeckoApp public void onPause() { super.onPause(); // Register for Prompt:ShowTop so we can foreground this activity even if it's hidden. - EventDispatcher.getInstance().registerGeckoThreadListener((GeckoEventListener)this, + EventDispatcher.getInstance().registerGeckoThreadListener((GeckoEventListener) this, "Prompt:ShowTop"); } @@ -1384,7 +1390,7 @@ public class BrowserApp extends GeckoApp mZoomedView.destroy(); } - EventDispatcher.getInstance().unregisterGeckoThreadListener((GeckoEventListener)this, + EventDispatcher.getInstance().unregisterGeckoThreadListener((GeckoEventListener) this, "Menu:Open", "Menu:Update", "LightweightTheme:Update", @@ -1392,8 +1398,9 @@ public class BrowserApp extends GeckoApp "Prompt:ShowTop", "Accounts:Exist"); - EventDispatcher.getInstance().unregisterGeckoThreadListener((NativeEventListener)this, + EventDispatcher.getInstance().unregisterGeckoThreadListener((NativeEventListener) this, "Accounts:Create", + "Accounts:CreateFirefoxAccountFromJSON", "CharEncoding:Data", "CharEncoding:State", "Favicon:CacheLoad", @@ -1662,7 +1669,36 @@ public class BrowserApp extends GeckoApp @Override public void handleMessage(final String event, final NativeJSObject message, final EventCallback callback) { - if ("Accounts:Create".equals(event)) { + if ("Accounts:CreateFirefoxAccountFromJSON".equals(event)) { + AndroidFxAccount fxAccount = null; + try { + final NativeJSObject json = message.getObject("json"); + final String email = json.getString("email"); + final String uid = json.getString("uid"); + final boolean verified = json.optBoolean("verified", false); + final byte[] unwrapkB = Utils.hex2Byte(json.getString("unwrapBKey")); + final byte[] sessionToken = Utils.hex2Byte(json.getString("sessionToken")); + final byte[] keyFetchToken = Utils.hex2Byte(json.getString("keyFetchToken")); + // TODO: handle choose what to Sync. + State state = new Engaged(email, uid, verified, unwrapkB, sessionToken, keyFetchToken); + fxAccount = AndroidFxAccount.addAndroidAccount(this, + email, + getProfile().getName(), + FxAccountConstants.DEFAULT_AUTH_SERVER_ENDPOINT, + FxAccountConstants.DEFAULT_TOKEN_SERVER_ENDPOINT, + state, + AndroidFxAccount.DEFAULT_AUTHORITIES_TO_SYNC_AUTOMATICALLY_MAP); + } catch (Exception e) { + Log.w(LOGTAG, "Got exception creating Firefox Account from JSON; ignoring.", e); + if (callback == null) { + callback.sendError("Could not create Firefox Account from JSON: " + e.toString()); + } + } + if (callback != null) { + callback.sendSuccess(fxAccount != null); + } + + } else if ("Accounts:Create".equals(event)) { // Do exactly the same thing as if you tapped 'Sync' in Settings. final Intent intent = new Intent(getContext(), FxAccountGetStartedActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/mobile/android/modules/Accounts.jsm b/mobile/android/modules/Accounts.jsm index 82db02c0298..fff92bd63bc 100644 --- a/mobile/android/modules/Accounts.jsm +++ b/mobile/android/modules/Accounts.jsm @@ -35,7 +35,7 @@ let Accounts = Object.freeze({ _accountsExist: function (kind) { return Messaging.sendRequestForResult({ type: "Accounts:Exist", - kind: kind, + kind: kind }).then(data => data.exists); }, @@ -64,7 +64,23 @@ let Accounts = Object.freeze({ launchSetup: function (extras) { Messaging.sendRequest({ type: "Accounts:Create", - extras: extras, + extras: extras }); }, + + /** + * Create a new Android Account corresponding to the given + * fxa-content-server "login" JSON datum. The new account will be + * in the "Engaged" state, and will start syncing immediately. + * + * It is an error if an Android Account already exists. + * + * Returns a Promise that resolves to a boolean indicating success. + */ + createFirefoxAccountFromJSON: function (json) { + return Messaging.sendRequestForResponse({ + type: "Accounts:CreateFirefoxAccountFromJSON", + json: json + }); + } }); From 55e2a5071c35d1d7b1e27eac7a24b3b4c423ad80 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 17 Jun 2015 13:01:27 -0700 Subject: [PATCH 12/34] Bug 1159507 - make allocation times consistent with timeline; r=fitzgen,mccr8 --- js/src/doc/Debugger/Conventions.md | 5 +++-- .../debug/Memory-drainAllocationsLog-14.js | 10 +++++----- js/src/jsapi.cpp | 16 ++++++++++++++++ js/src/jsapi.h | 19 +++++++++++++++++++ js/src/vm/Debugger.cpp | 6 +++--- js/src/vm/Debugger.h | 14 +++++++------- js/src/vm/SavedStacks.cpp | 2 +- .../mochitest/test_memory_allocations_05.html | 2 +- xpcom/build/XPCOMInit.cpp | 9 +++++++++ 9 files changed, 64 insertions(+), 19 deletions(-) diff --git a/js/src/doc/Debugger/Conventions.md b/js/src/doc/Debugger/Conventions.md index 24dace96add..df7749a73ce 100644 --- a/js/src/doc/Debugger/Conventions.md +++ b/js/src/doc/Debugger/Conventions.md @@ -138,8 +138,9 @@ described below. ## Timestamps -Timestamps are expressed in units of microseconds since the epoch (midnight, -January 1st, 1970). +Timestamps are expressed in units of milliseconds since an arbitrary, +but fixed, epoch. The resolution of timestamps is generally greater +than milliseconds, though no specific resolution is guaranteed. ## The `Debugger.DebuggeeWouldRun` Exception diff --git a/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-14.js b/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-14.js index 4a24cca6b42..dff8c8c0a12 100644 --- a/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-14.js +++ b/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-14.js @@ -4,20 +4,20 @@ load(libdir + 'asserts.js'); var allocTimes = []; -allocTimes.push(1000 * dateNow()); +allocTimes.push(dateNow()); const root = newGlobal(); const dbg = new Debugger(root); dbg.memory.trackingAllocationSites = true; root.eval("this.alloc1 = {}"); -allocTimes.push(1000 * dateNow()); +allocTimes.push(dateNow()); root.eval("this.alloc2 = {}"); -allocTimes.push(1000 * dateNow()); +allocTimes.push(dateNow()); root.eval("this.alloc3 = {}"); -allocTimes.push(1000 * dateNow()); +allocTimes.push(dateNow()); root.eval("this.alloc4 = {}"); -allocTimes.push(1000 * dateNow()); +allocTimes.push(dateNow()); allocs = dbg.memory.drainAllocationsLog(); assertEq(allocs.length >= 4, true); diff --git a/js/src/jsapi.cpp b/js/src/jsapi.cpp index 367e81ea192..9ae0785718c 100644 --- a/js/src/jsapi.cpp +++ b/js/src/jsapi.cpp @@ -663,6 +663,22 @@ JS_SetICUMemoryFunctions(JS_ICUAllocFn allocFn, JS_ICUReallocFn reallocFn, JS_IC #endif } +static JS_CurrentEmbedderTimeFunction currentEmbedderTimeFunction; + +JS_PUBLIC_API(void) +JS_SetCurrentEmbedderTimeFunction(JS_CurrentEmbedderTimeFunction timeFn) +{ + currentEmbedderTimeFunction = timeFn; +} + +JS_PUBLIC_API(double) +JS_GetCurrentEmbedderTime() +{ + if (currentEmbedderTimeFunction) + return currentEmbedderTimeFunction(); + return PRMJ_Now() / static_cast(PRMJ_USEC_PER_MSEC); +} + JS_PUBLIC_API(void*) JS_GetRuntimePrivate(JSRuntime* rt) { diff --git a/js/src/jsapi.h b/js/src/jsapi.h index 8c919bee482..47a036b4c18 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -1053,6 +1053,25 @@ typedef void (*JS_ICUFreeFn)(const void*, void* p); extern JS_PUBLIC_API(bool) JS_SetICUMemoryFunctions(JS_ICUAllocFn allocFn, JS_ICUReallocFn reallocFn, JS_ICUFreeFn freeFn); +typedef double (*JS_CurrentEmbedderTimeFunction)(); + +/* + * The embedding can specify a time function that will be used in some + * situations. The function can return the time however it likes; but + * the norm is to return times in units of milliseconds since an + * arbitrary, but consistent, epoch. If the time function is not set, + * a built-in default will be used. + */ +JS_PUBLIC_API(void) +JS_SetCurrentEmbedderTimeFunction(JS_CurrentEmbedderTimeFunction timeFn); + +/* + * Return the time as computed using the current time function, or a + * suitable default if one has not been set. + */ +JS_PUBLIC_API(double) +JS_GetCurrentEmbedderTime(); + JS_PUBLIC_API(void*) JS_GetRuntimePrivate(JSRuntime* rt); diff --git a/js/src/vm/Debugger.cpp b/js/src/vm/Debugger.cpp index 5fa92609a55..26ed1f42584 100644 --- a/js/src/vm/Debugger.cpp +++ b/js/src/vm/Debugger.cpp @@ -1652,7 +1652,7 @@ Debugger::slowPathOnNewGlobalObject(JSContext* cx, Handle global) /* static */ bool Debugger::slowPathOnLogAllocationSite(JSContext* cx, HandleObject obj, HandleSavedFrame frame, - int64_t when, GlobalObject::DebuggerVector& dbgs) + double when, GlobalObject::DebuggerVector& dbgs) { MOZ_ASSERT(!dbgs.empty()); mozilla::DebugOnly begin = dbgs.begin(); @@ -1700,7 +1700,7 @@ Debugger::isDebuggee(const JSCompartment* compartment) const } /* static */ Debugger::AllocationSite* -Debugger::AllocationSite::create(JSContext* cx, HandleObject frame, int64_t when, HandleObject obj) +Debugger::AllocationSite::create(JSContext* cx, HandleObject frame, double when, HandleObject obj) { assertSameCompartment(cx, frame); @@ -1723,7 +1723,7 @@ Debugger::AllocationSite::create(JSContext* cx, HandleObject frame, int64_t when bool Debugger::appendAllocationSite(JSContext* cx, HandleObject obj, HandleSavedFrame frame, - int64_t when) + double when) { MOZ_ASSERT(trackingAllocationSites); diff --git a/js/src/vm/Debugger.h b/js/src/vm/Debugger.h index 1ed90305e9e..93c0ccd5c54 100644 --- a/js/src/vm/Debugger.h +++ b/js/src/vm/Debugger.h @@ -274,7 +274,7 @@ class Debugger : private mozilla::LinkedListElement struct AllocationSite : public mozilla::LinkedListElement { - AllocationSite(HandleObject frame, int64_t when) + AllocationSite(HandleObject frame, double when) : frame(frame), when(when), className(nullptr), @@ -283,11 +283,11 @@ class Debugger : private mozilla::LinkedListElement MOZ_ASSERT_IF(frame, UncheckedUnwrap(frame)->is()); }; - static AllocationSite* create(JSContext* cx, HandleObject frame, int64_t when, + static AllocationSite* create(JSContext* cx, HandleObject frame, double when, HandleObject obj); RelocatablePtrObject frame; - int64_t when; + double when; const char* className; RelocatablePtrAtom ctorName; }; @@ -304,7 +304,7 @@ class Debugger : private mozilla::LinkedListElement static const size_t DEFAULT_MAX_ALLOCATIONS_LOG_LENGTH = 5000; bool appendAllocationSite(JSContext* cx, HandleObject obj, HandleSavedFrame frame, - int64_t when); + double when); void emptyAllocationsLog(); /* @@ -550,7 +550,7 @@ class Debugger : private mozilla::LinkedListElement static void slowPathOnNewScript(JSContext* cx, HandleScript script); static void slowPathOnNewGlobalObject(JSContext* cx, Handle global); static bool slowPathOnLogAllocationSite(JSContext* cx, HandleObject obj, HandleSavedFrame frame, - int64_t when, GlobalObject::DebuggerVector& dbgs); + double when, GlobalObject::DebuggerVector& dbgs); static void slowPathPromiseHook(JSContext* cx, Hook hook, HandleObject promise); static void slowPathOnIonCompilation(JSContext* cx, AutoScriptVector& scripts, LSprinter& graph); @@ -713,7 +713,7 @@ class Debugger : private mozilla::LinkedListElement static inline void onNewScript(JSContext* cx, HandleScript script); static inline void onNewGlobalObject(JSContext* cx, Handle global); static inline bool onLogAllocationSite(JSContext* cx, JSObject* obj, HandleSavedFrame frame, - int64_t when); + double when); static inline bool observesIonCompilation(JSContext* cx); static inline void onIonCompilation(JSContext* cx, AutoScriptVector& scripts, LSprinter& graph); static JSTrapStatus onTrap(JSContext* cx, MutableHandleValue vp); @@ -1016,7 +1016,7 @@ Debugger::onNewGlobalObject(JSContext* cx, Handle global) } /* static */ bool -Debugger::onLogAllocationSite(JSContext* cx, JSObject* obj, HandleSavedFrame frame, int64_t when) +Debugger::onLogAllocationSite(JSContext* cx, JSObject* obj, HandleSavedFrame frame, double when) { GlobalObject::DebuggerVector* dbgs = cx->global()->getDebuggers(); if (!dbgs || dbgs->empty()) diff --git a/js/src/vm/SavedStacks.cpp b/js/src/vm/SavedStacks.cpp index 9db1301b954..19507155e31 100644 --- a/js/src/vm/SavedStacks.cpp +++ b/js/src/vm/SavedStacks.cpp @@ -1221,7 +1221,7 @@ SavedStacksMetadataCallback(JSContext* cx, JSObject* target) if (!stacks.saveCurrentStack(cx, &frame)) CrashAtUnhandlableOOM("SavedStacksMetadataCallback"); - if (!Debugger::onLogAllocationSite(cx, obj, frame, PRMJ_Now())) + if (!Debugger::onLogAllocationSite(cx, obj, frame, JS_GetCurrentEmbedderTime())) CrashAtUnhandlableOOM("SavedStacksMetadataCallback"); MOZ_ASSERT_IF(frame, !frame->is()); diff --git a/toolkit/devtools/server/tests/mochitest/test_memory_allocations_05.html b/toolkit/devtools/server/tests/mochitest/test_memory_allocations_05.html index f70eda98f06..0eeb7bd165d 100644 --- a/toolkit/devtools/server/tests/mochitest/test_memory_allocations_05.html +++ b/toolkit/devtools/server/tests/mochitest/test_memory_allocations_05.html @@ -70,7 +70,7 @@ window.onload = function() { if (lastTimestamp) { var delta = timestamp - lastTimestamp; info("delta since last timestamp", delta); - ok(delta >= 1000 /* 1 ms */, + ok(delta >= 1 /* ms */, "The timestamp should be about 1 ms after the last timestamp."); } diff --git a/xpcom/build/XPCOMInit.cpp b/xpcom/build/XPCOMInit.cpp index 78cc67d389f..e22afc5a250 100644 --- a/xpcom/build/XPCOMInit.cpp +++ b/xpcom/build/XPCOMInit.cpp @@ -472,6 +472,13 @@ NS_IMPL_ISUPPORTS(NesteggReporter, nsIMemoryReporter) CountingAllocatorBase::sAmount(0); #endif /* MOZ_WEBM */ +static double +TimeSinceProcessCreation() +{ + bool ignore; + return (TimeStamp::Now() - TimeStamp::ProcessCreation(ignore)).ToMilliseconds(); +} + // Note that on OSX, aBinDirectory will point to .app/Contents/Resources/browser EXPORT_XPCOM_API(nsresult) NS_InitXPCOM2(nsIServiceManager** aResult, @@ -489,6 +496,8 @@ NS_InitXPCOM2(nsIServiceManager** aResult, NS_LogInit(); + JS_SetCurrentEmbedderTimeFunction(TimeSinceProcessCreation); + char aLocal; profiler_init(&aLocal); nsresult rv = NS_OK; From cd0a40c8ee58c200093fd3765da6641a901fe75c Mon Sep 17 00:00:00 2001 From: Mike Taylor Date: Wed, 17 Jun 2015 13:02:30 -0700 Subject: [PATCH 13/34] Bug 1175301: Update UA override for Youtube. r=mbrubeck --- mobile/android/app/ua-update.json.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/ua-update.json.in b/mobile/android/app/ua-update.json.in index 0602a4416fb..93617475bb3 100644 --- a/mobile/android/app/ua-update.json.in +++ b/mobile/android/app/ua-update.json.in @@ -2,6 +2,6 @@ // Everything after the first // on a line will be removed by the preproccesor. // Send these sites a custom user-agent. Bugs should be included with an entry. { - // bug 788422, youtube.com - "youtube.com": "Android; Tablet;#Android; Mobile;" + // bug 1174784, youtube.com + "youtube.com": "Android\\s\\d.+?;#Android;" } From 47efee2dbdfcf85ffa18ab630a57d91c00ee8d88 Mon Sep 17 00:00:00 2001 From: Victor Porof Date: Wed, 17 Jun 2015 16:05:52 -0400 Subject: [PATCH 14/34] Bug 1169135 - Make Graphs.jsm a require module, r=jsantell --- .../performance/modules/widgets/graphs.js | 8 ++-- .../modules/widgets/markers-overview.js | 2 +- .../devtools/performance/views/overview.js | 2 +- browser/devtools/shared/moz.build | 2 +- .../devtools/shared/test/browser_graphs-01.js | 2 +- .../devtools/shared/test/browser_graphs-02.js | 2 +- .../devtools/shared/test/browser_graphs-03.js | 2 +- .../devtools/shared/test/browser_graphs-04.js | 2 +- .../devtools/shared/test/browser_graphs-05.js | 2 +- .../devtools/shared/test/browser_graphs-06.js | 2 +- .../shared/test/browser_graphs-07a.js | 2 +- .../shared/test/browser_graphs-07b.js | 2 +- .../shared/test/browser_graphs-07c.js | 2 +- .../shared/test/browser_graphs-07d.js | 2 +- .../shared/test/browser_graphs-07e.js | 2 +- .../devtools/shared/test/browser_graphs-08.js | 2 +- .../shared/test/browser_graphs-09a.js | 2 +- .../shared/test/browser_graphs-09b.js | 2 +- .../shared/test/browser_graphs-09c.js | 2 +- .../shared/test/browser_graphs-09d.js | 2 +- .../shared/test/browser_graphs-09e.js | 2 +- .../shared/test/browser_graphs-09f.js | 2 +- .../shared/test/browser_graphs-10a.js | 2 +- .../shared/test/browser_graphs-10b.js | 2 +- .../shared/test/browser_graphs-10c.js | 2 +- .../shared/test/browser_graphs-11a.js | 2 +- .../shared/test/browser_graphs-11b.js | 2 +- .../devtools/shared/test/browser_graphs-12.js | 2 +- .../devtools/shared/test/browser_graphs-13.js | 2 +- .../devtools/shared/test/browser_graphs-14.js | 2 +- .../devtools/shared/test/browser_graphs-15.js | 2 +- browser/devtools/shared/widgets/FlameGraph.js | 12 +++--- .../shared/widgets/{Graphs.jsm => Graphs.js} | 39 +++++++++++-------- .../devtools/shared/widgets/GraphsWorker.js | 2 +- browser/devtools/webaudioeditor/includes.js | 5 ++- 35 files changed, 66 insertions(+), 60 deletions(-) rename browser/devtools/shared/widgets/{Graphs.jsm => Graphs.js} (98%) diff --git a/browser/devtools/performance/modules/widgets/graphs.js b/browser/devtools/performance/modules/widgets/graphs.js index bb5b50b126f..db2c07d04f0 100644 --- a/browser/devtools/performance/modules/widgets/graphs.js +++ b/browser/devtools/performance/modules/widgets/graphs.js @@ -9,10 +9,10 @@ const { Cc, Ci, Cu, Cr } = require("chrome"); const { Task } = require("resource://gre/modules/Task.jsm"); -const { LineGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); -const { BarGraphWidget } = require("resource:///modules/devtools/Graphs.jsm"); -const { CanvasGraphUtils } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { LineGraphWidget } = require("devtools/shared/widgets/Graphs"); +const { BarGraphWidget } = require("devtools/shared/widgets/Graphs"); +const { CanvasGraphUtils } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "promise"); loader.lazyRequireGetter(this, "EventEmitter", @@ -325,7 +325,7 @@ GraphsController.prototype = { /** * Fetches the currently mapped selection. If graphs are not yet rendered, - * (which throws in Graphs.jsm), return null. + * (which throws in Graphs.js), return null. */ getMappedSelection: function ({ mapStart, mapEnd }) { let primary = this._getPrimaryLink(); diff --git a/browser/devtools/performance/modules/widgets/markers-overview.js b/browser/devtools/performance/modules/widgets/markers-overview.js index 53bfbf2ad1b..1659ffc3d5a 100644 --- a/browser/devtools/performance/modules/widgets/markers-overview.js +++ b/browser/devtools/performance/modules/widgets/markers-overview.js @@ -10,8 +10,8 @@ */ const { Cc, Ci, Cu, Cr } = require("chrome"); -const { AbstractCanvasGraph } = require("resource:///modules/devtools/Graphs.jsm"); const { Heritage } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { AbstractCanvasGraph } = require("devtools/shared/widgets/Graphs"); loader.lazyRequireGetter(this, "colorUtils", "devtools/css-color", true); diff --git a/browser/devtools/performance/views/overview.js b/browser/devtools/performance/views/overview.js index 5f017f7e008..f8b3b2378cc 100644 --- a/browser/devtools/performance/views/overview.js +++ b/browser/devtools/performance/views/overview.js @@ -178,7 +178,7 @@ let OverviewView = { * Method for handling all the set up for rendering the overview graphs. * * @param number resolution - * The fps graph resolution. @see Graphs.jsm + * The fps graph resolution. @see Graphs.js */ render: Task.async(function *(resolution) { if (this.isDisabled()) { diff --git a/browser/devtools/shared/moz.build b/browser/devtools/shared/moz.build index ac002b6b3f2..cbc9139b637 100644 --- a/browser/devtools/shared/moz.build +++ b/browser/devtools/shared/moz.build @@ -21,7 +21,6 @@ EXTRA_JS_MODULES.devtools += [ 'widgets/AbstractTreeItem.jsm', 'widgets/BreadcrumbsWidget.jsm', 'widgets/Chart.jsm', - 'widgets/Graphs.jsm', 'widgets/GraphsWorker.js', 'widgets/SideMenuWidget.jsm', 'widgets/SimpleListWidget.jsm', @@ -54,6 +53,7 @@ EXTRA_JS_MODULES.devtools.shared.widgets += [ 'widgets/FastListWidget.js', 'widgets/FilterWidget.js', 'widgets/FlameGraph.js', + 'widgets/Graphs.js', 'widgets/MdnDocsWidget.js', 'widgets/Spectrum.js', 'widgets/TableWidget.js', diff --git a/browser/devtools/shared/test/browser_graphs-01.js b/browser/devtools/shared/test/browser_graphs-01.js index f9cf66cde03..2a55222b065 100644 --- a/browser/devtools/shared/test/browser_graphs-01.js +++ b/browser/devtools/shared/test/browser_graphs-01.js @@ -3,7 +3,7 @@ // Tests that graph widgets works properly. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-02.js b/browser/devtools/shared/test/browser_graphs-02.js index 5c56ac93bc5..9a97e706c38 100644 --- a/browser/devtools/shared/test/browser_graphs-02.js +++ b/browser/devtools/shared/test/browser_graphs-02.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-03.js b/browser/devtools/shared/test/browser_graphs-03.js index 6aa6b8aae1a..37c72e8d759 100644 --- a/browser/devtools/shared/test/browser_graphs-03.js +++ b/browser/devtools/shared/test/browser_graphs-03.js @@ -4,7 +4,7 @@ // Tests that graph widgets can handle clients getting/setting the // selection or cursor. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-04.js b/browser/devtools/shared/test/browser_graphs-04.js index c75cf3c1852..277f1c847aa 100644 --- a/browser/devtools/shared/test/browser_graphs-04.js +++ b/browser/devtools/shared/test/browser_graphs-04.js @@ -3,7 +3,7 @@ // Tests that graph widgets can correctly compare selections and cursors. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-05.js b/browser/devtools/shared/test/browser_graphs-05.js index 15d9c48c994..ef10c25121a 100644 --- a/browser/devtools/shared/test/browser_graphs-05.js +++ b/browser/devtools/shared/test/browser_graphs-05.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-06.js b/browser/devtools/shared/test/browser_graphs-06.js index f102b6b3e5d..2c99e4edc54 100644 --- a/browser/devtools/shared/test/browser_graphs-06.js +++ b/browser/devtools/shared/test/browser_graphs-06.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07a.js b/browser/devtools/shared/test/browser_graphs-07a.js index 8aeed71714d..7716af4505c 100644 --- a/browser/devtools/shared/test/browser_graphs-07a.js +++ b/browser/devtools/shared/test/browser_graphs-07a.js @@ -4,7 +4,7 @@ // Tests if selecting, resizing, moving selections and zooming in/out works. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07b.js b/browser/devtools/shared/test/browser_graphs-07b.js index 1af18be88e0..03d84d44e7f 100644 --- a/browser/devtools/shared/test/browser_graphs-07b.js +++ b/browser/devtools/shared/test/browser_graphs-07b.js @@ -4,7 +4,7 @@ // Tests if selections can't be added via clicking, while not allowed. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07c.js b/browser/devtools/shared/test/browser_graphs-07c.js index 17ec16947ef..a1457124a9c 100644 --- a/browser/devtools/shared/test/browser_graphs-07c.js +++ b/browser/devtools/shared/test/browser_graphs-07c.js @@ -6,7 +6,7 @@ // callbacks with textX / testY for convenience. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07d.js b/browser/devtools/shared/test/browser_graphs-07d.js index 90b3203ef33..a36cb6fb811 100644 --- a/browser/devtools/shared/test/browser_graphs-07d.js +++ b/browser/devtools/shared/test/browser_graphs-07d.js @@ -5,7 +5,7 @@ const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; const TEST_REGIONS = [{ start: 320, end: 460 }, { start: 780, end: 860 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-07e.js b/browser/devtools/shared/test/browser_graphs-07e.js index 296fa597c69..d5210850f7f 100644 --- a/browser/devtools/shared/test/browser_graphs-07e.js +++ b/browser/devtools/shared/test/browser_graphs-07e.js @@ -4,7 +4,7 @@ // Tests that selections are drawn onto the canvas. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); let CURRENT_ZOOM = 1; diff --git a/browser/devtools/shared/test/browser_graphs-08.js b/browser/devtools/shared/test/browser_graphs-08.js index 43c79061647..deea4c45c89 100644 --- a/browser/devtools/shared/test/browser_graphs-08.js +++ b/browser/devtools/shared/test/browser_graphs-08.js @@ -4,7 +4,7 @@ // Tests if a selection is dropped when clicking outside of it. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09a.js b/browser/devtools/shared/test/browser_graphs-09a.js index 3325139a5fe..b118dd37e2b 100644 --- a/browser/devtools/shared/test/browser_graphs-09a.js +++ b/browser/devtools/shared/test/browser_graphs-09a.js @@ -4,7 +4,7 @@ // Tests that line graphs properly create the gutter and tooltips. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09b.js b/browser/devtools/shared/test/browser_graphs-09b.js index d5171ccd465..7f2dcf78f99 100644 --- a/browser/devtools/shared/test/browser_graphs-09b.js +++ b/browser/devtools/shared/test/browser_graphs-09b.js @@ -4,7 +4,7 @@ // Tests that line graphs properly use the tooltips configuration properties. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09c.js b/browser/devtools/shared/test/browser_graphs-09c.js index 7007f516b6d..aa0289f7686 100644 --- a/browser/devtools/shared/test/browser_graphs-09c.js +++ b/browser/devtools/shared/test/browser_graphs-09c.js @@ -4,7 +4,7 @@ // Tests that line graphs hide the tooltips when there's no data available. const TEST_DATA = []; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09d.js b/browser/devtools/shared/test/browser_graphs-09d.js index 6138b91f538..339bf22619f 100644 --- a/browser/devtools/shared/test/browser_graphs-09d.js +++ b/browser/devtools/shared/test/browser_graphs-09d.js @@ -5,7 +5,7 @@ // the 'min' and 'max' tooltip is too small. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 59.9 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09e.js b/browser/devtools/shared/test/browser_graphs-09e.js index afa7a9065ff..8e261deeb35 100644 --- a/browser/devtools/shared/test/browser_graphs-09e.js +++ b/browser/devtools/shared/test/browser_graphs-09e.js @@ -7,7 +7,7 @@ const NO_DATA = []; const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-09f.js b/browser/devtools/shared/test/browser_graphs-09f.js index 10723acc35b..1851cf918c1 100644 --- a/browser/devtools/shared/test/browser_graphs-09f.js +++ b/browser/devtools/shared/test/browser_graphs-09f.js @@ -5,7 +5,7 @@ // gutter/tooltips and lines. const TEST_DATA = [{ delta: 100, value: 60 }, { delta: 200, value: 1 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10a.js b/browser/devtools/shared/test/browser_graphs-10a.js index d371ea8d2fd..429ed244652 100644 --- a/browser/devtools/shared/test/browser_graphs-10a.js +++ b/browser/devtools/shared/test/browser_graphs-10a.js @@ -4,7 +4,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10b.js b/browser/devtools/shared/test/browser_graphs-10b.js index 2796765b278..7997bec9cff 100644 --- a/browser/devtools/shared/test/browser_graphs-10b.js +++ b/browser/devtools/shared/test/browser_graphs-10b.js @@ -5,7 +5,7 @@ // the graph dimensions stay the same. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-10c.js b/browser/devtools/shared/test/browser_graphs-10c.js index e802f6c1462..6d847344659 100644 --- a/browser/devtools/shared/test/browser_graphs-10c.js +++ b/browser/devtools/shared/test/browser_graphs-10c.js @@ -2,7 +2,7 @@ // Tests that graphs properly handle resizing. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-11a.js b/browser/devtools/shared/test/browser_graphs-11a.js index cb07d91f0f6..ef8ce6f7433 100644 --- a/browser/devtools/shared/test/browser_graphs-11a.js +++ b/browser/devtools/shared/test/browser_graphs-11a.js @@ -3,7 +3,7 @@ // Tests that bar graph create a legend as expected. -let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-11b.js b/browser/devtools/shared/test/browser_graphs-11b.js index 509026592d2..30656ddee2c 100644 --- a/browser/devtools/shared/test/browser_graphs-11b.js +++ b/browser/devtools/shared/test/browser_graphs-11b.js @@ -3,7 +3,7 @@ // Tests that bar graph's legend items handle mouseover/mouseout. -let {BarGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {BarGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); const CATEGORIES = [ diff --git a/browser/devtools/shared/test/browser_graphs-12.js b/browser/devtools/shared/test/browser_graphs-12.js index 5cbd73aeb6d..36dee7fa464 100644 --- a/browser/devtools/shared/test/browser_graphs-12.js +++ b/browser/devtools/shared/test/browser_graphs-12.js @@ -3,7 +3,7 @@ // Tests that canvas graphs can have their selection linked. -let {LineGraphWidget, BarGraphWidget, CanvasGraphUtils} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget,BarGraphWidget,CanvasGraphUtils} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-13.js b/browser/devtools/shared/test/browser_graphs-13.js index b7b6b729d0c..38684d5c0d5 100644 --- a/browser/devtools/shared/test/browser_graphs-13.js +++ b/browser/devtools/shared/test/browser_graphs-13.js @@ -3,7 +3,7 @@ // Tests that graph widgets may have a fixed width or height. -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-14.js b/browser/devtools/shared/test/browser_graphs-14.js index 613ee2a9af0..3ee8b7f13ef 100644 --- a/browser/devtools/shared/test/browser_graphs-14.js +++ b/browser/devtools/shared/test/browser_graphs-14.js @@ -4,7 +4,7 @@ // Tests that graph widgets correctly emit mouse input events. const TEST_DATA = [{ delta: 112, value: 48 }, { delta: 213, value: 59 }, { delta: 313, value: 60 }, { delta: 413, value: 59 }, { delta: 530, value: 59 }, { delta: 646, value: 58 }, { delta: 747, value: 60 }, { delta: 863, value: 48 }, { delta: 980, value: 37 }, { delta: 1097, value: 30 }, { delta: 1213, value: 29 }, { delta: 1330, value: 23 }, { delta: 1430, value: 10 }, { delta: 1534, value: 17 }, { delta: 1645, value: 20 }, { delta: 1746, value: 22 }, { delta: 1846, value: 39 }, { delta: 1963, value: 26 }, { delta: 2080, value: 27 }, { delta: 2197, value: 35 }, { delta: 2312, value: 47 }, { delta: 2412, value: 53 }, { delta: 2514, value: 60 }, { delta: 2630, value: 37 }, { delta: 2730, value: 36 }, { delta: 2830, value: 37 }, { delta: 2946, value: 36 }, { delta: 3046, value: 40 }, { delta: 3163, value: 47 }, { delta: 3280, value: 41 }, { delta: 3380, value: 35 }, { delta: 3480, value: 27 }, { delta: 3580, value: 39 }, { delta: 3680, value: 42 }, { delta: 3780, value: 49 }, { delta: 3880, value: 55 }, { delta: 3980, value: 60 }, { delta: 4080, value: 60 }, { delta: 4180, value: 60 }]; -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/test/browser_graphs-15.js b/browser/devtools/shared/test/browser_graphs-15.js index e54f533bb9c..399800ef7df 100644 --- a/browser/devtools/shared/test/browser_graphs-15.js +++ b/browser/devtools/shared/test/browser_graphs-15.js @@ -19,7 +19,7 @@ for (let frameRate of FRAMES) { } } -let {LineGraphWidget} = Cu.import("resource:///modules/devtools/Graphs.jsm", {}); +let {LineGraphWidget} = devtools.require("devtools/shared/widgets/Graphs"); let {Promise} = devtools.require("resource://gre/modules/Promise.jsm"); add_task(function*() { diff --git a/browser/devtools/shared/widgets/FlameGraph.js b/browser/devtools/shared/widgets/FlameGraph.js index dccd2f8569b..a912fe295d7 100644 --- a/browser/devtools/shared/widgets/FlameGraph.js +++ b/browser/devtools/shared/widgets/FlameGraph.js @@ -19,12 +19,12 @@ loader.lazyRequireGetter(this, "CATEGORY_MAPPINGS", loader.lazyRequireGetter(this, "FrameUtils", "devtools/performance/frame-utils"); -loader.lazyImporter(this, "AbstractCanvasGraph", - "resource:///modules/devtools/Graphs.jsm"); -loader.lazyImporter(this, "GraphArea", - "resource:///modules/devtools/Graphs.jsm"); -loader.lazyImporter(this, "GraphAreaDragger", - "resource:///modules/devtools/Graphs.jsm"); +loader.lazyRequireGetter(this, "AbstractCanvasGraph", + "devtools/shared/widgets/Graphs", true); +loader.lazyRequireGetter(this, "GraphArea", + "devtools/shared/widgets/Graphs", true); +loader.lazyRequireGetter(this, "GraphAreaDragger", + "devtools/shared/widgets/Graphs", true); const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; diff --git a/browser/devtools/shared/widgets/Graphs.jsm b/browser/devtools/shared/widgets/Graphs.js similarity index 98% rename from browser/devtools/shared/widgets/Graphs.jsm rename to browser/devtools/shared/widgets/Graphs.js index b065a0848fd..6ca25fed1a9 100644 --- a/browser/devtools/shared/widgets/Graphs.jsm +++ b/browser/devtools/shared/widgets/Graphs.js @@ -3,29 +3,25 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ "use strict"; -const Cu = Components.utils; +const { Cc, Ci, Cu, Cr } = require("chrome"); -Cu.import("resource:///modules/devtools/ViewHelpers.jsm"); -const promise = Cu.import("resource://gre/modules/Promise.jsm", {}).Promise; -const {Task} = Cu.import("resource://gre/modules/Task.jsm", {}); -const {EventEmitter} = Cu.import("resource://gre/modules/devtools/event-emitter.js", {}); -const {DevToolsWorker} = Cu.import("resource://gre/modules/devtools/shared/worker.js", {}); -const {LayoutHelpers} = Cu.import("resource://gre/modules/devtools/LayoutHelpers.jsm", {}); +const { Task } = Cu.import("resource://gre/modules/Task.jsm", {}); +const { ViewHelpers } = require("resource:///modules/devtools/ViewHelpers.jsm"); +const { Heritage, setNamedTimeout, clearNamedTimeout } = require("resource:///modules/devtools/ViewHelpers.jsm"); -this.EXPORTED_SYMBOLS = [ - "GraphCursor", - "GraphArea", - "GraphAreaDragger", - "GraphAreaResizer", - "AbstractCanvasGraph", - "LineGraphWidget", - "BarGraphWidget", - "CanvasGraphUtils" -]; +loader.lazyRequireGetter(this, "promise"); +loader.lazyRequireGetter(this, "EventEmitter", + "devtools/toolkit/event-emitter"); + +loader.lazyImporter(this, "DevToolsWorker", + "resource://gre/modules/devtools/shared/worker.js"); +loader.lazyImporter(this, "LayoutHelpers", + "resource://gre/modules/devtools/LayoutHelpers.jsm"); const HTML_NS = "http://www.w3.org/1999/xhtml"; const GRAPH_SRC = "chrome://browser/content/devtools/graphs-frame.xhtml"; const WORKER_URL = "resource:///modules/devtools/GraphsWorker.js"; + const L10N = new ViewHelpers.L10N(); // Generic constants. @@ -2225,6 +2221,15 @@ function findFirst(array, predicate) { } } +exports.GraphCursor = GraphCursor; +exports.GraphArea = GraphArea; +exports.GraphAreaDragger = GraphAreaDragger; +exports.GraphAreaResizer = GraphAreaResizer; +exports.AbstractCanvasGraph = AbstractCanvasGraph; +exports.LineGraphWidget = LineGraphWidget; +exports.BarGraphWidget = BarGraphWidget; +exports.CanvasGraphUtils = CanvasGraphUtils; + /** * Finds the last element in an array that validates a predicate. * @param array diff --git a/browser/devtools/shared/widgets/GraphsWorker.js b/browser/devtools/shared/widgets/GraphsWorker.js index e63e6dc365c..5820651a33a 100644 --- a/browser/devtools/shared/widgets/GraphsWorker.js +++ b/browser/devtools/shared/widgets/GraphsWorker.js @@ -10,7 +10,7 @@ importScripts("resource://gre/modules/workers/require.js"); const { createTask } = require("resource://gre/modules/devtools/shared/worker-helper"); /** - * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.jsm + * @see LineGraphWidget.prototype.setDataFromTimestamps in Graphs.js * @param number id * @param array timestamps * @param number interval diff --git a/browser/devtools/webaudioeditor/includes.js b/browser/devtools/webaudioeditor/includes.js index 2e6b8ece4ea..915ac85f789 100644 --- a/browser/devtools/webaudioeditor/includes.js +++ b/browser/devtools/webaudioeditor/includes.js @@ -23,8 +23,9 @@ const STRINGS_URI = "chrome://browser/locale/devtools/webaudioeditor.properties" const L10N = new ViewHelpers.L10N(STRINGS_URI); const Telemetry = require("devtools/shared/telemetry"); const telemetry = new Telemetry(); -devtools.lazyImporter(this, "LineGraphWidget", - "resource:///modules/devtools/Graphs.jsm"); + +devtools.lazyRequireGetter(this, "LineGraphWidget", + "devtools/shared/widgets/Graphs", true); // `AUDIO_NODE_DEFINITION` defined in the controller's initialization, // which describes all the properties of an AudioNode From fedf1f003b7298fd971f0fa051a93b2c57324d04 Mon Sep 17 00:00:00 2001 From: Chenxia Liu Date: Wed, 17 Jun 2015 09:52:49 -0700 Subject: [PATCH 15/34] Bug 1144898 - Android 4.3 testSettingsMenuItems | Exception caught - junit.framework.AssertionFailedError: Text string: '^Mozilla$' is not found! r=mcomella --- mobile/android/tests/browser/robocop/robocop.ini | 4 ++-- .../tests/browser/robocop/testSettingsMenuItems.java | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mobile/android/tests/browser/robocop/robocop.ini b/mobile/android/tests/browser/robocop/robocop.ini index 3e717e71242..d79cfffc269 100644 --- a/mobile/android/tests/browser/robocop/robocop.ini +++ b/mobile/android/tests/browser/robocop/robocop.ini @@ -99,8 +99,8 @@ skip-if = android_version == "10" || android_version == "18" # disabled on Android 2.3, bug 979600; on 4.3, bug 1145879 skip-if = android_version == "10" || android_version == "18" [testSettingsMenuItems.java] -# disabled on Android 2.3, bug 979552; on 4.3, bug 1144898 -skip-if = android_version == "10" || android_version == "18" +# disabled on 4.3, bug 1144898 +skip-if = android_version == "18" # [testShareLink.java] # see bug 915897 [testSystemPages.java] # disabled on 2.3, bug 979603; on 4.3, bug 1142811 diff --git a/mobile/android/tests/browser/robocop/testSettingsMenuItems.java b/mobile/android/tests/browser/robocop/testSettingsMenuItems.java index cb01fb673fc..fb937680eaf 100644 --- a/mobile/android/tests/browser/robocop/testSettingsMenuItems.java +++ b/mobile/android/tests/browser/robocop/testSettingsMenuItems.java @@ -144,7 +144,7 @@ public class testSettingsMenuItems extends PixelTest { "The Settings menu did not load", mStringHelper.SETTINGS_LABEL); // Dismiss the Settings screen and verify that the view is returned to about:home page - mActions.sendSpecialKey(Actions.SpecialKey.BACK); + mSolo.goBack(); // Waiting for page title to appear to be sure that is fully loaded before opening the menu mAsserter.ok(mSolo.waitForText(mStringHelper.TITLE_PLACE_HOLDER), "about:home did not load", @@ -281,7 +281,7 @@ public class testSettingsMenuItems extends PixelTest { mSolo.clickOnText("^Cancel$"); } else { // Some submenus aren't dialogs, but are nested screens; exit using "back". - mActions.sendSpecialKey(Actions.SpecialKey.BACK); + mSolo.goBack(); } } } @@ -290,10 +290,8 @@ public class testSettingsMenuItems extends PixelTest { if (mDevice.type.equals("phone")) { int menuDepth = menuPath.length; while (menuDepth > 0) { - mActions.sendSpecialKey(Actions.SpecialKey.BACK); + mSolo.goBack(); menuDepth--; - // Sleep so subsequent back actions aren't lost. - mSolo.sleep(150); } } } From c2e991b90dbe5037b821993491291c2639343d5f Mon Sep 17 00:00:00 2001 From: Jordan Santell Date: Thu, 11 Jun 2015 16:13:14 -0700 Subject: [PATCH 16/34] Bug 1174013 - Move JIT model tests to xpcshell tests. r=shu --- browser/devtools/performance/test/browser.ini | 2 -- .../test_jit-model-01.js} | 28 +++++++++---------- .../test_jit-model-02.js} | 28 +++++++++---------- .../performance/test/unit/xpcshell.ini | 2 ++ 4 files changed, 30 insertions(+), 30 deletions(-) rename browser/devtools/performance/test/{browser_perf-jit-model-01.js => unit/test_jit-model-01.js} (76%) rename browser/devtools/performance/test/{browser_perf-jit-model-02.js => unit/test_jit-model-02.js} (72%) diff --git a/browser/devtools/performance/test/browser.ini b/browser/devtools/performance/test/browser.ini index b9ffb6274b2..dfed976274f 100644 --- a/browser/devtools/performance/test/browser.ini +++ b/browser/devtools/performance/test/browser.ini @@ -68,8 +68,6 @@ support-files = [browser_perf-highlighted.js] [browser_perf-jit-view-01.js] [browser_perf-jit-view-02.js] -[browser_perf-jit-model-01.js] -[browser_perf-jit-model-02.js] [browser_perf-loading-01.js] [browser_perf-loading-02.js] [browser_perf-marker-details-01.js] diff --git a/browser/devtools/performance/test/browser_perf-jit-model-01.js b/browser/devtools/performance/test/unit/test_jit-model-01.js similarity index 76% rename from browser/devtools/performance/test/browser_perf-jit-model-01.js rename to browser/devtools/performance/test/unit/test_jit-model-01.js index b2d30324819..617b4f146a7 100644 --- a/browser/devtools/performance/test/browser_perf-jit-model-01.js +++ b/browser/devtools/performance/test/unit/test_jit-model-01.js @@ -7,9 +7,11 @@ * FrameNode, and the returning of that data is as expected. */ -const RecordingUtils = devtools.require("devtools/performance/recording-utils"); +function run_test() { + run_next_test(); +} -function test() { +add_task(function test() { let { JITOptimizations } = devtools.require("devtools/performance/jit"); let rawSites = []; @@ -25,18 +27,16 @@ function test() { let [first, second, third] = sites; - is(first.id, 0, "site id is array index"); - is(first.samples, 3, "first OptimizationSiteProfile has correct sample count"); - is(first.data.line, 34, "includes OptimizationSite as reference under `data`"); - is(second.id, 1, "site id is array index"); - is(second.samples, 2, "second OptimizationSiteProfile has correct sample count"); - is(second.data.line, 12, "includes OptimizationSite as reference under `data`"); - is(third.id, 2, "site id is array index"); - is(third.samples, 1, "third OptimizationSiteProfile has correct sample count"); - is(third.data.line, 78, "includes OptimizationSite as reference under `data`"); - - finish(); -} + equal(first.id, 0, "site id is array index"); + equal(first.samples, 3, "first OptimizationSiteProfile has correct sample count"); + equal(first.data.line, 34, "includes OptimizationSite as reference under `data`"); + equal(second.id, 1, "site id is array index"); + equal(second.samples, 2, "second OptimizationSiteProfile has correct sample count"); + equal(second.data.line, 12, "includes OptimizationSite as reference under `data`"); + equal(third.id, 2, "site id is array index"); + equal(third.samples, 1, "third OptimizationSiteProfile has correct sample count"); + equal(third.data.line, 78, "includes OptimizationSite as reference under `data`"); +}); let gStringTable = new RecordingUtils.UniqueStrings(); diff --git a/browser/devtools/performance/test/browser_perf-jit-model-02.js b/browser/devtools/performance/test/unit/test_jit-model-02.js similarity index 72% rename from browser/devtools/performance/test/browser_perf-jit-model-02.js rename to browser/devtools/performance/test/unit/test_jit-model-02.js index 1ac6d200adc..b392300c23b 100644 --- a/browser/devtools/performance/test/browser_perf-jit-model-02.js +++ b/browser/devtools/performance/test/unit/test_jit-model-02.js @@ -6,9 +6,11 @@ * OptimizationSites methods work as expected. */ -const RecordingUtils = devtools.require("devtools/performance/recording-utils"); +function run_test() { + run_next_test(); +} -function test() { +add_task(function test() { let { JITOptimizations, OptimizationSite } = devtools.require("devtools/performance/jit"); let rawSites = []; @@ -25,22 +27,20 @@ function test() { let [first, second, third] = sites; /* hasSuccessfulOutcome */ - is(first.hasSuccessfulOutcome(), false, "optSite.hasSuccessfulOutcome() returns expected (1)"); - is(second.hasSuccessfulOutcome(), true, "optSite.hasSuccessfulOutcome() returns expected (2)"); - is(third.hasSuccessfulOutcome(), true, "optSite.hasSuccessfulOutcome() returns expected (3)"); + equal(first.hasSuccessfulOutcome(), false, "optSite.hasSuccessfulOutcome() returns expected (1)"); + equal(second.hasSuccessfulOutcome(), true, "optSite.hasSuccessfulOutcome() returns expected (2)"); + equal(third.hasSuccessfulOutcome(), true, "optSite.hasSuccessfulOutcome() returns expected (3)"); /* getAttempts */ - is(first.getAttempts().length, 2, "optSite.getAttempts() has the correct amount of attempts (1)"); - is(second.getAttempts().length, 5, "optSite.getAttempts() has the correct amount of attempts (2)"); - is(third.getAttempts().length, 3, "optSite.getAttempts() has the correct amount of attempts (3)"); + equal(first.getAttempts().length, 2, "optSite.getAttempts() has the correct amount of attempts (1)"); + equal(second.getAttempts().length, 5, "optSite.getAttempts() has the correct amount of attempts (2)"); + equal(third.getAttempts().length, 3, "optSite.getAttempts() has the correct amount of attempts (3)"); /* getIonTypes */ - is(first.getIonTypes().length, 1, "optSite.getIonTypes() has the correct amount of IonTypes (1)"); - is(second.getIonTypes().length, 2, "optSite.getIonTypes() has the correct amount of IonTypes (2)"); - is(third.getIonTypes().length, 1, "optSite.getIonTypes() has the correct amount of IonTypes (3)"); - - finish(); -} + equal(first.getIonTypes().length, 1, "optSite.getIonTypes() has the correct amount of IonTypes (1)"); + equal(second.getIonTypes().length, 2, "optSite.getIonTypes() has the correct amount of IonTypes (2)"); + equal(third.getIonTypes().length, 1, "optSite.getIonTypes() has the correct amount of IonTypes (3)"); +}); let gStringTable = new RecordingUtils.UniqueStrings(); diff --git a/browser/devtools/performance/test/unit/xpcshell.ini b/browser/devtools/performance/test/unit/xpcshell.ini index acefb997ea9..bae59d630fe 100644 --- a/browser/devtools/performance/test/unit/xpcshell.ini +++ b/browser/devtools/performance/test/unit/xpcshell.ini @@ -10,6 +10,8 @@ skip-if = toolkit == 'android' || toolkit == 'gonk' [test_marker-blueprint.js] [test_marker-utils.js] [test_profiler-categories.js] +[test_jit-model-01.js] +[test_jit-model-02.js] [test_tree-model-01.js] [test_tree-model-02.js] [test_tree-model-03.js] From 3d272d9b4825312396f0b204d718e7d93a032260 Mon Sep 17 00:00:00 2001 From: Jordan Santell Date: Tue, 16 Jun 2015 17:25:21 -0700 Subject: [PATCH 17/34] Bug 1174889 - Record optimization tiers over time in FrameNodes, and create a utility function for converting the tier data to plottable points in a stacked mountain graph. --- .../performance/modules/logic/frame-utils.js | 2 + .../devtools/performance/modules/logic/jit.js | 91 ++++++++- .../performance/modules/logic/tree-model.js | 47 +++-- .../test/unit/test_jit-graph-data.js | 186 ++++++++++++++++++ 4 files changed, 312 insertions(+), 14 deletions(-) create mode 100644 browser/devtools/performance/test/unit/test_jit-graph-data.js diff --git a/browser/devtools/performance/modules/logic/frame-utils.js b/browser/devtools/performance/modules/logic/frame-utils.js index 1ddaa8669c8..ee4df8a876e 100644 --- a/browser/devtools/performance/modules/logic/frame-utils.js +++ b/browser/devtools/performance/modules/logic/frame-utils.js @@ -259,6 +259,7 @@ function getOrAddInflatedFrame(cache, index, frameTable, stringTable, allocation */ function InflatedFrame(index, frameTable, stringTable, allocationsTable) { const LOCATION_SLOT = frameTable.schema.location; + const IMPLEMENTATION_SLOT = frameTable.schema.implementation; const OPTIMIZATIONS_SLOT = frameTable.schema.optimizations; const LINE_SLOT = frameTable.schema.line; const CATEGORY_SLOT = frameTable.schema.category; @@ -266,6 +267,7 @@ function InflatedFrame(index, frameTable, stringTable, allocationsTable) { let frame = frameTable.data[index]; let category = frame[CATEGORY_SLOT]; this.location = stringTable[frame[LOCATION_SLOT]]; + this.implementation = frame[IMPLEMENTATION_SLOT]; this.optimizations = frame[OPTIMIZATIONS_SLOT]; this.line = frame[LINE_SLOT]; this.column = undefined; diff --git a/browser/devtools/performance/modules/logic/jit.js b/browser/devtools/performance/modules/logic/jit.js index 8a5578a7cf0..1a8b28d9ffc 100644 --- a/browser/devtools/performance/modules/logic/jit.js +++ b/browser/devtools/performance/modules/logic/jit.js @@ -207,7 +207,7 @@ const JITOptimizations = function (rawSites, stringTable) { }; } - this.optimizationSites = sites.sort((a, b) => b.samples - a.samples);; + this.optimizationSites = sites.sort((a, b) => b.samples - a.samples); }; /** @@ -252,5 +252,94 @@ function maybeTypeset(typeset, stringTable) { }); } +// Map of optimization implementation names to an enum. +const IMPLEMENTATION_MAP = { + "interpreter": 0, + "baseline": 1, + "ion": 2 +}; +const IMPLEMENTATION_NAMES = Object.keys(IMPLEMENTATION_MAP); + +/** + * Takes data from a FrameNode and computes rendering positions for + * a stacked mountain graph, to visualize JIT optimization tiers over time. + * + * @param {FrameNode} frameNode + * The FrameNode who's optimizations we're iterating. + * @param {Array} sampleTimes + * An array of every sample time within the range we're counting. + * From a ThreadNode's `sampleTimes` property. + * @param {number} op.startTime + * The start time of the first sample. + * @param {number} op.endTime + * The end time of the last sample. + * @param {number} op.resolution + * The maximum amount of possible data points returned. + * Also determines the size in milliseconds of each bucket + * via `(endTime - startTime) / resolution` + * @return {?Array} + */ +function createTierGraphDataFromFrameNode (frameNode, sampleTimes, { startTime, endTime, resolution }) { + if (!frameNode.hasOptimizations()) { + return; + } + + let tierData = frameNode.getOptimizationTierData(); + let duration = endTime - startTime; + let stringTable = frameNode._stringTable; + let output = []; + let implEnum; + + let tierDataIndex = 0; + let nextOptSample = tierData[tierDataIndex]; + + // Bucket data + let samplesInCurrentBucket = 0; + let currentBucketStartTime = sampleTimes[0]; + let bucket = []; + // Size of each bucket in milliseconds + let bucketSize = Math.ceil(duration / resolution); + + // Iterate one after the samples, so we can finalize the last bucket + for (let i = 0; i <= sampleTimes.length; i++) { + let sampleTime = sampleTimes[i]; + + // If this sample is in the next bucket, or we're done + // checking sampleTimes and on the last iteration, finalize previous bucket + if (sampleTime >= (currentBucketStartTime + bucketSize) || + i >= sampleTimes.length) { + + let dataPoint = {}; + dataPoint.ys = []; + dataPoint.x = currentBucketStartTime; + + // Map the opt site counts as a normalized percentage (0-1) + // of its count in context of total samples this bucket + for (let j = 0; j < IMPLEMENTATION_NAMES.length; j++) { + dataPoint.ys[j] = (bucket[j] || 0) / (samplesInCurrentBucket || 1); + } + output.push(dataPoint); + + // Set the new start time of this bucket and reset its count + currentBucketStartTime += bucketSize; + samplesInCurrentBucket = 0; + bucket = []; + } + + // If this sample observed an optimization in this frame, record it + if (nextOptSample && nextOptSample.time === sampleTime) { + // If no implementation defined, it was the "interpreter". + implEnum = IMPLEMENTATION_MAP[stringTable[nextOptSample.implementation] || "interpreter"]; + bucket[implEnum] = (bucket[implEnum] || 0) + 1; + nextOptSample = tierData[++tierDataIndex]; + } + + samplesInCurrentBucket++; + } + + return output; +} + +exports.createTierGraphDataFromFrameNode = createTierGraphDataFromFrameNode; exports.OptimizationSite = OptimizationSite; exports.JITOptimizations = JITOptimizations; diff --git a/browser/devtools/performance/modules/logic/tree-model.js b/browser/devtools/performance/modules/logic/tree-model.js index 10f15eaabad..1f058845c82 100644 --- a/browser/devtools/performance/modules/logic/tree-model.js +++ b/browser/devtools/performance/modules/logic/tree-model.js @@ -35,6 +35,7 @@ function ThreadNode(thread, options = {}) { throw new Error("ThreadNode requires both `startTime` and `endTime`."); } this.samples = 0; + this.sampleTimes = []; this.youngestFrameSamples = 0; this.calls = []; this.duration = options.endTime - options.startTime; @@ -131,11 +132,6 @@ ThreadNode.prototype = { let endTime = options.endTime; let flattenRecursion = options.flattenRecursion; - // Take the timestamp of the first sample as prevSampleTime. 0 is - // incorrect due to circular buffer wraparound. If wraparound happens, - // then the first sample will have an incorrect, large duration. - let prevSampleTime = samplesData[0][SAMPLE_TIME_SLOT]; - // Reused options object passed to InflatedFrame.prototype.getFrameKey. let mutableFrameKeyOptions = { contentOnly: options.contentOnly, @@ -144,9 +140,7 @@ ThreadNode.prototype = { isMetaCategoryOut: false }; - // Start iteration at the second sample, as we use the first sample to - // compute prevSampleTime. - for (let i = 1; i < samplesData.length; i++) { + for (let i = 0; i < samplesData.length; i++) { let sample = samplesData[i]; let sampleTime = sample[SAMPLE_TIME_SLOT]; @@ -156,7 +150,6 @@ ThreadNode.prototype = { // Thus, we compare sampleTime <= start instead of < to filter out // samples that end exactly at the start time. if (!sampleTime || sampleTime <= startTime || sampleTime > endTime) { - prevSampleTime = sampleTime; continue; } @@ -235,7 +228,10 @@ ThreadNode.prototype = { leafTable); if (isLeaf) { frameNode.youngestFrameSamples++; - frameNode._addOptimizations(inflatedFrame.optimizations, stringTable); + if (inflatedFrame.optimizations) { + frameNode._addOptimizations(inflatedFrame.optimizations, inflatedFrame.implementation, + sampleTime, stringTable); + } } frameNode.samples++; @@ -245,6 +241,7 @@ ThreadNode.prototype = { } this.samples++; + this.sampleTimes.push(sampleTime); } }, @@ -372,6 +369,7 @@ function FrameNode(frameKey, { location, line, category, allocations, isContent this.calls = []; this.isContent = !!isContent; this._optimizations = null; + this._tierData = null; this._stringTable = null; this.isMetaCategory = !!isMetaCategory; this.category = category; @@ -384,19 +382,30 @@ FrameNode.prototype = { * @param object optimizationSite * Any JIT optimization information attached to the current * sample. Lazily inflated via stringTable. + * @param number implementation + * JIT implementation used for this observed frame (interpreter, + * baseline, ion); + * @param number time + * The time this optimization occurred. * @param object stringTable * The string table used to inflate the optimizationSite. */ - _addOptimizations: function (optimizationSite, stringTable) { + _addOptimizations: function (site, implementation, time, stringTable) { // Simply accumulate optimization sites for now. Processing is done lazily // by JITOptimizations, if optimization information is actually displayed. - if (optimizationSite) { + if (site) { let opts = this._optimizations; if (opts === null) { opts = this._optimizations = []; this._stringTable = stringTable; } - opts.push(optimizationSite); + opts.push(site); + + if (this._tierData === null) { + this._tierData = []; + } + // Record type of implementation used and the sample time + this._tierData.push({ implementation, time }); } }, @@ -475,6 +484,18 @@ FrameNode.prototype = { } return new JITOptimizations(this._optimizations, this._stringTable); }, + + /** + * Returns the optimization tiers used overtime. + * + * @return {?Array} + */ + getOptimizationTierData: function () { + if (!this._tierData) { + return null; + } + return this._tierData; + } }; exports.ThreadNode = ThreadNode; diff --git a/browser/devtools/performance/test/unit/test_jit-graph-data.js b/browser/devtools/performance/test/unit/test_jit-graph-data.js new file mode 100644 index 00000000000..0ec7617dffa --- /dev/null +++ b/browser/devtools/performance/test/unit/test_jit-graph-data.js @@ -0,0 +1,186 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Unit test for `createTierGraphDataFromFrameNode` function. + */ + +function run_test() { + run_next_test(); +} + +const SAMPLE_COUNT = 1000; +const RESOLUTION = 50; +const TIME_PER_SAMPLE = 5; + +// Offset needed since ThreadNode requires the first sample to be strictly +// greater than its start time. This lets us still have pretty numbers +// in this test to keep it (more) simple, which it sorely needs. +const TIME_OFFSET = 5; + +add_task(function test() { + let { ThreadNode } = devtools.require("devtools/performance/tree-model"); + let { createTierGraphDataFromFrameNode } = devtools.require("devtools/performance/jit"); + + // Select the second half of the set of samples + let startTime = (SAMPLE_COUNT / 2 * TIME_PER_SAMPLE) - TIME_OFFSET; + let endTime = (SAMPLE_COUNT * TIME_PER_SAMPLE) - TIME_OFFSET; + let invertTree = true; + + let root = new ThreadNode(gThread, { invertTree, startTime, endTime }); + + equal(root.samples, SAMPLE_COUNT / 2, "root has correct amount of samples"); + equal(root.sampleTimes.length, SAMPLE_COUNT / 2, "root has correct amount of sample times"); + // Add time offset since the first sample begins TIME_OFFSET after startTime + equal(root.sampleTimes[0], startTime + TIME_OFFSET, "root recorded first sample time in scope"); + equal(root.sampleTimes[root.sampleTimes.length - 1], endTime, "root recorded last sample time in scope"); + + let frame = getFrameNodePath(root, "X"); + let data = createTierGraphDataFromFrameNode(frame, root.sampleTimes, { startTime, endTime, resolution: RESOLUTION }); + + let TIME_PER_WINDOW = SAMPLE_COUNT / 2 / RESOLUTION * TIME_PER_SAMPLE; + + for (let i = 0; i < 10; i++) { + equal(data[i].x, startTime + TIME_OFFSET + (TIME_PER_WINDOW * i), "first window has correct x"); + equal(data[i].ys[0], 0.2, "first window has 2 frames in interpreter"); + equal(data[i].ys[1], 0.2, "first window has 2 frames in baseline"); + equal(data[i].ys[2], 0.2, "first window has 2 frames in ion"); + } + for (let i = 10; i < 20; i++) { + equal(data[i].x, startTime + TIME_OFFSET + (TIME_PER_WINDOW * i), "second window has correct x"); + equal(data[i].ys[0], 0, "second window observed no optimizations"); + equal(data[i].ys[1], 0, "second window observed no optimizations"); + equal(data[i].ys[2], 0, "second window observed no optimizations"); + } + for (let i = 20; i < 30; i++) { + equal(data[i].x, startTime + TIME_OFFSET + (TIME_PER_WINDOW * i), "third window has correct x"); + equal(data[i].ys[0], 0.3, "third window has 3 frames in interpreter"); + equal(data[i].ys[1], 0, "third window has 0 frames in baseline"); + equal(data[i].ys[2], 0, "third window has 0 frames in ion"); + } +}); + +let gUniqueStacks = new RecordingUtils.UniqueStacks(); + +function uniqStr(s) { + return gUniqueStacks.getOrAddStringIndex(s); +} + +const TIER_PATTERNS = [ + // 0-99 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + // 100-199 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + // 200-299 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + // 300-399 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + // 400-499 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + + // 500-599 + // Test current frames in all opts, including that + // the same frame with no opts does not get counted + ["X", "X", "A", "A", "X_1", "X_2", "X_1", "X_2", "X_0", "X_0"], + + // 600-699 + // Nothing for current frame + ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"], + + // 700-799 + // A few frames where the frame is not the leaf node + ["X_2 -> Y", "X_2 -> Y", "X_2 -> Y", "X_0", "X_0", "X_0", "A", "A", "A", "A"], + + // 800-899 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], + // 900-999 + ["X", "X", "X", "X", "X", "X", "X", "X", "X", "X"], +]; + +function createSample (i, frames) { + let sample = {}; + sample.time = i * TIME_PER_SAMPLE; + sample.frames = [{ location: "(root)" }]; + if (i === 0) { + return sample; + } + if (frames) { + frames.split(" -> ").forEach(frame => sample.frames.push({ location: frame })); + } + return sample; +} + +let SAMPLES = (function () { + let samples = []; + + for (let i = 0; i < SAMPLE_COUNT;) { + let pattern = TIER_PATTERNS[Math.floor(i/100)]; + for (let j = 0; j < pattern.length; j++) { + samples.push(createSample(i+j, pattern[j])); + } + i += 10; + } + + return samples; +})(); + +let gThread = RecordingUtils.deflateThread({ samples: SAMPLES, markers: [] }, gUniqueStacks); + +let gRawSite1 = { + line: 12, + column: 2, + types: [{ + mirType: uniqStr("Object"), + site: uniqStr("B (http://foo/bar:10)"), + typeset: [{ + keyedBy: uniqStr("constructor"), + name: uniqStr("Foo"), + location: uniqStr("B (http://foo/bar:10)") + }, { + keyedBy: uniqStr("primitive"), + location: uniqStr("self-hosted") + }] + }], + attempts: { + schema: { + outcome: 0, + strategy: 1 + }, + data: [ + [uniqStr("Failure1"), uniqStr("SomeGetter1")], + [uniqStr("Failure2"), uniqStr("SomeGetter2")], + [uniqStr("Inlined"), uniqStr("SomeGetter3")] + ] + } +}; + +function serialize (x) { + return JSON.parse(JSON.stringify(x)); +} + +gThread.frameTable.data.forEach((frame) => { + const LOCATION_SLOT = gThread.frameTable.schema.location; + const OPTIMIZATIONS_SLOT = gThread.frameTable.schema.optimizations; + const IMPLEMENTATION_SLOT = gThread.frameTable.schema.implementation; + + let l = gThread.stringTable[frame[LOCATION_SLOT]]; + switch (l) { + // Rename some of the location sites so we can register different + // frames with different opt sites + case "X_0": + frame[LOCATION_SLOT] = uniqStr("X"); + frame[OPTIMIZATIONS_SLOT] = serialize(gRawSite1); + frame[IMPLEMENTATION_SLOT] = null; + break; + case "X_1": + frame[LOCATION_SLOT] = uniqStr("X"); + frame[OPTIMIZATIONS_SLOT] = serialize(gRawSite1); + frame[IMPLEMENTATION_SLOT] = uniqStr("baseline"); + break; + case "X_2": + frame[LOCATION_SLOT] = uniqStr("X"); + frame[OPTIMIZATIONS_SLOT] = serialize(gRawSite1); + frame[IMPLEMENTATION_SLOT] = uniqStr("ion"); + break; + } +}); From 49e0afaa4e3351b8db7b84d3cbb6f5ed3c665330 Mon Sep 17 00:00:00 2001 From: Jordan Santell Date: Wed, 17 Jun 2015 14:57:45 -0700 Subject: [PATCH 18/34] Bug 1175705 - Make enable-jit-optimizations a recording-feature rather than a toggleable display feature. r=vp --- browser/app/profile/firefox.js | 2 +- .../performance/modules/logic/front.js | 1 + .../modules/logic/recording-model.js | 4 +- .../performance/performance-controller.js | 1 + browser/devtools/performance/performance.xul | 8 ++-- browser/devtools/performance/test/browser.ini | 1 + .../test/browser_perf-jit-view-01.js | 11 ++--- .../test/browser_perf-jit-view-02.js | 6 +-- ...owser_perf-options-enable-optimizations.js | 44 +++++++++++++++++++ browser/devtools/performance/test/head.js | 4 +- .../performance/test/unit/xpcshell.ini | 1 + .../performance/views/details-js-call-tree.js | 16 +++++++ .../performance/views/jit-optimizations.js | 32 +++++--------- browser/devtools/performance/views/toolbar.js | 2 +- .../chrome/browser/devtools/profiler.dtd | 8 ++-- 15 files changed, 93 insertions(+), 48 deletions(-) create mode 100644 browser/devtools/performance/test/browser_perf-options-enable-optimizations.js diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index bc876e9f57a..56476ef10d2 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1462,7 +1462,7 @@ pref("devtools.performance.ui.show-idle-blocks", true); pref("devtools.performance.ui.enable-memory", false); pref("devtools.performance.ui.enable-allocations", false); pref("devtools.performance.ui.enable-framerate", true); -pref("devtools.performance.ui.show-jit-optimizations", false); +pref("devtools.performance.ui.enable-jit-optimizations", false); // Enable experimental options in the UI only in Nightly #if defined(NIGHTLY_BUILD) diff --git a/browser/devtools/performance/modules/logic/front.js b/browser/devtools/performance/modules/logic/front.js index b7e0377d9ff..e37c34b658e 100644 --- a/browser/devtools/performance/modules/logic/front.js +++ b/browser/devtools/performance/modules/logic/front.js @@ -460,6 +460,7 @@ function getRecordingModelPrefs () { withMemory: Services.prefs.getBoolPref("devtools.performance.ui.enable-memory"), withTicks: Services.prefs.getBoolPref("devtools.performance.ui.enable-framerate"), withAllocations: Services.prefs.getBoolPref("devtools.performance.ui.enable-allocations"), + withJITOptimizations: Services.prefs.getBoolPref("devtools.performance.ui.enable-jit-optimizations"), allocationsSampleProbability: +Services.prefs.getCharPref("devtools.performance.memory.sample-probability"), allocationsMaxLogLength: Services.prefs.getIntPref("devtools.performance.memory.max-log-length") }; diff --git a/browser/devtools/performance/modules/logic/recording-model.js b/browser/devtools/performance/modules/logic/recording-model.js index 1eb2ceac401..311a0e8839d 100644 --- a/browser/devtools/performance/modules/logic/recording-model.js +++ b/browser/devtools/performance/modules/logic/recording-model.js @@ -25,6 +25,7 @@ const RecordingModel = function (options={}) { withTicks: options.withTicks || false, withMemory: options.withMemory || false, withAllocations: options.withAllocations || false, + withJITOptimizations: options.withJITOptimizations || false, allocationsSampleProbability: options.allocationsSampleProbability || 0, allocationsMaxLogLength: options.allocationsMaxLogLength || 0, bufferSize: options.bufferSize || 0, @@ -184,7 +185,8 @@ RecordingModel.prototype = { /** * Returns configuration object of specifying whether the recording - * was started withTicks, withMemory and withAllocations. + * was started withTicks, withMemory and withAllocations and other + * recording options. * @return object */ getConfiguration: function () { diff --git a/browser/devtools/performance/performance-controller.js b/browser/devtools/performance/performance-controller.js index 4fbc1e75800..494b5dfef88 100644 --- a/browser/devtools/performance/performance-controller.js +++ b/browser/devtools/performance/performance-controller.js @@ -295,6 +295,7 @@ let PerformanceController = { withMarkers: true, withMemory: this.getOption("enable-memory"), withTicks: this.getOption("enable-framerate"), + withJITOptimizations: this.getOption("enable-jit-optimizations"), withAllocations: this.getOption("enable-allocations"), allocationsSampleProbability: this.getPref("memory-sample-probability"), allocationsMaxLogLength: this.getPref("memory-max-log-length"), diff --git a/browser/devtools/performance/performance.xul b/browser/devtools/performance/performance.xul index 5efaa81a2e7..5f5f62bd827 100644 --- a/browser/devtools/performance/performance.xul +++ b/browser/devtools/performance/performance.xul @@ -69,12 +69,12 @@ data-pref="flatten-tree-recursion" label="&profilerUI.flattenTreeRecursion;" tooltiptext="&profilerUI.flattenTreeRecursion.tooltiptext;"/> - + data-pref="enable-jit-optimizations" + label="&profilerUI.enableJITOptimizations;" + tooltiptext="&profilerUI.enableJITOptimizations.tooltiptext;"/> diff --git a/browser/devtools/performance/test/browser.ini b/browser/devtools/performance/test/browser.ini index dfed976274f..7f1958a63bf 100644 --- a/browser/devtools/performance/test/browser.ini +++ b/browser/devtools/performance/test/browser.ini @@ -86,6 +86,7 @@ support-files = [browser_perf-options-show-idle-blocks-02.js] [browser_perf-options-enable-memory-01.js] [browser_perf-options-enable-memory-02.js] +[browser_perf-options-enable-optimizations.js] [browser_perf-options-enable-framerate.js] [browser_perf-options-allocations.js] [browser_perf-options-profiler.js] diff --git a/browser/devtools/performance/test/browser_perf-jit-view-01.js b/browser/devtools/performance/test/browser_perf-jit-view-01.js index c6ede9db7dc..dd4d3604596 100644 --- a/browser/devtools/performance/test/browser_perf-jit-view-01.js +++ b/browser/devtools/performance/test/browser_perf-jit-view-01.js @@ -17,7 +17,9 @@ function* spawnTest() { let profilerData = { threads: [gThread] } - is(Services.prefs.getBoolPref(JIT_PREF), false, "show JIT Optimizations pref off by default"); + is(Services.prefs.getBoolPref(JIT_PREF), false, "record JIT Optimizations pref off by default"); + Services.prefs.setBoolPref(JIT_PREF, true); + is(Services.prefs.getBoolPref(JIT_PREF), true, "toggle on record JIT Optimizations"); // Make two recordings, so we have one to switch to later, as the // second one will have fake sample data @@ -56,27 +58,20 @@ function* spawnTest() { let recording = PerformanceController.getCurrentRecording(); recording._profile = profilerData; - is($("#jit-optimizations-view").hidden, true, "JIT Optimizations panel is hidden when pref off."); - // Force a rerender let rendered = once(JsCallTreeView, EVENTS.JS_CALL_TREE_RENDERED); JsCallTreeView.render(OverviewView.getTimeInterval()); yield rendered; - is($("#jit-optimizations-view").hidden, true, "JIT Optimizations panel still hidden when rerendered"); - Services.prefs.setBoolPref(JIT_PREF, true); is($("#jit-optimizations-view").hidden, false, "JIT Optimizations should be visible when pref is on"); ok($("#jit-optimizations-view").classList.contains("empty"), "JIT Optimizations view has empty message when no frames selected."); - - Services.prefs.setBoolPref(JIT_PREF, false); } function *checkFrame (frameIndex, expectedOpts=[]) { // Click the frame let rendered = once(JITOptimizationsView, EVENTS.OPTIMIZATIONS_RENDERED); mousedown(window, $$(".call-tree-item")[frameIndex]); - Services.prefs.setBoolPref(JIT_PREF, true); yield rendered; ok(true, "JITOptimizationsView rendered when enabling with the current frame node selected"); diff --git a/browser/devtools/performance/test/browser_perf-jit-view-02.js b/browser/devtools/performance/test/browser_perf-jit-view-02.js index 924a75a250a..e289f24d49d 100644 --- a/browser/devtools/performance/test/browser_perf-jit-view-02.js +++ b/browser/devtools/performance/test/browser_perf-jit-view-02.js @@ -19,7 +19,7 @@ function* spawnTest() { let profilerData = { threads: [gThread] }; - is(Services.prefs.getBoolPref(JIT_PREF), false, "show JIT Optimizations pref off by default"); + Services.prefs.setBoolPref(JIT_PREF, true); // Make two recordings, so we have one to switch to later, as the // second one will have fake sample data @@ -33,7 +33,6 @@ function* spawnTest() { yield injectAndRenderProfilerData(); - Services.prefs.setBoolPref(JIT_PREF, true); // Click the frame let rendered = once(JITOptimizationsView, EVENTS.OPTIMIZATIONS_RENDERED); mousedown(window, $$(".call-tree-item")[2]); @@ -64,11 +63,8 @@ function* spawnTest() { JsCallTreeView.render(OverviewView.getTimeInterval()); yield rendered; - Services.prefs.setBoolPref(JIT_PREF, true); ok($("#jit-optimizations-view").classList.contains("empty"), "JIT Optimizations view has empty message when no frames selected."); - - Services.prefs.setBoolPref(JIT_PREF, false); } } diff --git a/browser/devtools/performance/test/browser_perf-options-enable-optimizations.js b/browser/devtools/performance/test/browser_perf-options-enable-optimizations.js new file mode 100644 index 00000000000..e6b10bd2bed --- /dev/null +++ b/browser/devtools/performance/test/browser_perf-options-enable-optimizations.js @@ -0,0 +1,44 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests that `enable-jit-optimizations` sets the recording to subsequently + * display optimizations info. + */ +function* spawnTest() { + let { panel } = yield initPerformance(SIMPLE_URL); + let { EVENTS, PerformanceController, $, DetailsView, JsCallTreeView } = panel.panelWin; + Services.prefs.setBoolPref(JIT_PREF, true); + + + yield startRecording(panel); + let rendered = once(JsCallTreeView, EVENTS.JS_CALL_TREE_RENDERED); + yield stopRecording(panel); + + yield DetailsView.selectView("js-calltree"); + ok(DetailsView.isViewSelected(JsCallTreeView), "The call tree is now selected."); + yield rendered; + + let recording = PerformanceController.getCurrentRecording(); + is(recording.getConfiguration().withJITOptimizations, true, "recording model has withJITOptimizations as true"); + + // Set back to false, should not affect display of first recording + info("Disabling enable-jit-optimizations"); + Services.prefs.setBoolPref(JIT_PREF, false); + is($("#jit-optimizations-view").hidden, false, "JIT Optimizations panel is displayed when feature enabled."); + + yield startRecording(panel); + rendered = once(JsCallTreeView, EVENTS.JS_CALL_TREE_RENDERED); + yield stopRecording(panel); + + yield DetailsView.selectView("js-calltree"); + ok(DetailsView.isViewSelected(JsCallTreeView), "The call tree is now selected."); + yield rendered; + + recording = PerformanceController.getCurrentRecording(); + is(recording.getConfiguration().withJITOptimizations, false, "recording model has withJITOptimizations as false"); + is($("#jit-optimizations-view").hidden, true, "JIT Optimizations panel is hidden when feature disabled"); + + yield teardown(panel); + finish(); +} diff --git a/browser/devtools/performance/test/head.js b/browser/devtools/performance/test/head.js index 7d2e11e8fd3..0964d38e4ae 100644 --- a/browser/devtools/performance/test/head.js +++ b/browser/devtools/performance/test/head.js @@ -39,7 +39,7 @@ const IDLE_PREF = "devtools.performance.ui.show-idle-blocks"; const INVERT_PREF = "devtools.performance.ui.invert-call-tree"; const INVERT_FLAME_PREF = "devtools.performance.ui.invert-flame-graph"; const FLATTEN_PREF = "devtools.performance.ui.flatten-tree-recursion"; -const JIT_PREF = "devtools.performance.ui.show-jit-optimizations"; +const JIT_PREF = "devtools.performance.ui.enable-jit-optimizations"; const EXPERIMENTAL_PREF = "devtools.performance.ui.experimental"; // All tests are asynchronous. @@ -56,7 +56,7 @@ let DEFAULT_PREFS = [ "devtools.performance.ui.enable-memory", "devtools.performance.ui.enable-allocations", "devtools.performance.ui.enable-framerate", - "devtools.performance.ui.show-jit-optimizations", + "devtools.performance.ui.enable-jit-optimizations", "devtools.performance.memory.sample-probability", "devtools.performance.memory.max-log-length", "devtools.performance.profiler.buffer-size", diff --git a/browser/devtools/performance/test/unit/xpcshell.ini b/browser/devtools/performance/test/unit/xpcshell.ini index bae59d630fe..840e1078ceb 100644 --- a/browser/devtools/performance/test/unit/xpcshell.ini +++ b/browser/devtools/performance/test/unit/xpcshell.ini @@ -10,6 +10,7 @@ skip-if = toolkit == 'android' || toolkit == 'gonk' [test_marker-blueprint.js] [test_marker-utils.js] [test_profiler-categories.js] +[test_jit-graph-data.js] [test_jit-model-01.js] [test_jit-model-02.js] [test_tree-model-01.js] diff --git a/browser/devtools/performance/views/details-js-call-tree.js b/browser/devtools/performance/views/details-js-call-tree.js index 867248309e1..a20787398b7 100644 --- a/browser/devtools/performance/views/details-js-call-tree.js +++ b/browser/devtools/performance/views/details-js-call-tree.js @@ -54,6 +54,7 @@ let JsCallTreeView = Heritage.extend(DetailsSubview, { let profile = recording.getProfile(); let threadNode = this._prepareCallTree(profile, interval, options); this._populateCallTree(threadNode, options); + this._toggleJITOptimizationsView(recording); this.emit(EVENTS.JS_CALL_TREE_RENDERED); }, @@ -129,6 +130,21 @@ let JsCallTreeView = Heritage.extend(DetailsSubview, { return root; }, + /** + * Displays or hides the optimizations view based on the recordings + * optimizations feature. + * + * @param {RecordingModel} recording + */ + _toggleJITOptimizationsView: function (recording) { + if (recording && recording.getConfiguration().withJITOptimizations) { + JITOptimizationsView.show(); + JITOptimizationsView.render(); + } else { + JITOptimizationsView.hide(); + } + }, + toString: () => "[object JsCallTreeView]" }); diff --git a/browser/devtools/performance/views/jit-optimizations.js b/browser/devtools/performance/views/jit-optimizations.js index 03ffd10d809..f05d52a26a1 100644 --- a/browser/devtools/performance/views/jit-optimizations.js +++ b/browser/devtools/performance/views/jit-optimizations.js @@ -25,7 +25,6 @@ let JITOptimizationsView = { initialize: function () { this.reset = this.reset.bind(this); this._onFocusFrame = this._onFocusFrame.bind(this); - this._toggleVisibility = this._toggleVisibility.bind(this); this.el = $("#jit-optimizations-view"); this.$headerName = $("#jit-optimizations-header .header-function-name"); @@ -40,10 +39,7 @@ let JITOptimizationsView = { // Start the tree by resetting. this.reset(); - this._toggleVisibility(); - PerformanceController.on(EVENTS.RECORDING_SELECTED, this.reset); - PerformanceController.on(EVENTS.PREF_CHANGED, this._toggleVisibility); JsCallTreeView.on("focus", this._onFocusFrame); }, @@ -54,7 +50,6 @@ let JITOptimizationsView = { this.tree = null; this.$headerName = this.$headerFile = this.$headerLine = this.el = null; PerformanceController.off(EVENTS.RECORDING_SELECTED, this.reset); - PerformanceController.off(EVENTS.PREF_CHANGED, this._toggleVisibility); JsCallTreeView.off("focus", this._onFocusFrame); }, @@ -98,11 +93,20 @@ let JITOptimizationsView = { this.tree.clear(); }, + show: function () { + this.el.hidden = false; + }, + + hide: function () { + this.el.hidden = true; + }, + /** * Helper to determine whether or not this view should be enabled. */ isEnabled: function () { - return PerformanceController.getOption("show-jit-optimizations"); + let recording = PerformanceController.getCurrentRecording(); + return !!(recording && recording.getConfiguration().withJITOptimizations); }, /** @@ -381,22 +385,6 @@ let JITOptimizationsView = { url.indexOf("file://") === 0); }, - /** - * Toggles the visibility of the JITOptimizationsView based on the preference - * devtools.performance.ui.show-jit-optimizations. - */ - - _toggleVisibility: function () { - let enabled = this.isEnabled(); - this.el.hidden = !enabled; - - // If view is toggled on, and there's a frame node selected, - // attempt to render it - if (enabled) { - this.render(); - } - }, - /** * Called when the JSCallTreeView focuses on a frame. */ diff --git a/browser/devtools/performance/views/toolbar.js b/browser/devtools/performance/views/toolbar.js index 0b9a57a7d88..0ca02f1a5d0 100644 --- a/browser/devtools/performance/views/toolbar.js +++ b/browser/devtools/performance/views/toolbar.js @@ -93,7 +93,7 @@ let ToolbarView = { * hiding or showing all elements with class "experimental-option". * * TODO re-enable "#option-enable-memory" permanently once stable in bug 1163350 - * TODO re-enable "#option-show-jit-optimizations" permanently once stable in bug 1163351 + * TODO re-enable "#option-enable-jit-optimizations" permanently once stable in bug 1163351 * * @param {boolean} isEnabled */ diff --git a/browser/locales/en-US/chrome/browser/devtools/profiler.dtd b/browser/locales/en-US/chrome/browser/devtools/profiler.dtd index fa6e30f8acb..2eb8c8e529b 100644 --- a/browser/locales/en-US/chrome/browser/devtools/profiler.dtd +++ b/browser/locales/en-US/chrome/browser/devtools/profiler.dtd @@ -142,11 +142,11 @@ - - - + - should be recorded. --> + + From dd7202eeb4e544aa3a4a2410153b55c46a122595 Mon Sep 17 00:00:00 2001 From: Jordan Santell Date: Thu, 11 Jun 2015 18:45:21 -0700 Subject: [PATCH 19/34] Bug 1173695 - When extra threads are in a profile of a nested profile, stringified, handle that gracefully for older recordings. r=vp --- .../modules/logic/recording-utils.js | 14 ++ browser/devtools/performance/test/browser.ini | 1 + .../test/browser_perf_recordings-io-06.js | 142 ++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100644 browser/devtools/performance/test/browser_perf_recordings-io-06.js diff --git a/browser/devtools/performance/modules/logic/recording-utils.js b/browser/devtools/performance/modules/logic/recording-utils.js index 5569d99b075..095999db0f0 100644 --- a/browser/devtools/performance/modules/logic/recording-utils.js +++ b/browser/devtools/performance/modules/logic/recording-utils.js @@ -318,6 +318,20 @@ function deflateMarkers(markers, uniqueStacks) { * @return object */ function deflateThread(thread, uniqueStacks) { + // Some extra threads in a profile come stringified as a full profile (so + // it has nested threads itself) so the top level "thread" does not have markers + // or samples. We don't use this anyway so just make this safe to deflate. + // can be a string rather than an object on import. Bug 1173695 + if (typeof thread === "string") { + thread = JSON.parse(thread); + } + if (!thread.samples) { + thread.samples = []; + } + if (!thread.markers) { + thread.markers = []; + } + return { name: thread.name, tid: thread.tid, diff --git a/browser/devtools/performance/test/browser.ini b/browser/devtools/performance/test/browser.ini index 7f1958a63bf..fbb011b0385 100644 --- a/browser/devtools/performance/test/browser.ini +++ b/browser/devtools/performance/test/browser.ini @@ -115,6 +115,7 @@ support-files = [browser_perf_recordings-io-03.js] [browser_perf_recordings-io-04.js] [browser_perf_recordings-io-05.js] +[browser_perf_recordings-io-06.js] [browser_perf-range-changed-render.js] [browser_perf-recording-selected-01.js] [browser_perf-recording-selected-02.js] diff --git a/browser/devtools/performance/test/browser_perf_recordings-io-06.js b/browser/devtools/performance/test/browser_perf_recordings-io-06.js new file mode 100644 index 00000000000..82889852822 --- /dev/null +++ b/browser/devtools/performance/test/browser_perf_recordings-io-06.js @@ -0,0 +1,142 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +/** + * Tests if the performance tool can import profiler data when Profiler is v2 + * and requires deflating, and has an extra thread that's a string. Not sure + * what causes this. + */ +let RecordingUtils = devtools.require("devtools/performance/recording-utils"); + +let STRINGED_THREAD = (function () { + let thread = {}; + + thread.libs = [{ + start: 123, + end: 456, + offset: 0, + name: "", + breakpadId: "" + }]; + thread.meta = { version: 2, interval: 1, stackwalk: 0, processType: 1, startTime: 0 }; + thread.threads = [{ + name: "Plugin", + tid: 4197, + samples: [], + markers: [], + }]; + + return JSON.stringify(thread); +})(); + +let PROFILER_DATA = (function () { + let data = {}; + let threads = data.threads = []; + let thread = {}; + threads.push(thread); + threads.push(STRINGED_THREAD); + thread.name = "Content"; + thread.samples = [{ + time: 5, + frames: [ + { location: "(root)" }, + { location: "A" }, + { location: "B" }, + { location: "C" } + ] + }, { + time: 5 + 6, + frames: [ + { location: "(root)" }, + { location: "A" }, + { location: "B" }, + { location: "D" } + ] + }, { + time: 5 + 6 + 7, + frames: [ + { location: "(root)" }, + { location: "A" }, + { location: "E" }, + { location: "F" } + ] + }, { + time: 20, + frames: [ + { location: "(root)" }, + { location: "A" }, + { location: "B" }, + { location: "C" }, + { location: "D" }, + { location: "E" }, + { location: "F" }, + { location: "G" } + ] + }]; + + // Handled in other deflating tests + thread.markers = []; + + let meta = data.meta = {}; + meta.version = 2; + meta.interval = 1; + meta.stackwalk = 0; + meta.product = "Firefox"; + return data; +})(); + +let test = Task.async(function*() { + let { target, panel, toolbox } = yield initPerformance(SIMPLE_URL); + let { $, EVENTS, PerformanceController, DetailsView, JsCallTreeView } = panel.panelWin; + + let profilerData = { + profile: PROFILER_DATA, + duration: 10000, + configuration: {}, + fileType: "Recorded Performance Data", + version: 2 + }; + + let file = FileUtils.getFile("TmpD", ["tmpprofile.json"]); + file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt("666", 8)); + yield asyncCopy(profilerData, file); + + // Import recording. + + let calltreeRendered = once(JsCallTreeView, EVENTS.JS_CALL_TREE_RENDERED); + let imported = once(PerformanceController, EVENTS.RECORDING_IMPORTED); + yield PerformanceController.importRecording("", file); + + yield imported; + ok(true, "The profiler data appears to have been successfully imported."); + + yield calltreeRendered; + ok(true, "The imported data was re-rendered."); + + yield teardown(panel); + finish(); +}); + +function getUnicodeConverter() { + let className = "@mozilla.org/intl/scriptableunicodeconverter"; + let converter = Cc[className].createInstance(Ci.nsIScriptableUnicodeConverter); + converter.charset = "UTF-8"; + return converter; +} + +function asyncCopy(data, file) { + let deferred = Promise.defer(); + + let string = JSON.stringify(data); + let inputStream = getUnicodeConverter().convertToInputStream(string); + let outputStream = FileUtils.openSafeFileOutputStream(file); + + NetUtil.asyncCopy(inputStream, outputStream, status => { + if (!Components.isSuccessCode(status)) { + deferred.reject(new Error("Could not save data to file.")); + } + deferred.resolve(); + }); + + return deferred.promise; +} From 1c9aae129207e1dfc910372bab8bbd58b1d68d6a Mon Sep 17 00:00:00 2001 From: Jordan Santell Date: Mon, 15 Jun 2015 11:38:39 -0700 Subject: [PATCH 20/34] Bug 1174829 - Remove vestigial PerformanceActorsConnection references in comments. r=vp --- browser/devtools/framework/toolbox.js | 2 +- browser/devtools/performance/modules/logic/actors.js | 2 +- browser/devtools/performance/modules/logic/front.js | 6 +++--- .../devtools/performance/modules/logic/recording-model.js | 8 ++++---- .../performance/test/browser_perf-shared-connection-02.js | 2 +- .../performance/test/browser_perf-shared-connection-03.js | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/browser/devtools/framework/toolbox.js b/browser/devtools/framework/toolbox.js index 59c6c1bf761..a2907276304 100644 --- a/browser/devtools/framework/toolbox.js +++ b/browser/devtools/framework/toolbox.js @@ -2068,7 +2068,7 @@ Toolbox.prototype = { }), /** - * Disconnects the underlying Performance Actor Connection. If the connection + * Disconnects the underlying Performance actor. If the connection * has not finished initializing, as opening a toolbox does not wait, * the performance connection destroy method will wait for it on its own. */ diff --git a/browser/devtools/performance/modules/logic/actors.js b/browser/devtools/performance/modules/logic/actors.js index 42ccdd5509a..7a8b21e5917 100644 --- a/browser/devtools/performance/modules/logic/actors.js +++ b/browser/devtools/performance/modules/logic/actors.js @@ -249,7 +249,7 @@ TimelineFrontFacade.prototype = { /** * An aggregate of all events (markers, frames, memory, ticks) and exposes - * to PerformanceActorsConnection as a single event. + * to PerformanceFront as a single event. */ _onTimelineData: function (type, ...data) { this.emit("timeline-data", type, ...data); diff --git a/browser/devtools/performance/modules/logic/front.js b/browser/devtools/performance/modules/logic/front.js index e37c34b658e..59b8b5cfb69 100644 --- a/browser/devtools/performance/modules/logic/front.js +++ b/browser/devtools/performance/modules/logic/front.js @@ -35,8 +35,8 @@ let PerformanceFronts = new WeakMap(); * * @param Target target * The target owning this connection. - * @return PerformanceActorsConnection - * The shared connection for the specified target. + * @return PerformanceFront + * The pseudofront for all the underlying actors. */ PerformanceFronts.forTarget = function(target) { if (this.has(target)) { @@ -350,7 +350,7 @@ PerformanceFront.prototype = { * Returns the same model, populated with the profiling data. */ stopRecording: Task.async(function*(model) { - // If model isn't in the PerformanceActorsConnections internal store, + // If model isn't in the PerformanceFront internal store, // then do nothing. if (this._recordings.indexOf(model) === -1) { return; diff --git a/browser/devtools/performance/modules/logic/recording-model.js b/browser/devtools/performance/modules/logic/recording-model.js index 311a0e8839d..a31b99be4cc 100644 --- a/browser/devtools/performance/modules/logic/recording-model.js +++ b/browser/devtools/performance/modules/logic/recording-model.js @@ -89,8 +89,8 @@ RecordingModel.prototype = { }), /** - * Sets up the instance with data from the SharedPerformanceConnection when - * starting a recording. Should only be called by SharedPerformanceConnection. + * Sets up the instance with data from the PerformanceFront when + * starting a recording. Should only be called by PerformanceFront. */ _populate: function (info) { // Times must come from the actor in order to be self-consistent. @@ -131,8 +131,8 @@ RecordingModel.prototype = { }, /** - * Sets results available from stopping a recording from SharedPerformanceConnection. - * Should only be called by SharedPerformanceConnection. + * Sets results available from stopping a recording from PerformanceFront. + * Should only be called by PerformanceFront. */ _onStopRecording: Task.async(function *({ profilerEndTime, profile }) { // Update the duration with the accurate profilerEndTime, so we don't have diff --git a/browser/devtools/performance/test/browser_perf-shared-connection-02.js b/browser/devtools/performance/test/browser_perf-shared-connection-02.js index 6e1b46f3320..e0e85752427 100644 --- a/browser/devtools/performance/test/browser_perf-shared-connection-02.js +++ b/browser/devtools/performance/test/browser_perf-shared-connection-02.js @@ -2,7 +2,7 @@ http://creativecommons.org/publicdomain/zero/1.0/ */ /** - * Tests if the shared PerformanceActorsConnection is only opened once. + * Tests if the shared PerformanceFront is only opened once. */ let gProfilerConnectionsOpened = 0; diff --git a/browser/devtools/performance/test/browser_perf-shared-connection-03.js b/browser/devtools/performance/test/browser_perf-shared-connection-03.js index f975b15ef56..a46df84dedf 100644 --- a/browser/devtools/performance/test/browser_perf-shared-connection-03.js +++ b/browser/devtools/performance/test/browser_perf-shared-connection-03.js @@ -2,7 +2,7 @@ http://creativecommons.org/publicdomain/zero/1.0/ */ /** - * Tests if the shared PerformanceActorsConnection can properly send requests. + * Tests if the shared PerformanceFront can properly send requests. */ function* spawnTest() { From daa8c78611c57a74e20e4e1459ed57a3752ca1b4 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 12:15:08 -0700 Subject: [PATCH 21/34] Bumping gaia.json for 1 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/b94a86b2c6b1 Author: Frederik Braun Desc: Bug 1155131 - enable eslint and add current failures to xfail.list --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index a7f45aea8be..c0644bed597 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "b404c41c5471c31610e64defb74ec066b411e724", + "git_revision": "f9086310722845341ea386b686488001c981abbf", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "b96d0d2057e470a3d47fd6d1cb4a5af2b61b7583", + "revision": "b94a86b2c6b1bcc50304c755ea7f4c26edea0aaa", "repo_path": "integration/gaia-central" } From 89a28cd94eac8b0d798dc95c14656c237b189d42 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 12:15:28 -0700 Subject: [PATCH 22/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 57b09af78a7..fac0ce1c3ac 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index c51374a6124..32d8122b54f 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index f6215387730..bda68fd5991 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index b32d277e8ce..121c49fb4a5 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 1eecabda4fc..00083d4bd33 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 042300a6c4f..11de50e717c 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index f6215387730..bda68fd5991 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index d1da90ceb98..697026fea47 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index aeab8e3b32d..a90dece9265 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index dea0fb9ca45..035b7637f16 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From a743e7323cfd448ad61697ee98433582ce65f48f Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 12:45:25 -0700 Subject: [PATCH 23/34] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/be80d3b80e6c Author: Julien Wajsberg Desc: Merge pull request #30543 from julienw/1169558-conversation-structure Bug 1169558 - [Messages][NG] Lay out Conversation service structure r… ======== https://hg.mozilla.org/integration/gaia-central/rev/a3bdf298ebea Author: Julien Wajsberg Desc: Bug 1169558 - [Messages][NG] Lay out Conversation service structure r=azasypkin --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index c0644bed597..58853e57b17 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "f9086310722845341ea386b686488001c981abbf", + "git_revision": "2157bb84cf217ecb3d217a2f1ee4282d59ea248c", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "b94a86b2c6b1bcc50304c755ea7f4c26edea0aaa", + "revision": "be80d3b80e6c6227c03e6f82fe18a81d2ac6c0aa", "repo_path": "integration/gaia-central" } From 0e11bd7ed5e36a005a22d50c3b6b0118599999cf Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 12:47:22 -0700 Subject: [PATCH 24/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index fac0ce1c3ac..9eac3e0ad2f 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 32d8122b54f..81c0cf62dd7 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index bda68fd5991..61f4614ce31 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 121c49fb4a5..87879def9b2 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 00083d4bd33..b1dd8859abe 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 11de50e717c..9a1fb344e78 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index bda68fd5991..61f4614ce31 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 697026fea47..1da53bb48e9 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index a90dece9265..fb4013b653a 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 035b7637f16..c1f1fd09b79 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From fbe160580fa59d4df3a019141269f03e347e23cb Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 13:05:24 -0700 Subject: [PATCH 25/34] Bumping gaia.json for 4 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/69cddbc52813 Author: Douglas Sherk Desc: Merge pull request #30633 from DouglasSherk/no-bug-swooop no bug - Update manifestURL for Swooop in Spark. r=daleharvey ======== https://hg.mozilla.org/integration/gaia-central/rev/514684dce0d9 Author: Doug Sherk Desc: no bug - Update manifestURL for Swooop in Spark. r=daleharvey ======== https://hg.mozilla.org/integration/gaia-central/rev/3e531fdd8a99 Author: Rob Wood Desc: Merge pull request #30632 from rwood-moz/bug1158892-nopost Bug 1158892 - Remove raptor tasks from treeherder; r=garndt ======== https://hg.mozilla.org/integration/gaia-central/rev/34740f68d942 Author: Rob Wood Desc: Bug 1158892 - Remove raptor tasks from treeherder; r=garndt --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 58853e57b17..8fef470ad68 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "2157bb84cf217ecb3d217a2f1ee4282d59ea248c", + "git_revision": "d40c15a70fb4c59aeab16d44ac374ec22380ca21", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "be80d3b80e6c6227c03e6f82fe18a81d2ac6c0aa", + "revision": "69cddbc528131a67eb043846d01fa8ca1ec9f444", "repo_path": "integration/gaia-central" } From 3ece36a4c3a9c26bd06dc0eb1bbf7364b13a9a89 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 13:07:23 -0700 Subject: [PATCH 26/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 9eac3e0ad2f..39131099829 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 81c0cf62dd7..ab421eaccbc 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 61f4614ce31..45d70119ab8 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 87879def9b2..875dec82b98 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index b1dd8859abe..5749e7d8b6a 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 9a1fb344e78..90e9fdc9403 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 61f4614ce31..45d70119ab8 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 1da53bb48e9..29ed9d4c643 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index fb4013b653a..3cc7d9575dc 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index c1f1fd09b79..2c7286ca939 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From 19a1604189f3b23a49a8da507b7bc52e50502bfd Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 13:20:10 -0700 Subject: [PATCH 27/34] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ======== https://hg.mozilla.org/integration/gaia-central/rev/89464faa17d7 Author: Ryan VanderMeulen Desc: Merge pull request #30600 from tedders1/bug-1174833-fix Bug 1174833 - Add support for UÔ diphthong, and syllables prefixed with X. r=rudyl ======== https://hg.mozilla.org/integration/gaia-central/rev/8149721fa92d Author: Ted Clancy Desc: Bug 1174833 - Add support for UÔ diphthong, and syllables prefixed with X. r=rudyl --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 8fef470ad68..0e1fa30e2f1 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "d40c15a70fb4c59aeab16d44ac374ec22380ca21", + "git_revision": "22083b2c6355c86a4a2a12d7482b99773ea658c8", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "69cddbc528131a67eb043846d01fa8ca1ec9f444", + "revision": "89464faa17d78cf73cfbaa71b1c3ef6f1ffbfd26", "repo_path": "integration/gaia-central" } From 6b8b43e0dea8e65d84b3d716e613bb1704c2450e Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 13:22:08 -0700 Subject: [PATCH 28/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 39131099829..8993e82c203 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index ab421eaccbc..2b05ec83883 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 45d70119ab8..61dff6eacbf 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 875dec82b98..2f533097f17 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 5749e7d8b6a..03fe3684452 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 90e9fdc9403..bd09e1944fd 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 45d70119ab8..61dff6eacbf 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 29ed9d4c643..f4fe85897f5 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index 3cc7d9575dc..e2204639664 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 2c7286ca939..d23e7be9534 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From fc27a58a3d035374bce0a0f76ac5c8b13d954a61 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 14:45:14 -0700 Subject: [PATCH 29/34] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/4759af805970 Author: Eli Perelman Desc: Merge pull request #30636 from eliperelman/bug-1175688 Bug 1175688 - Use environment-provided adb in reference workload script ======== https://hg.mozilla.org/integration/gaia-central/rev/f0baba802baf Author: Eli Perelman Desc: Bug 1175688 - Use environment-provided adb in reference workload script --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 0e1fa30e2f1..5f3c03d174d 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "22083b2c6355c86a4a2a12d7482b99773ea658c8", + "git_revision": "236a9f6adab172942d5c4dd6ec3427d1b9d83d15", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "89464faa17d78cf73cfbaa71b1c3ef6f1ffbfd26", + "revision": "4759af8059702d04b01afe0151966bab82b1d404", "repo_path": "integration/gaia-central" } From 321ae48ab114579ac24e5a6929014ddbeeaa324f Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 14:47:12 -0700 Subject: [PATCH 30/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 8993e82c203..9a36b5f37a0 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index 2b05ec83883..fdfd5e3e4d5 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 61dff6eacbf..55f09d53fee 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index 2f533097f17..b2ffaf68c98 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index 03fe3684452..a2517f40792 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index bd09e1944fd..6023ccaa5c6 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 61dff6eacbf..55f09d53fee 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index f4fe85897f5..615a1ce759a 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index e2204639664..e6cde63fd3f 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index d23e7be9534..7c9839f6cb1 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + From d2ff0ac1d323da0afc017d23960a94198b2369b3 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 20:42:15 -0700 Subject: [PATCH 31/34] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/1a981206c15d Author: David Flanagan Desc: Merge pull request #30638 from davidflanagan/bug1170778 Bug 1170778 - test jpeg image should not be progressive jpeg r=eperelman ======== https://hg.mozilla.org/integration/gaia-central/rev/023551134c90 Author: David Flanagan Desc: Bug 1170778 - test jpeg image should not be progressive jpeg --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 5f3c03d174d..62da090a81f 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "236a9f6adab172942d5c4dd6ec3427d1b9d83d15", + "git_revision": "8b97729eba38818fd5605980ab614f4ab0b812d6", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "4759af8059702d04b01afe0151966bab82b1d404", + "revision": "1a981206c15d35e4a9635a3731c34b6cb922331a", "repo_path": "integration/gaia-central" } From a94a04e981baa9f67c32d27a34515eafe1254e35 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 20:44:13 -0700 Subject: [PATCH 32/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 4 ++-- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 4 ++-- b2g/config/emulator-kk/sources.xml | 4 ++-- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 4 ++-- b2g/config/nexus-4/sources.xml | 4 ++-- b2g/config/nexus-5-l/sources.xml | 4 ++-- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 9a36b5f37a0..0ae41d128cf 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + @@ -146,7 +146,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index fdfd5e3e4d5..a812d4e96c9 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index 55f09d53fee..d9374463e4d 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index b2ffaf68c98..f1bd1c85d4c 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + @@ -135,7 +135,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index a2517f40792..ba43ef84f6f 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index 6023ccaa5c6..c575cce0e46 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index 55f09d53fee..d9374463e4d 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index 615a1ce759a..ddc5860eb8b 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + @@ -146,7 +146,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index e6cde63fd3f..cbe294c93e8 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + @@ -130,7 +130,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 7c9839f6cb1..470693a129f 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - + @@ -156,5 +156,5 @@ - + From 560afa58a914a4c8d6e187a4dfd11b850ea796a0 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 20:46:45 -0700 Subject: [PATCH 33/34] Bumping gaia.json for 2 gaia revision(s) a=gaia-bump ======== https://hg.mozilla.org/integration/gaia-central/rev/e03dd96aa4ef Author: Kevin Grandon Desc: Merge pull request #30637 from davidflanagan/bug1163682 Bug 1163682 - remove shared/js/scroll_detector.js and its tests ======== https://hg.mozilla.org/integration/gaia-central/rev/1c721b56ed66 Author: David Flanagan Desc: Bug 1163682 - remove shared/js/scroll_detector.js and its tests --- b2g/config/gaia.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/b2g/config/gaia.json b/b2g/config/gaia.json index 62da090a81f..e7c79f1dae5 100644 --- a/b2g/config/gaia.json +++ b/b2g/config/gaia.json @@ -1,9 +1,9 @@ { "git": { - "git_revision": "8b97729eba38818fd5605980ab614f4ab0b812d6", + "git_revision": "c3f8a3346787c0fcb61775769f559540e253e6bf", "remote": "https://git.mozilla.org/releases/gaia.git", "branch": "" }, - "revision": "1a981206c15d35e4a9635a3731c34b6cb922331a", + "revision": "e03dd96aa4ef19404c34e64c1a5f4340aa9535b7", "repo_path": "integration/gaia-central" } From fcdf95b80a1a0e8a1b05b8222c0caf2deb296529 Mon Sep 17 00:00:00 2001 From: B2G Bumper Bot Date: Wed, 17 Jun 2015 20:48:41 -0700 Subject: [PATCH 34/34] Bumping manifests a=b2g-bump --- b2g/config/aries/sources.xml | 2 +- b2g/config/dolphin/sources.xml | 2 +- b2g/config/emulator-ics/sources.xml | 2 +- b2g/config/emulator-jb/sources.xml | 2 +- b2g/config/emulator-kk/sources.xml | 2 +- b2g/config/emulator-l/sources.xml | 2 +- b2g/config/emulator/sources.xml | 2 +- b2g/config/flame-kk/sources.xml | 2 +- b2g/config/nexus-4/sources.xml | 2 +- b2g/config/nexus-5-l/sources.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/b2g/config/aries/sources.xml b/b2g/config/aries/sources.xml index 0ae41d128cf..eb58994becc 100644 --- a/b2g/config/aries/sources.xml +++ b/b2g/config/aries/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/dolphin/sources.xml b/b2g/config/dolphin/sources.xml index a812d4e96c9..55cc0f4d306 100644 --- a/b2g/config/dolphin/sources.xml +++ b/b2g/config/dolphin/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-ics/sources.xml b/b2g/config/emulator-ics/sources.xml index d9374463e4d..dcc8fb01556 100644 --- a/b2g/config/emulator-ics/sources.xml +++ b/b2g/config/emulator-ics/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/emulator-jb/sources.xml b/b2g/config/emulator-jb/sources.xml index f1bd1c85d4c..5b28b00eb76 100644 --- a/b2g/config/emulator-jb/sources.xml +++ b/b2g/config/emulator-jb/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/emulator-kk/sources.xml b/b2g/config/emulator-kk/sources.xml index ba43ef84f6f..500272e6b91 100644 --- a/b2g/config/emulator-kk/sources.xml +++ b/b2g/config/emulator-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator-l/sources.xml b/b2g/config/emulator-l/sources.xml index c575cce0e46..92e15498b99 100644 --- a/b2g/config/emulator-l/sources.xml +++ b/b2g/config/emulator-l/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/emulator/sources.xml b/b2g/config/emulator/sources.xml index d9374463e4d..dcc8fb01556 100644 --- a/b2g/config/emulator/sources.xml +++ b/b2g/config/emulator/sources.xml @@ -19,7 +19,7 @@ - + diff --git a/b2g/config/flame-kk/sources.xml b/b2g/config/flame-kk/sources.xml index ddc5860eb8b..8be52fc6c5a 100644 --- a/b2g/config/flame-kk/sources.xml +++ b/b2g/config/flame-kk/sources.xml @@ -15,7 +15,7 @@ - + diff --git a/b2g/config/nexus-4/sources.xml b/b2g/config/nexus-4/sources.xml index cbe294c93e8..9345fd19944 100644 --- a/b2g/config/nexus-4/sources.xml +++ b/b2g/config/nexus-4/sources.xml @@ -17,7 +17,7 @@ - + diff --git a/b2g/config/nexus-5-l/sources.xml b/b2g/config/nexus-5-l/sources.xml index 470693a129f..9b61faf412b 100644 --- a/b2g/config/nexus-5-l/sources.xml +++ b/b2g/config/nexus-5-l/sources.xml @@ -15,7 +15,7 @@ - +