mozilla :: #devtools

19 Apr 2017
00:51SoItBeginsHey, the interface for the Firefox debugger has changed a bit and Im confused - In Aurora, how do you blackbox sources now?
03:15jlastHi SoltBegins, the new UI currently does not support black boxing.
03:15jlastNightly should have it any day now though :)
03:15SoItBeginsOh, OK.
03:16jlastOut of curiosity, how do you use blackboxing. I'm always trying to hear what the common use cases are
03:16SoItBeginsSo I dont have to step through EaselJS, CreateJS, JQuery, etc. when debugging.
03:20SoItBeginsAlso, during extension debugging, so I dont have to step through a bunch of random things like Timer? I forget what all.
03:20SoItBeginsThe low-level underpinnings of the browser.
06:53nchevobbeGood morning people
07:25vkatsI have a question about mozreview & treeherder. I see that is "red" saying "Some jobs failed on try" but doesn't show anything.
07:26vkatsis the mozreview text a false alarm?
07:27nchevobbethat's weird
07:27nchevobbeI'd say that the source of truth is treeherder
07:28nchevobbevkats: maybe we should file a bug for mozreview with your issue
07:31jdescottesvkats: you have two failures if you untick "excluded jobs" in treeherder
07:32jdescottesWindows 7 VM opt Mochitest Mochitest Clipboard M(cl)
07:32jdescottesnot sure why they are flagged as excluded though :/
07:33jdescottes(the failures don't seem related to your change though, so I wouldn't worry about it)
07:34vkatsjdescottes: ah thanks, hadn't noticed that part of the UI, I might have pressed it by accident
07:34jdescottesvkats: np, it's hidden by default, nothing wrong on your side
07:35vkatsjdescottes: :) thanks
07:35nchevobbeoh, didn't noticed it either
09:00mikeratcliffepbro: Am I okay to take over bug 1352115? I have had to implement it anyhow to get scalars working in telemetry.js
09:00firebot ASSIGNED, CSS_SELECTOR(s) and TOOLBAR_EYEDROPPER are missing in Histograms.json
09:22jdescottesmikeratcliffe: pbro's on PTO today
09:22mikeratcliffeAh... I'll just grab it then ;)
09:41_kudHello :)
09:41_kudI've got a question for you, about react + hot-reload and devtools
09:42_kudDo you know why devtools doesn't recognise the changes when I modify my css with webpack + css modules + react ?
09:42_kudthe render is directly changed when I modify the css
09:42_kudbut devtools doesn't display the new result of my css
09:42_kudi've got to close and open it to see the modification
09:43nchevobbe_kud: which panel are you working on ?
09:44_kudI did
09:44_kudhot reload understood my change and applies it
09:44_kudthe render did it in hot way
09:45_kudbut devtools doesn't re-render the css
09:45_kudcontrary to the browser itself, where it worked
09:46nchevobbe_kud: okay, so what tool do you want to modify (inspector, debugger, console, ...) ? What is the path of the file you are editing ?
09:47_kudI'm editing Bill/index.css for instance, which is required in Bill/index.js via `import styles from './index.css'`
09:47_kudwebpack adds the style directly in the page
09:47_kudvia <style type=&quot;text/css&quot;></style>
09:48_kudI modify my own css file, hot reload reloads the component I modified
09:48nchevobbeoh sorry, i thought you were hacking on devtools :)
09:48_kudno :)
09:48_kudI just say devtools doesn&#39;t render correctly the current style
09:48nchevobbeso, when you say it does not re-render, what do you mean ?
09:49_kudonly devtools yes
09:49_kudif I stay on my page, i close devtools and reopen it, it displays the correct style
09:49_kuddevtools doesn&#39;t refresh the style if you use react + css modules + webpack + hot reload
09:51nchevobbeokay, so let me get it right: you have the inspector open, with a node selected, you edit your css, webpack inject the new style, and the rules panel does not show the changes. Am I correct ?
09:52_kudbut firefox renders/refreshes the content of the website
09:52_kudso it&#39;s understood by firefox
09:52_kudjust not by devtools
09:54_kud(poke julienw)
09:56nchevobbe_kud: I&#39;m sure we have a bug for that filed somewhere
09:56nchevobbelet me search a bit
09:57nchevobbe_kud: just to make sure, if you select another element and select back the previous one, do you see your changes ?
09:59_kudi&#39;ll try it
10:00_kudyou&#39;re right @nchevobbe
10:00_kudit refreshes it
10:00_kudokay thanks for the tip
10:00_kudit&#39;s less a problem in this way so
10:06nchevobbe_kud: Looks like this :
10:06firebotBug 1034614 NEW, [ruleview] Styles do not update when reloading a stylesheet
10:10julienw_kud, hey
10:11julienw_kud, hey, you reported that bug back then :D
10:12julienwnot a good thing we didn&#39;t fix it yet
10:15_kudI added a comment
11:30nchevobbe&quot;Not started (queued for 186 minute(s))&quot; :(
12:25jryanspbro: you asked about stylo bugs for devtools integration points... bug 1322657 is a good place to follow these things
12:25firebot NEW, [meta] stylo: support devtools
13:27nchevobbeHow long a job can be queued on TRY ? I have several tests that are queued for 300 minutes now :)
13:30wedrAre there plans to allow devs to add breakpoints in the Search Results after using CTRL+P?
13:31julienwnchevobbe, you can see all queued tests if you remove the filter in the UR
13:31julienwnchevobbe, what is the URL to yours ?
13:41julienwnchevobbe, there is another one from you before
13:41julienwnchevobbe, if you don&#39;t care anymore you may want to cancel it :)
13:41nchevobbeyep, I have 3 of them for talos
13:41nchevobbeI do care about them :)
13:41julienwok :)
13:42julienwyou should be the next one in line, but you can go and ask on #automation (if it&#39;s not the right channel they&#39;ll tell you)
13:42julienw(maybe it&#39;s #releng, I never know)
13:43nchevobbejulienw: okay, thanks for watching, I&#39;ll wait some more and ask if it&#39;s taking too long
13:44julienwI see gandalf has some queued up too, but on OSX, so I don&#39;t think that&#39;s part of the same VM pool
14:33jorendorfffitzgen: ping (about HeapSnapshot)
15:05jlastwedr: interesting, i had not thought of that. We will be doing more with respect to breakpoints in the future
15:06tromeymrbkap: did you get an answer about service worker debugging?
15:06jlastwedr: here is a document that I wrote up awhile back with some breakpoint work we were thinking about:
15:17nchevobbeHonza: in wich vidyo room do we meet ?
15:29wedrjlast: I guess my feature suggestion is going to be in Breakpoint 3.0.
15:30jlastnot necessarily :)
15:30jlasti&#39;d like to better understand what problems it&#39;s trying to solve. If it&#39;s where is this function called, there might be other ways to do it
15:31jlastfor instance &#39;watch points&#39; would tell you where a property is changed
15:31jlastwithout having to add lots of bps
15:32wedrjlast: Oh that? It&#39;s just a quality of life improvement, where when you&#39;re searching for your function you want to debug, and you see it&#39;s down in Line 3401, but you&#39;re viewing somewhere at Line 23 at the top, you can just set a breakpoint in the Search Results pane, instead of scrolling all the way down and setting it there.
15:32wedrjlast: This can be extended so when you have multiple search results, you can individually set breakpoints without the need to scroll up/down.
15:33jlastI see
15:33wedrI find your Breakpoint 2.0 plan lacking Quality of Life features/suggestions. :/
15:34jlastLets check in when we have Project Search. We plan on making it its own tab like atom so you can easily go back to the results
15:34wedrIsn&#39;t it already in its own tab / pane? Or do you actually wanted to show up in an actual panel?
15:35jlastfile search / function search are in the editor pane. Project search would be a tab probably
15:35wedrOh I see.
15:35jlastwe&#39;d like to add QoL improvements there too. For instance how we show the breakpoint list
15:36tromeyfitzgen: ping
15:37wedrYeah, and hopefully drag-and-drop variable names into the breakpoint list / watch list would be nice (like Visual Studio 2017 IDE)
15:37nchevobbeSafari console
15:38Honzanchevobbe: I like it that way
15:38nchevobbeI do like the &quot;Console Evaluation&quot; part
15:39nchevobbeHonza: I&#39;m not sure for the layout, it kinda makes the assumption that you&#39;re using it like console.log(label, value)
15:39nchevobbeAnd I know i use it do do some concatenation
15:39nchevobbelike console.log(&quot;my obj&quot;, obj1, &quot;and another one&quot;, obj20
15:40Honzanchevobbe: I see
15:40nchevobbein safari, it would look a bit weird
15:40nchevobbebut, there&#39;s space to experiment there :)
15:41wedrreal devs would inline the console.log() into its dedicated function, where you pass in an array, and the function will iterate through the array, calling console.log() on each element in the array.
15:41nchevobbeI guess i&#39;m not a real dev :)
15:42nchevobbewe should refrain for doing to many assumptions on how those are used. For example, some people like to add their console.log as expression breakpoint so they don&#39;t have to edit their code (or they can&#39;t)
15:43julienwconsole.log(...array) ?
15:43julienwwhy a dedicated function when you have spread arguments :)
15:43julienwthat said, console.log(array) works just good enough to debug.
15:43nchevobbeI think wedr function would log each element of the array separately
15:43wedrjulienw: No, my Watson. function([array]) { for (let i = 0; i < array.length; i++) { console.log(array[i]); } }
15:44julienwoh my
15:44julienwwho would want to do that ? :p
15:44wedrreal devs
15:44nchevobbeyeah, so i don&#39;t know for other people, but that&#39;s not how I use it
15:45wedrDon&#39;t forget the array doesn&#39;t always have to be integers. Who knows... it could be a randomly assorted structure filled with foos and bars.
15:45nchevobbeor at least, this doesn&#39;t cover what you can do with console.log , people can make really fun stuff
15:47julienwI&#39;m not convinced, but well, real devs can do it if they want :)
15:52nchevobbeWhat i&#39;d like to avoid is having something like this
15:53wedrIs that on Chrome, and you&#39;re doing console.log(objectA, objectB, objectC, ...)?
15:54tromeybut I dunno, maybe it makes sense in context
15:54wedrAh. In JavaScript world, almost no major browsers support QoL features for developers. :(
15:54wedralmost, not all, and not those in development.
15:55nchevobbetromey: maybe, I&#39;m not sure. It could be only a matter of spacing or visual distinction between objects
15:55tromeyyeah, I am not certain nchevobbe
15:55tromeybut at first glance it&#39;s quite unreadable, isn&#39;t it
15:55nchevobbeit is
15:56julienwbut it&#39;s not like that at first, the user actually unfolded some objects
15:56julienwso the user knows the state
15:56tromeywedr: I&#39;m not sure what to say about that, except we do actually try to make the tools work well; and that of course QoL is quite subjective
15:56nchevobbesure, I made it messy to serve my purpose :D
15:56julienwnot sure this justifies this mess
15:56fitzgentromey: pong
15:56fitzgenjorendorff: pong
15:57tromeyfitzgen: so I was looking at source-maps. there&#39;s a recent bug about memory use, suggesting the use of Map, and I wanted to know what the restrictions are on the code. like what version of JS can be assumed and why?
15:57jorendorfffitzgen: hi, i just had a quick question about heap snapshots, let me page it in
15:57nchevobbebut I did encountered this state TRUE DEVELOPMENT
15:57tromeyfitzgen: my inclination would normally be to say, send it as a PR and I&#39;ll accept it
15:57fitzgentromey: traditionally we supported ES5, which has no maps. not sure its worth supporting ES5 though, or maybe we could feature detect
15:58wedrFirst time hearing QoL is subjective. :/ Usually, I was taught in college that QoL suggestions are given when a group of developers try spotting annoyances.
15:58tromeyfitzgen: are there cases where users couldn&#39;t just transpile? since that seems super common now
15:58wedrAnd the results are mostly objective.
15:58jorendorfffitzgen: OK, it seems like HeapSnapshot has one API that takes an Option<Sequence<global object>>, and one that takes a CompartmentSet
15:58jorendorfffitzgen: I think the &quot;set of globals&quot; is the &quot;outer&quot; API and the CompartmentSet one is more internal?
15:59fitzgentromey: only question involved therein would be do we now force all npm dependents to transpile, or do we have abuild step when publishing, or what?
15:59tromeyyeah, I see
15:59fitzgenjorendorff: these are overloads of the RootList::init right?
15:59tromeyI suppose it&#39;s simplest to just carry on as-is, but of course that also means stagnation
15:59fitzgenjorendorff: or are you talking the webidl API?
16:00fitzgentromey: feature detection is probably easiest
16:00tromeyyes I see
16:00fitzgenjorendorff: the sequence of globals is converted to a compartment set iirc
16:00fitzgentromey: no problem!
16:00jorendorfffitzgen: yep! ok
16:01* fitzgen is about to enter his 1:1, but will read backscroll if more discussion is needed
16:01jorendorfffitzgen: So I am working on breaking the &quot;compartment per global&quot; invariant, and I think I just need to change all this to use globals always
16:02jorendorfffitzgen: I guess I pretty much figured it out. But I wanted to discuss how wrappers are treated.
16:03jorendorfffitzgen: Currently, cross-compartment wrappers are considered to be &quot;in&quot; the global object of their compartment.
16:04jorendorfffitzgen: When we allow multiple globals per compartment, CCWs will not be considered &quot;in&quot; any global (for various reasons these wrappers *must* be shared across all globals in the compartment).
16:05jorendorfffitzgen: So my remaining questions are about how CCWs are treated now and how it needs to change -- ping me whenever
16:07fitzgenjorendorff: we have similar issues with the system compartment&#39;s things, like atoms and symbols
16:07fitzgenjorendorff: what we end up doing there is to count the shared thing, but not any of its outgoing edges that aren&#39;t in our compartment (now global?) set
16:08fitzgenjorendorff: looking for the code...
16:08jorendorfffitzgen: That is, the shared atom shows up in the heap dump?
16:08fitzgenjorendorff: yes
16:08fitzgenjorendorff: maybe a more interesting case is self hosted functions
16:08fitzgenwhich can actually have edges
16:09jorendorfffitzgen: Currently, CCWs are reported via the ubi stuff as separate objects, right? they aren&#39;t &quot;abstracted away&quot;?
16:09fitzgenjorendorff: no, they aren&#39;t abstracted away
16:10jorendorffOh, OK. I saw ShouldIncludeEdge and it&#39;s on my list of things I probably need to touch
16:11jorendorfffitzgen: Is there test coverage for the atom stuff?
16:11jorendorffI saw gtests for compartment stuff that I can extend
16:12fitzgenjorendorff: the gtests should exercise this code, yes
16:12fitzgenjorendorff: I don&#39;t think they explicitly create atoms
16:13fitzgenjorendorff: but they create nodes without compartments, and nodes that have compartments not in the target compartment set, etc
16:13jorendorffIn any case, I should have a test case with a CCW in it (as well as one with same-compartment globals)
16:14fitzgenjorendorff: not sure how much context you have, but this should fill out your context some if you feel like its needed:
16:17fitzgenjorendorff: if you want to add tests with real CCWs, probably best to write a jit-test
16:17jorendorffOK, thanks.
16:18fitzgenjorendorff: since the gtests are only for mocked ubi nodes, really
16:18fitzgenlet me find a place where we do similar things...
16:18jorendorffright, ok
16:19jorendorffSo to sum up, for the purpose of this code, CCWs ought to be considered to be &quot;in&quot; each global in the compartment where they live (i.e. always logged); this is something we already do for other shared nodes; and that is unit-tested in these gtests
16:20jorendorff...I don&#39;t think I need to add anything in the gtests.
16:20fitzgenjorendorff: these tests exercise which things are reachable or not by taking a census, so adding something for what is or is not reachable from a CCW seems in order
16:20fitzgenjorendorff: that sounds right to me
16:21fitzgen&quot;reachable or not&quot; in a real live JS heap graph
16:22jorendorfffitzgen: ok! thanks
16:23fitzgenjorendorff: checks that we find on-stack roots, for example
16:23fitzgenjorendorff: the allocationMarker() function is probably what you want to wrap in a CCW and assert that you find an AllocationMarker bucket in the census
16:24fitzgenor assert you don&#39;t find the AllocationMarker, I guess
16:24fitzgensince it would presumably be in a non-target compartment
16:24jorendorffbut I want the wrapper. I can find it by counting, I guess
16:25jorendorffAnywayI&#39;ll worry about it when I get there
16:25fitzgenjorendorff: seems very relevant
16:26jorendorffyeah, that&#39;s the reverse of the case I care about
16:26jorendorffit&#39;s an incoming edge that has to be treated as a root
16:52solejulienw: ochameau: nchevobbe: jdescottes: maybe you&#39;ll find this interesting!
16:52sole(As French!)
17:12julienwahah sole we still have one in the basement here
17:13solejulienw: in the office?!?!
17:13soleI *demand* you turn it on and make a demo next time we&#39;re visiting
17:14soleAnd with that piece of absurdity, I&#39;m off for today! *swiiish*
17:14julienwsole, it&#39;s quite useless now that there are no service open :)
17:15solejulienw: that&#39;s why I said it was an absurd request! haha but those people are using an Arduino to feed data to the minitels... hint hint
17:16julienwI&#39;m not part of CD anymore :D
17:17julienwat home we had one with a Peritel plug, and with a color screen (but no sound !), I used to play the Super Famicom on it; that one would still be somewhat useful
17:17julienwthat&#39;s a fun project still :)
17:28tromeyclarkbw: some questions maybe for you? but perhaps these can just be referred to the QA folks
17:28firebotBug 1354262 NEW, allow devedition behavior changes to be specified via a repack
17:47wedrDoes web-ext node.js belong in devtools?
17:52wedrI can&#39;t tell if web-ext is crashing because it&#39;s not loading a valid Firefox extension, or it is outputting the error messages normally for my extension?
20:27harshpathakHi all. I am trying to figure out if there is a way to disable devtools altogether (i.e prevent it from opening) ?
22:08jlasttromey, do you know if there is a good way to get the JS scripts from an HTML file? I think it might be hard because the scripts could be GC&#39;d
20 Apr 2017
No messages
Last message: 3 days and 16 hours ago