Today we are happy to release the specification for the Scope
protocol. This is the protocol used for communication between
the Opera browser and
Opera Dragonfly. It is also used here at Opera for
automated testing.
Since the release of Opera Dragonfly, we have tried to keep the
project open source. The source and its
documentation is available under BSD licence, but it is difficult to
expand it or create something different without the protocol
specification. This release wants to rectify that.
The documentation is more or less as we have used it internally to
communicate inside the team, which means that some documentation is
missing simply because everyone on the team knew what it was about.
If something is unclear, let us know in the comments.
One of the reasons we are releasing right now, is that
other browser makers have started discussing
how to do remote debugging.
Since the very start we have focused specifically on this, so we want to share our
experience and ideas with everyone else.
The specification is split into two parts. The current implementation,
which we call Scope Transfer Protocol 0 (STP/0), is an XML
based protocol. Our experience has been that this is too slow once you
start transferring big data structures, like DOM trees. One of the
advantages of the XML protocol was that it was easy to create a client
for it in JavaScript using XMLHTTPRequests. It is also very easy to
debug visually without the need for special tools to parse the data.
The next generation protocol, STP/1, is what we are currently working
on. It is just a sign of things to come, but we
will release it in a public build as soon as it is ready. There might
be changes to the protocol before that time. The protocol
continues to support XML, but we have added two more serializers:
JSON and Protocol Buffers. The messages
are the same in an abstract sense, but they can be rendered to different
data structures. This means that we can keep our XML tools mostly
unchanged, but switch over to Protocol Buffers for
faster transmissions, or to JSON for the sweet spot between easy of use
by JavaScript and low bandwidth usage.
Our next release will be a public build of Opera using STP/1, together
with tools to help you get started with communication through STP/1.
We’ve recently released a snapshot of Opera Dragonfly alpha 4, to coincide with Opera 10 beta. One of the biggest usability issues with Opera Dragonfly has been that it did not select the active tab or window. This meant that the user had to follow a number of steps before they could start debugging. This was among the top user requests and has now been fixed for Opera 10 and Opera Dragonfly alpha 4.
Along with detecting the active tab, the UI has been improved to make it more intuitive and compact. In the detached mode all the tabs, windows, panels and widgets that are open (the debugging contexts) are available from a drop down at the top of the Opera Dragonfly window. In attached mode, where space is more of a premium, the same functionality has been added as a dragonfly button to the left of the detach button. The settings have been moved to a tab on the main Opera Dragonfly tab bar. You will notice that the Error Console layout has improved quite a bit, and shows collapsed by default. This allows you to have a quick overview of all the errors, unless you have so many errors that they scroll out of the viewport, but you are not creating that many errors, right? While the UI has improved since Alpha 3, you'll notice that the look and feel doesn't yet match the beautiful new skin created by Jon Hicks for Opera 10. Once the final Opera 10 skin has been finished we hope to start work on making Opera Dragonfly consistent with the skin.
The big new functionality for Opera Dragonfly alpha 4 is the Network Inspector. This gives an overview of all the resources that were requested by Opera for the active debugging context. You can break down each request to show the request summary, raw request and the request & response headers. Each request will show you how long it took to retrieve that resource, along with the total time taken for the whole page.
Although the new features and layout changes will be the most notable changes, there has been a huge amount of bug fixes since the last snapshot as we work towards making Opera Dragonfly more stable and closer to Beta quality. You can see all the changes by going to the change log.
I hope you enjoy the new release of Opera Dragonfly and Opera 10, as we work toward the next release and improving the product further.
[UPDATE] Added Bulgarian, Tamil, Telugu, Turkish and Ukrainian, which I accidently missed from the list.
We have just released a further update to the alpha 3 branch of Opera Dragonfly. This is mainly a bug fix release, with numerous stability enhancements. Check out the change logs for full details of the included fixes.
The main noteworthy fix for this release is the localisation of Opera Dragonfly into 37 different languages. A big thank you should go out to everyone that helped us with these translations. The included localisations include:
bg: Bulgarian
cs: Czech
da: Danish
de: German
el: Greek
en: English
es-ES: Spanish (Spain)
es-LA: Spanish (Latin America)
et: Estonian
fi: Finnish
fr: French
fr-CA: French Canadian
fy: Friesian
hi: Hindi
hr: Croatian
hu: Hungarian
id: Indonesian
it: Italian
ja: Japanese
ka: Georgian
ko: Korean
lt: Lithuanian
mk: Macedonian
nb: Norwegian bokmål
nl: Dutch
nn: Norwegian nynork
pl: Polish
pt: Portuguese
pt-BR: Portuguese (Brazilian)
ru: Russian
sv: Swedish
ta: Tamil
te: Telugu
tr: Turkish
uk: Ukrainian
zh-cn: Simplified Chinese
zh-tw: Traditional Chinese
You can change the UI language of Opera Dragonfly by clicking the settings icon (lower right hand corner), clicking the general expander (the text is now clickable as well as the arrow icon), and select the language from the drop down list.
This release is scheduled to be the last release on the Scope protocol 3 branch, which is for Opera Presto 2.1 based browsers, such as Opera 9.6. Full focus will now be on Scope protocol 4 based releases for Opera Presto 2.2, and the upcoming Opera Dragonfly alpha 4 release. You can track progress of this by using builds of Opera 10. Much requested features such as automatically detecting the active tab are now working in the Scope 4 branch of Opera Dragonfly.
By virtuelvis.
Friday, 28. November 2008, 14:46:29
We have a little Friday surprise for you, in the form of an update to Opera Dragonfly. Right after publishing Alpha 3, we pushed an update to the cutting-edge path that we are now pushing to the default path.
The update only contains two changes of note, so we will not provide a full changelog this time:
We've added support for the commands clear() and dir( to the command line. The clear() command clears the command line output, and dir() allows you to inspect an object. For instance, dir( window ) inspects the window.object
The second change is the main reason for pushing this update, and it should vastly improve the Opera Dragonfly experience. By encoding all image resources as data:-URIs, loading of Opera Dragonfly should be much faster. This is especially noticeable for first-time users, and for users on slow networks.
If you are wondering how much faster, let us present a purely anecdotal indication: This release announcement is written on a bus trip to rural Norway. The bus company is kind enough to offer an affordable wifi connection. The connection is fairly slow, and has high latency. Yet, first loading of the new Opera Dragonfly in a clean Opera profile is faster on this bus, than loading the old version from within Opera's own network.
We hope you will enjoy this little Friday update of Opera Dragonfly, and the much-improved loading experience. Please let us know what you think of this minor update.
We’ve got a couple of announcments related to Opera Dragonfly today. The first piece of news is that Opera Dragonfly alpha 3 has just been released. The main focus of this release has been fixing reported bugs, to make the user experience more pleasant. We’ve also added localisation support—which was introduced in the previous weekly release. The German translation is ready, and we are working on other locales, that will be pushed live as they are completed and QA'd. We hope this will make Opera Dragonfly more useful in the none-English speaking world. Obviously markets where Opera is more popular have high priority, such as Russian and Indonesian.
One of the key new features of Opera Dragonfly alpha 3 is DOM editing support. There is two modes. The first mode allows you to edit, add and delete attributes and text nodes in real time. You can activate this by double clicking on a attribute, value or text node. The second mode allows you to do free form editing, such as adding new DOM node. You can activate this by double clicking on the opening or closing tag of a element. This will turn the entire element and its children into a free form text field. There is currently a known issue with the first mode, where focus doesn't leave the editing mode when pressing the enter/return key. This will be silently updated as soon as it is fixed.
The other main new feature is that the breadcrumb trail has been updated. Now each node acts like a button, so you can navigate the element hierarchy more easily.
The next release will be Opera Dragonfly alpha 4, which is under heavy development. This has been under development at the same time as alpha 3, as it requires new features found in the Scope module that is part of the upcoming Opera Presto 2.2 rendering engine. It will refine the user experience some what, as the currently active tab will be detected. This will tidy up the layout and make the docked mode much more logical to navigate. It will also introduce a HTTP inspector.
The way experimental releases are handled has also changed. Now instead of switching to the path for weekly releases, Opera Dragonfly will detect if you are on a stable release version of Opera or a pre-released version, such as an alpha, beta, or weekly release. If you are using a stable release it will use the latest official release of Opera Dragonfly (currently alpha 3). If you are using a pre-released version of Opera it will automatically updated to the latest experimental version of Opera Dragonfly. It is possible to force the use of a stable or experimental version. This is explained in the URL Schema document.
In further Opera Dragonfly news, we now have a person who is focusing on Project Management for Opera Dragonfly. I’ve been handling Product Management, but the Project Manager role has been vacant. The new Project Manager is Arve Bersvendsen, whom many of you may know already. He will bring a great deal of experience and knowledge into the project. I’ll let him introduce himself further in this blog when we have some more news to tell. For now, have fun playing with the latest release.