Subscribe to RSS feed

Console + UI + Script debugging release

As you've seen before, quite some work has gone into Opera Dragonfly's UI lately. We have now released these changes on the default path, so everyone should be able to see them. Here are some more things that we have improved:

Debug what you submit in the console

Before, when you placed a debugger; statement in the body of for example function a, you didn't hit that statement when you called a() from Opera Dragonfly's console. The reason was that it would have made things difficult in the interface. If you - while stopped - submitted a() again, it would get pretty hard to reflect this state in the user interface. The solution now is to let you debug anything that you type in the console, but once you're stopped, Dragonfly goes back to the old behavior so you won't be stopped again.

That means you can now submit something like

(function(my_arg){debugger;})("let's have an argument")
and you'll be stopped right away to see your arguments.

Instant debugging from the console in Opera Dragonfly

Stepping improvements

When clicking through that not too exciting callstack above you won't notice, but updates in this view are now smooth. The view is not scrolled when stepping from line to line unless it has too. This was contributed by Rafał Chłodnicki, many thanks!

Bugfixes

Here is the list of bugs that were fixed with this release. More details are available in the changelog.

  • DFL-1855 Accessing or setting a property named "values" in the command line throws an error
  • DFL-2520 Exception when clicking some areas in Session storage UI after text selection
  • DFL-2555 Exception when switching to Utilities and then Errors very fast
  • DFL-2585 console.group("hello") doesn't work, throws, leaves console broken
  • DFL-2575 Exception while using autocomplete during stepping
  • DFL-2596 console.group() throws
  • DFL-2580 Go to line in Resources is broken
  • DFL-2545 for(var i = 0; i< 100; i ++) { console.log(i); } is slow in the console
  • DFL-2570 The HTTP interface of DFL does not handle U+2028 and U+2029 correctly
  • DFL-2572 "invalid character escape sequence" when autocompleting RegExp
  • DFL-2581 Don't show console scripts in the script dropdown
  • DFL-1568 Stepping should not scroll script view if target line is visible
  • DFL-2534 Styling of checkbox labels should be changed to not look disabled when not hovered
  • DFL-2549 debugger; won't work when submitted via console
  • DFL-2561 Console is not scrolled to bottom when re-opening
  • DFL-2569 Arrow on overlays doesn't point to the middle of pressed button
  • DFL-2556 Style and icons update
  • DFL-2490 remove dependency on document.document

New experimental with Console fixes and UI tweaks

We have a new build up on the experimental branch.

https://dragonfly.opera.com/app/experimental/

The main focus this time has been to improve some of the performance and functionality aspects of the Console.

Rendering output to the Console has now been considerably optimised. For example, this innocent-looking piece of code used to take about 3 seconds (depending on your specific hardware/OS) to render all the output:

for (var i = 0; i < 100; i++) { console.log(i); }

With our latest performance enhancements, the output is displayed almost instantly.

We have also added the ability to trigger breakpoints directly from the Console. If you have a breakpoint set in f(), you can now trigger it by calling the method from the Console's command line:

>>> f()

But not all new improvements are hidden under the hood. This experimental release also features a few UI tweaks.

A small comparison of the old and new Opera Dragonfly button design and grouping

Overall, the grey icons have now been made a tad lighter, buttons have been given a bit more padding, and related buttons are now grouped together. This should give a much clearer, more pleasant debugging experience.

There are lots more little bug fixes and changes in this release - see the changelogs.

New fast release cycle and a fresh experimental build

With the big launch of Opera Dragonfly 1.1 out of the way, we’ve decided it’s time to make some changes to our release cycle. From now on releases will be more focused on improvements to individual components, e.g. the DOM inspector or the UI framework. As soon as a feature for a certain component has been implemented, it will be put on the experimental path for some initial testing.

https://dragonfly.opera.com/app/experimental/

It will then be released on the cutting-edge path as a release candidate, where it can be tested by more users.

https://dragonfly.opera.com/app/cutting-edge/

If no issues are found, this will then be released as a new version on the default path.

In short, this will result in a faster release cycle, where new and improved features will be available to users much quicker than before.

To switch to the experimental or cutting-edge builds, paste the URL into opera:config#DeveloperTools|DeveloperToolsURL, click the Save button, and (re-)open Opera Dragonfly.

As part of this new release strategy, we’re also switching over Opera Dragonfly to a new version scheme:

<major-version>.<year>.<month>.<date>.<today’s-build>

For example, a version number of 1.2011.11.21.2 will indicate major version 1, released 2011-11-21. It’s also the second build released on that day.

To kick things off, we also have a new experimental release today. The focus has been on improving the UI framework. The dimension of panels will now be stored, and will be better preserved when resizing the application. Resizing performance in the scripts view has also been improved. And we’ve made some tweaks to overall text selection – for example, it’s not possible to accidentally select the text of tabs and various other UI elements anymore.

We’ve also fixed an issue where Opera Dragonfly wouldn’t start in Opera 12 pre-alpha (Opera Next to its friends), as well as some other minor bugs. Lastly, we’ve added Ctrl-R and -R as a handy shortcut for reloading the debug context.

See the full changelog for further details.

Big thanks to Rafał Chłodnicki (Opera employee, but not on the Opera Dragonfly team) for fixing some of his pet bugs in this release. smile