The use of <iframe mozbrowser> in test_saveHeapSnapshot_e10s_01.html has
implicitly depended on the "network.disable.ipc.security" pref set to
false, which is the default for desktop and not applicable for Fennec.
With the new mobile test harness, this pref needs to be set explicitly
by the test.
Differential Revision: https://phabricator.services.mozilla.com/D7786
At first, I wanted it is better to call DebuggerServer.destroy() when
`devtools.debugger.remote-enabled` will set to false. Likewise, call
DebuggerServer.init() in case of true. But, because DebuggerServer.init() is
called by various context such as RemoteDebugger, restoring is difficult after
destroying. In this patch, simply, we make avoiding to call
DebuggerServer.closeAllListener() from inside of ServerSocketConnection.
Depends on D10864
Differential Revision: https://phabricator.services.mozilla.com/D10865
--HG--
extra : moz-landing-system : lando
Yet another approach. In the previous D9889 approach, both DebuggerSerever and
SocketServerListener retain the connections duplicately, it will be possible to
be difficult for the management. In this approach, only DebuggerSerever retains
the connections, then when ServerSocketListener was removed, removes the
connections as well that were linked the ServerSocketListener.
Differential Revision: https://phabricator.services.mozilla.com/D10864
--HG--
extra : moz-landing-system : lando
shape-outside, shape-margin, shape-image-threshold have been shipped in Firefox
62. We can remove the preference.
The change in devtools/shared/css/generated/properties-db.js is generated by
"./mach devtools-css-db"
The actual shape-image CORS mode tests in file_shape_outside_CORS.html are
moved into test_shape_outside_CORS.html because we don't need the <iframe>
trick to enable the feature.
Differential Revision: https://phabricator.services.mozilla.com/D10804
--HG--
extra : moz-landing-system : lando
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
extra : intermediate-source : 28a19b7290ab288a1cb2cbf6d49f905cecc9682b
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : source : a19c6b3e0402d16a77185f82d9fedab83a7ca52e
This implementation is considerably more memory efficient than the existing JS
implementation. Migrating to it fully saves us about 28K per base content
process.
Differential Revision: https://phabricator.services.mozilla.com/D9887
--HG--
extra : rebase_source : f358f1f7097eaa8cd62ae916d048a58489e9f5ff
extra : histedit_source : c44c42de02750d71e23e70fdf22d3c3a40b91d3d
For now, we keep supporting the prefixed version, since there are examples/instructions
on the Web that don't include an unprefixed value.
Differential Revision: https://phabricator.services.mozilla.com/D10451
--HG--
extra : moz-landing-system : lando
In cases where an item did not grow or shrink, devtools doesn't really have access
to any useful information about how the item might have wanted to flex.
So in this change, I'm just making sure we don't attempt to display this info at
all, because it's basically incorrect otherwise.
Depends on D10235
Differential Revision: https://phabricator.services.mozilla.com/D10236
--HG--
extra : moz-landing-system : lando
frames() timing function was removed from the spec, so we drop it.
Besides, some devtool tests are removed because they use frame(). I will
add them back by using new step function later.
Differential Revision: https://phabricator.services.mozilla.com/D9309
--HG--
extra : moz-landing-system : lando
Depends on D8722
Include the "!importat" priority flag when tracking changes to CSS declarations.
Differential Revision: https://phabricator.services.mozilla.com/D8967
--HG--
extra : moz-landing-system : lando
⚠️ **To build locally, this change series depends on the [change series](https://phabricator.services.mozilla.com/D4399) which adds the ChangesActor**.
🏋️♂️ **To test hands-on, you can download a [custom macOS build](https://queue.taskcluster.net/v1/task/HIiZcwLXTuuSYYjfwEDmmA/runs/0/artifacts/public/build/target.dmg) (updated Wed, Oct 24) which includes both change series.**
- Introduce ancestorRules getter to StyleRuleActor to get a flattened rule tree with the ancestors of the current rule;
- Introduce CSSRuleTypeName to css-logic helpers to map between CSS rule type and human-readable name;
- Log rule index position with each CSS declaration change to help differentiate between changes to rules with identical selectors at the same level of nesting.
Differential Revision: https://phabricator.services.mozilla.com/D8718
--HG--
extra : moz-landing-system : lando
The int preference profiler.sample-frequency-khz didn't make it possible
to reduce the overhead in tests, because we could have intervals bigger
than 1ms. With this change we can now do it.
Depends on D8547
Differential Revision: https://phabricator.services.mozilla.com/D8548
--HG--
extra : moz-landing-system : lando
Since we do now have the list of Javascript keywords, we
import it from webconsole autocomplete service and send
the keywords matching the current expression to the client.
Differential Revision: https://phabricator.services.mozilla.com/D8709
--HG--
extra : moz-landing-system : lando
This list is generated from /js/src/frontend/ReservedWords.h,
which is already used on the platform to generate list of js
reserved words.
This list will be used in the console autocomplete code to
expose those keywords to the user.
Differential Revision: https://phabricator.services.mozilla.com/D8998
--HG--
extra : moz-landing-system : lando
The use of <iframe mozbrowser> in test_saveHeapSnapshot_e10s_01.html has
implicitly depended on the "network.disable.ipc.security" pref set to
false, which is the default for desktop and not applicable for Fennec.
With the new mobile test harness, this pref needs to be set explicitly
by the test.
Differential Revision: https://phabricator.services.mozilla.com/D7786
--HG--
extra : moz-landing-system : lando
This patches solves 2 issues:
- it doesn't return any result when the user is trying to
perform a variable, function or class declaration (e.g.
var d).
- js-property-provider used to compute the last statement
by only looking for space or ; chars. But there are a lot
of cases (basically each time using an operator), where we
should return results and we weren't.
Test cases are added to cover those fixes.
Differential Revision: https://phabricator.services.mozilla.com/D8968
--HG--
extra : moz-landing-system : lando
Depends on D8334.
In this changeset we also change the way we are reading the preferences
in adb-addon.js to avoid caching the value of the preference the first
time the module is loaded.
This allows the module to follow updates of said preferences without
having to restart Firefox.
Differential Revision: https://phabricator.services.mozilla.com/D8335
--HG--
extra : moz-landing-system : lando
Depends on D8334.
In this changeset we also change the way we are reading the preferences
in adb-addon.js to avoid caching the value of the preference the first
time the module is loaded.
This allows the module to follow updates of said preferences without
having to restart Firefox.
Differential Revision: https://phabricator.services.mozilla.com/D8335
--HG--
extra : moz-landing-system : lando
For now, the options panel was calling `attach` to know if the javascript was disabled
on the debugged document. But this property is already cached during the `attach`
request done by the toolbox.
MozReview-Commit-ID: JcDT6vxCUzN
Depends on D8851
Differential Revision: https://phabricator.services.mozilla.com/D8852
--HG--
extra : moz-landing-system : lando
Added new getters to the ADB scanner so our runtime objects have now the information we need.
Note that the UX of the devices in this patch doesn't still match what we had in the mockups (icons don't match, and we also need a circle with a tick), but since we have another bug to handle the CSS in the Sidebar, we can always adapt it there. The information needed to display what is shown in the mockups should be passed in this patch –if I miss anything, give me a shout!
Differential Revision: https://phabricator.services.mozilla.com/D7705
--HG--
extra : moz-landing-system : lando
Depends on D8334.
In this changeset we also change the way we are reading the preferences
in adb-addon.js to avoid caching the value of the preference the first
time the module is loaded.
This allows the module to follow updates of said preferences without
having to restart Firefox.
Differential Revision: https://phabricator.services.mozilla.com/D8335
--HG--
extra : moz-landing-system : lando
TabClient appears to be a client for any actor that inherits from browsing context target actor.
So let it be a front for that.
MozReview-Commit-ID: KmpClxJ53N7
Depends on D7457
Differential Revision: https://phabricator.services.mozilla.com/D7458
--HG--
extra : moz-landing-system : lando
Added new getters to the ADB scanner so our runtime objects have now the information we need.
Note that the UX of the devices in this patch doesn't still match what we had in the mockups (icons don't match, and we also need a circle with a tick), but since we have another bug to handle the CSS in the Sidebar, we can always adapt it there. The information needed to display what is shown in the mockups should be passed in this patch –if I miss anything, give me a shout!
Differential Revision: https://phabricator.services.mozilla.com/D7705
--HG--
extra : moz-landing-system : lando
- Added AutoRefreshHighlighter flag to AutoRefreshHighlighter. This ensures that getQuads() ignores the zoom factor.
Differential Revision: https://phabricator.services.mozilla.com/D7599
--HG--
extra : moz-landing-system : lando
I also made its argument mandatory, so that later in root spec we can use a non-nullable number.
MozReview-Commit-ID: BUPgI1ww1gC
Differential Revision: https://phabricator.services.mozilla.com/D8141
--HG--
extra : moz-landing-system : lando
TabClient appears to be a client for any actor that inherits from browsing context target actor.
So let it be a front for that.
MozReview-Commit-ID: KmpClxJ53N7
Depends on D7457
Differential Revision: https://phabricator.services.mozilla.com/D7458
--HG--
extra : moz-landing-system : lando
The use of <iframe mozbrowser> in test_saveHeapSnapshot_e10s_01.html has
implicitly depended on the "network.disable.ipc.security" pref set to
false, which is the default for desktop and not applicable for Fennec.
With the new mobile test harness, this pref needs to be set explicitly
by the test.
Differential Revision: https://phabricator.services.mozilla.com/D7786
--HG--
extra : moz-landing-system : lando
This introduces constants for the addon states and migrates ADBAddon to a class
Differential Revision: https://phabricator.services.mozilla.com/D7881
--HG--
extra : moz-landing-system : lando
Depends on D7405. The adb-addon module fires events whenever the
addon state changes, so Devices.jsm should be able to simply reuse this
module to update its internal state, rather than having adb-addon set
something on Devices.jsm directly.
On a sidenote, we really should not propagate the adb status via Devices.jsm
but since WebIDE relies on this, I decided to keep the code as is for now.
We will remove it from Devices.jsm when WebIDE is removed.
Differential Revision: https://phabricator.services.mozilla.com/D7406
--HG--
extra : moz-landing-system : lando
Depends on D7404. The install method should not hardcode "webide"
for the addon manager telemetry info
Differential Revision: https://phabricator.services.mozilla.com/D7405
--HG--
extra : moz-landing-system : lando
Depends on D7403
The getADBAddon/forgetADBAddon is not removing listeners or doing
anything useful since the next call to getADBADdon will just recreate an
instance of ADBAddon. We can expose a singleton and use lazy requires to
achieve the same effect
Differential Revision: https://phabricator.services.mozilla.com/D7404
--HG--
extra : moz-landing-system : lando
Depends on D7402. Moving the module to a shared older. Following
patches will cleanup the implementation to remove WebIDE couplings.
Differential Revision: https://phabricator.services.mozilla.com/D7403
--HG--
rename : devtools/client/webide/modules/addons.js => devtools/shared/adb/adb-addon.js
extra : moz-landing-system : lando
Since Firefox 41 it has been possible to add a rule with a selector
which does not match an element. The checks of the existence of this
functionality are outdated and can be safely removed.
No supported old versions of Firefox make use of the previous
functionality anymore.
MozReview-Commit-ID: D5ZP09Ckeqd
Differential Revision: https://phabricator.services.mozilla.com/D7597
--HG--
extra : moz-landing-system : lando
While this is not strictly related for uninstalling ADB helper this
small cleanup avoids duplicating the declaration of the adb extension
in two different preferences.
The URL preference also moves to a devtools-shared preference as there
is not much sense to keep it webide only.
Differential Revision: https://phabricator.services.mozilla.com/D7057
--HG--
extra : moz-landing-system : lando
This patch turns the current top-level handling, which relies on
the console API to print the result of the await expression, into
something natively handled by the server.
First, we don't add a .then handler to the generated async iife by
the mapper. We also removes the case we added in the JsTerm to *not*
print the result for top-level await expression.
In order to make the server capable of handling generated async iife
caused by the mapper, we send to evaluateJsAsync the `mapped` object
that `mapExpression` returns. This way, the server can check if an
expression was originally a top-level await.
If it is the case, we get the promise from the async iife and wait for
it to settle. If it resolves, we simply return the result, as a grip,
to the client. If it rejects, we return a special packet indicating to
not print anything to the client. The error will be reported by the
engine as `uncaught exception: …`.
We add several tests and modify the existing one to make sure we handle
top level await correctly in different situation (resolving, rejecting,
when paused in the debugger, when using $_, …).
Differential Revision: https://phabricator.services.mozilla.com/D6903
--HG--
extra : moz-landing-system : lando
Summary:
create LazyActorClass based off ObservedActorFactory and RegisterdFactory classes for use in RootActor and BrowsingContextActor;
Depends on D6468
Reviewers: ochameau
Reviewed By: ochameau
Bug #: 1473513
Differential Revision: https://phabricator.services.mozilla.com/D6470
--HG--
rename : devtools/server/actors/common.js => devtools/shared/protocol/lazy-pool.js
extra : rebase_source : 09a1c8eac3cbb5856a5e3e61a1c0540efe32e5bd
This patch adds the ability to open the autocomplete popup when
typing an opening bracket (i.e. `[`]) in the console input.
This impacts a significant amount of function where we assumed
that the only way to get a completion was to use a dot.
We uses the rename `anylyzeInputString` function to get the
completion part from an input, as well as if the user is performing
an element access (i.e., using the bracket).
We then send that information to the webconsole actor, which send
it to the client.
This allows us to rely on a single parse of the input and gives us
access to this information everywhere we need to, be it on the client
or on the server.
We allow the user to type property name without quotes, and we add
them when the user accept an autocompletion.
We also automatically add a closing bracket (i.e. `]`), when it's needed.
Some test are added. On the server side to make sure the actor's autocomplete
function returns what's expected.
We take that as an opportunity to add test for commands.
On the client side, tests are added to ensure the different behavior works
as expected (check the completion text and the input after accepting
the completion when the user entered some letters, or not, with or without
quotes, with different quotes, hitting the autocomplete cache, …).
A test which accesses the autocomplete cache was modified since the shape
of the cache changed to include the last matchProp as well as the
isElementAccess boolean.
Differential Revision: https://phabricator.services.mozilla.com/D6128
--HG--
extra : moz-landing-system : lando