I just got back from a 4 day trip to Brazil and back to attend BrazilJS. I was humbled and very happy to give the opening keynote seeing that the closing was meant to be by Brendan Eich and Andreas Gal – so, no pressure.The keynote
For quite some while now, I am confused as to who we are serving as browser makers, standards writers and library creators. All of the excellent solutions we have seem to fall through the cracks somewhere when you see what goes live.
That’s why I wanted to remind the audience that whatever amazing, inspiring and clever thing they’ll hear about at the conference is theirs to take to fruition. We have too much frustration in our market, and too much trying to one-up one another instead of trying to solve problems and making the solutions easily and readily available. The slides are on Slideshare, and a video will become available soon.
Can we make es6 the baseline of the “modern web”? – BrazilJS 2105 from Christian Heilmann About Brazil
There are a few things to remember when you are going to Brazil:
- When people are excited about something, they are really excited about it. There’s a lot of passion.
- Personal space is as rare as an affordable flat in central London – people will affectionately touch strangers and there is a lot of body language. If that’s not your thing, make it obvious!
- You will eat your body weight in amazing meat and food is a social gathering, not just fuel. Thus, bring some time.
- Everybody will apologise for their bad English before having a perfectly comprehensible conversation with you
- People of all ages and backgrounds are into heavy music (rock, metal, hardcore…)
- There was a very strong message about diversity and a sensible and enforced code of conduct. This should not be a surprise, but when you consider Brazilian culture and reputation (think Carnival) it takes pride and conviction in those matters to stand up for them the way the organisers did.
- The AV setup was huge and worked fine. There were no glitches in the audio and every presentation was live translated from English to Brazilian Portuguese and vice versa. The translation crew did a great job and we as presenters should do more to support them. I will write a post soon about this.
- Wireless was flaky, but available when you needed it. It is pretty ridiculous to assume in a country where connectivity isn’t cheap and over a thousand people with two devices each try to connect that you’d have a good connection. As a presenter, I never rely on availability – neither should you.
- It was a single track conference over two days with lots of high-class speakers and very interesting topics.
- As a speaker, everything was organised for me. We all took a hired bus from and to the venue and we had lunch catered for us.
- The conference also had a minority/diversity scholarship program where people who couldn’t afford to come got a sponsored ticket. These people weren’t grandstanded or shown up but just became a part of the crowd. I was lucky to chat to a few and learned quite a few things.
So, all I can say is thank you to everyone involved. This was a conference to remember and the enthusiasm of the people I met and talked to is a testament to how much this worked!Personal/professional notes
BrazilJS was an interesting opportunity for me as I wanted to connect with my Microsoft colleagues in the country. I was amazed by how well-organised our participation was and loved the enthusiasm people had for us. Even when one of our other speakers couldn’t show up, we simply ran an impromptu Q&A on stage abut Edge. Instead of a sales booth we had technical evangelists at hand, who also helped translating. Quite a few people came to the booth to fix their web sites for Microsoft Edge’s standard compliant rendering. It’s fun to see when fixing things yields quick results.
Other short impressions:
- I had no idea what a machine my colleague Jonathan Sampson is on stage. His talk in adventurous Portuguese had the audience in stitches and I was amazed by the well-structured content. I will pester him to re-record this in English.
- Ju Gonçalves (@cyberglot) gave a great, detailed talk about reduce(). If you are a conference organiser, check her out as a new Speaker() option – she is now based in Copenhagen.
- It was fun to catch up with Laurie Voss after a few years (we worked in Yahoo together) and it was great of him to point to his LGBTQ Slack group inviting people to learn more about that facet of diversity in our community.
- It warmed me to see the Mozilla Brazil community still kicking butt. Warm, affectionate and knowledgable people like the ones you could meet at the booth there are the reason why I became a Mozillian in the first place.
Thank you for everyone involved. Thank you to everybody asking me lots of technical questions and giving non-filtered feedback. Thank you for showing that a lot of geeks can also be very human and warm. Thank you for embracing someone who doesn’t speak your language. I met quite a few people I need to follow up with and I even had a BBQ at the family of two of the attendees I met before I went to my plane back home. You rock!
Mozilla CEO threatens to fire person responsible for anonymous hate speech on ...
An anonymous person complaining about "social justice bullies" at Mozilla will be fired if the person is discovered to be an employee, the company's CEO said today. Speaking at Mozilla's weekly public meeting, Mozilla CEO Chris Beard said Reddit user ...
I spent Thursday and Friday of last week with my lovely colleagues in Vancouver. Some things to note:
- The Vancouver office is awesome, especially the art (h/t David Ascher’s wife)
- Thanks to Jennie and the rest of the YVR team for making me feel welcome around the lunch table!
- Luke promised to play guitar but he never did :(
Here’s how the two days went down:
- Sabrina and I started off by having a morning meeting with Michelle via Vidyo. This produced several clarifying insights including the use of “portfolio” as the key metaphor for Clubs pages in the MLN Directory. This helped shaped our conversations during the rest of my visit.
- Sabrina and I then reviewed what we already know about our audience, our programs and offerings, and value adds for the user.
- We then sketched out a model for an engagement funnel
- Then we got to work on the MLN Directory model. We came up with streamlined sketches for the various content types, thinking in terms of mobile-first.
- Member profile:
- See field listing
- Implied functionality: certain Leadership roles might be auto-applied (e.g. if the user owns an approved Club page, the system can apply the “Club Captain” role), while others might require an admin interface (e.g. Regional Coordinator, Hive Member). We’d like to allow for flexible Role names, to accommodate local flavor (i.e. Hive Chicago has specific role names they give to members).
- Club and Hive pages:
- Club page field listing
- Hive page field listing
- A key insight was that we should treat each distinct entity differently. That is, Club pages and Hive pages might be quite different, and we don’t need to try to force them into the same treatment. We also recognized that our MVP can simply address these two specific types of groups, since this is where our programs are focused.
- We decided that focusing on Reporting for Clubs would be the highest value functionality, so we spec’ed out what that would look like (wireframes coming soon)
- For Hive pages, we want to re-create the org listings and contact cards that the current Hive Directories have
- Member profile:
- We also met with Laura de Reynal and David Ascher to hash out plans for the audience research project. More on that soon, but you can see our “most important questions” at the top of this pad.
- The issue of badges came up a few times. First, because we found that the plan for “Club Captain” and “Regional Coordinator” badges felt a little redundant given the concept of “roles.” Second, because we saw an opportunity to incentivize and reward participation by providing levels of badges (more like an “achievements” model). Seems like our colleagues were thinking along the same lines.
All in all, it was a really productive couple of days. We’ll be getting wireframes and then mockups out to various stakeholders over the next heartbeat, along with hashing out the technical issues with our engineering team.
Feel free to share any comments and questions.
There has been a series of recent changes to the Fennec platform code (under widget/android). Most of the changes was refactoring in preparation for supporting multiple GeckoViews.
Currently, only one GeckoView is supported at a time in an Android app. This is the case for Fennec, where all tabs are shown within one GeckoView in the main activity. However, we'd like to eventually support having multiple GeckoView's at the same time, which would not only make GeckoView more usable and make more features possible, but also reduce a lot of technical debt that we have accumulated over the years.
The simplest way to support multiple GeckoViews is to open multiple nsWindows on the platform side, and associate each GeckoView with a new nsWindow. Right now, we open a new nsWindow in our command line handler (CLH) during startup, and never worry about having to open another window again. In fact, we quit Fennec by closing our only window. This assumption of having only one window will change for multiple GeckoView support.
Next, we needed a way of associating a Java GeckoView with a C++ nsWindow. For example, if a GeckoView sends a request to perform an operation, Gecko would need to know which nsWindow corresponds to that GeckoView. However, Java and platform would need to coordinate GeckoView and nsWindow creation somehow so that a match can be made.
Lastly, existing messaging systems would need to change. Over the years, GeckoAppShell has been the go-to place for platform-to-Java calls, and GeckoEvent has been the go-to for Java-to-platform calls. Over time, the two classes became a big mess of unrelated code stuffed together. Having multiple GeckoViews would make it even harder to maintain these two classes.
But there's hope! The recent refactoring introduced a new mechanism of implementing Java native methods using C++ class members 1). Using the new mechanism, calls on a Java object instance are automatically forwarded to calls on a C++ object instance, and everything in-between is auto-generated. This new mechanism provides a powerful tool to solve the problems mentioned above. Association between GeckoView and nsWindow is now a built-in part of the auto-generated code – a native call on a GeckoView instance can now be transparently forwarded to a call on an nsWindow instance, without writing extra code. In addition, events in GeckoEvent can now be implemented as native methods. For example, preference events can become native methods inside PrefHelper, and the goal is to eventually eliminate GeckoEvent altogether 2).
Effort is underway to move away from using the CLH to open nsWindows, which doesn't give an easy way to establish an association between a GeckoView and an nsWindow 3). Instead, nsWindow creation would move into a native method inside GeckoView that is called during GeckoView creation. As part of moving away from using the CLH, making a speculative connection was moved out of the CLH into its own native method inside GeckoThread 4). That also had the benefit of letting us make the speculative connection much earlier in the startup process.
This post provides some background on the on-going work in Fennec platform code. I plan to write another follow-up post that will include more of the technical details behind the new mechanism to implement native calls.1) Bug 1178850 (Direct native Java method calls to C++ classes), bug 1186530 (Implement per-instance forwarding of native Java methods), bug 1187552 (Support direct ownership of C++ objects by Java objects), bug 1191083 (Add mechanism to handle native calls before Gecko is loaded), bug 1192043 (Add mechanism to proxy native calls to Gecko thread) 2) Bug1188959 ([meta] Convert GeckoEvent to native methods) 3) Bug 1197957 (Let GeckoView control nsWindow creation) 4) Bug 1195496 (Start speculative connection earlier in startup)
Mozilla CEO Chris Bears talks about the Mozilla Project's Community Participation Guidelines in a recent Monday Project Meeting.
I’ll be speaking about remoties at the O’Reilly Cultivate conference in NYC!
Cultivate is being held on 28-29 Sept 2015, in the Javits conference center, in New York City. This is intentionally the same week, and same location, as the O’Reilly Strata+Hadoop World conference, so if you lead others in your organization, and are coming to Strata anyways, you should come a couple of days early to focus on cultivate-ing (!) your leadership skills. For more background on O’Reilly’s series of Cultivate conferences, check out this great post by Mike Loukides. I attended the Cultivate Portland conference last month, when it was co-located with OSCON, and found it insightful edge-of-my-seat stuff. I expect Cultivate NYC to be just as exciting.
Meanwhile, of course, I’m still writing like crazy on my book (and writing code when no-one is looking!), so have to run. As always, if you work remotely, or are part of a distributed team, I’d love to hear what does/doesn’t work for you and any wishes you have for topics to include in the book – just let me know.
Hope to see you in NYC next month.
Not to bring out the "lurkers support me in E-mail" argument but the public blog comments are rather different in opinion and tenor from the E-mail I got regarding our last post upon my supreme concern and displeasure over the eventual end of XPCOM/XUL add-ons. I'm not sure why that should be, but never let it be said that MoFo leadership doesn't stick to their (foot)guns.
With that in mind let me extend, as an author of a niche addon that I and a number of dedicated users employ regularly for legacy protocols, an attempt at an olive branch. Here's the tl;dr: I need a raw socket API, I need a protocol handler API, and I need some means of being able to dynamically write an document/data stream and hand it to the docshell. Are you willing?
When Mozilla decommissioned Gopher support in Firefox 4, the almost universal response was "this shouldn't be in core" and the followup was "if you want it, it should be an add-on, maintained by the community." So I did, and XPCOM let me do this. With OverbiteFF, Gopher menus (and through an analogous method whois and ph) are now first class citizens in Firefox. You can type a Gopher URL and it "just works." You can bookmark them. You can interact with them. They appear no differently than any other web page. I created XPCOM components for a protocol object and a channel object, and because they're XPCOM-based they interact with the docshell just like every other native core component in Necko.
More to the point, I didn't need anyone's permission to do it. I just created a component and loaded it, and it became as "native" as anything else in the browser. Now I need "permission." I need APIs to do what I could do all by myself beforehand.
What I worry is that Mozilla leadership is going to tick the top 10 addons or so off as working and call it a day, leaving me and other niche authors no way of getting ours to work. I don't think these three APIs are either technically unrealistic or lack substantial global applicability; they're foundational for getting new types of protocol access into the browser, not just old legacy ones. You can innovate nearly anything network-based with these three proposals.
So how about it? I know you're reading. Are you going to make good on your promises to us little guys, or are we just screwed?
The Monday Project Meeting
Ghacks Technology News
Mozilla improves Firefox's full screen handling
Ghacks Technology News
Mozilla tweaked Firefox's full screen behavior in recent Nightly versions of the browser (that is version 43) to make it less annoying to users. Some sites allow you to run applications or services in fullscreen. Many video streaming services such as ...
Firefox Nightly Edition Makes YouTube Fullscreen Alerts Less AnnoyingSoftpedia News (blog)
alle 2 nieuwsartikelen »
I am ending all development and support for my "extension"-type add-ons effective immediately.
This affects (daily user numbers according to addons.mozilla.org):
- Jökulsárlón Download Manager (almost 500 daily users, source on hg.m.o)
- KaiRo.at Mandelbrot (roughly 1000 daily users, source on git-public.kairo.at)
- Tahoe Data Manager (slightly over 300 daily users, source on hg.m.o) - this is also a default part of SeaMonkey.
If anyone is interested in taking over development and maintenance of any of those, please let me know and I'm happy to convert their repositories over to github for easier working with them, and and the new developer to their administration on AMO and/or move them over to you completely.
I will leave them listed on AMO for a little while so people who want to take over can take a look, but I will hide them from the site in the near future if nobody is interested.
The reasons for this step are multiple:
For one thing, I just don't have the time for updating their code or improving them. My job is stressful enough that my head is overflowing with Mozilla-related things all the time, and my employer is apparently not willing to give me any relief (in terms of hiring someone to supplement me) that would give me back sanity, so I need to remove some Mozilla- and software-related thing from my non-work time to gain back a little sanity so that I don't burn out.
I am also really sad that apparently nobody finds the time or energy to make decent managing and notification mechanisms available for UI code around the new-style web storage mechanisms like indexedDB, appCache, or ServiceWorkers caching, while we do have quite nice APIs there for long-standing things like cookies. For getting Tahoe Data Manager (which was my most interesting add-on) to work decently, I would have needed decent APIs there as well.
Then, my interest for experimenting with code has moved more and more away from the browser, which keeps changing around me all the time, and towards actual web development, where existing code doesn't get broken all the time and your code is more isolated. As a bonus, I can develop things that run on my (Firefox OS) phone and that I can show other people when I'm somewhere. And even there, I don't get as much time to dig into stuff as I would like to, see above.
And finally, and that's why this culminates right now, I disagree with some pieces of Mozilla's add-on strategies right now, and I don't want to be part of that as an add-on developer.
For one, I think add-on signing is a good idea in principle, but not enabling developers to test their code in any way in the same builds that users get is against everything I learned in terms of quality assurance. Then, requiring developers and other users of unbranded (or early pre-release) builds to turn off security for everything just to use/test one or two unsigned add-ons just feels plainly wrong to me (and don't tell me it can't be done otherwise, as I know there are perfectly good ways to solve this without undermining signing and preserving more safety). And I also fear that, while add-on signing brings a lot of pain to add-on developers and will make us lose some of them and their users, we will not reduce the malware/adware problem in the mid to long term, but rather make it worse, as they will resort to injecting binary DLLs into the Firefox process, which is the primary cause of startup crashes on updates, and I will have more grief in my actual job due to this, next to Firefox losing users that see those crashes.
And on the deprecation of "the permissive add-on model" as they call it in the post, I think that the Firefox UI being written in web (CSS/JS/HTML) or web-like (XUL) technologies and the ability to write add-ons that can use those to do anything in Firefox, including prototyping and inventing new functionality and UI paradigms, is the main thing that sets Firefox apart product-wise from all its competitors. If we take that away, there is no product reason for using Firefox over any other browser, the only reasons will be the philosophy behind Mozilla (which is what I'm signed up for anyhow)and the specific reflection of those in some internals of the browser, like respecting privacy and choice a little bit more than others - but most people consider that details, and it's hard to win them over with those. Don't get me wrong, I think that the WebExtensions API is a great idea (and it would be awesome to standardize some bits of it across browsers), and add-ons being sandboxed by default is long overdue. But we also would need to require less signing and review for add-ons that are confined to the safe APIs provided there, and I think we'd still, with heavy review, signing, and whatnot, need to allow people to go fully into the guts of Firefox, with full permissions, to provide the basis for the really ground-breaking add-ons that set us apart from the rest of the world. Even though almost all of the code of my add-ons ran within their own browser tab, they required a good reach into high-permission areas, which probably the new WebExtensions API will not allow that way. But I also do not even have the time to investigate how I could adapt my add-ons to any of this, so I decided to better pull the plug right now.
So, all in all, I probably have waited too long with this anyhow, mostly because I really like Tahoe Data Manager, but I just can't go on pretending that I will still develop or even maintain those add-ons.
Again, if anyone is interested in taking over, either fully or with a few patches here and there, please contact me and I'll help to make it happen.
(Note that this does not affect my language packs, dictionaries, or themes at this point, I'm continuing to maintain and develop them, at least for now.)
Mozilla faces developer wrath with changes that could make Firefox a 'Chrome ...
MOZILLA HAS UPSET a huge chunk of the firm's Firefox add-on developers after announcing plans to lock down the ecosystem that surrounds them. The changes will, according to Mozilla, take advantage of Electrolysis and Servo, two new technologies that ...
Chrome Extensions Coming to Firefox as Mozilla Reveals Security ChangesNDTV
Mozilla Wants All Your Favorite Chrome Extensions for FirefoxSlate Magazine (blog)
Mozilla Says Buh-Bye To Firefox Add-Ons In Favor Of Chrome Extensions: Why ...Tech Times
Ars Technica -The Market Business
alle 121 nieuwsartikelen »
As you may already know, last Friday – August 21st – we held a new Testday event, for Firefox 41 Beta 3.
- no new issues were found while testing Add-ons Signing feature
- 2 new issues found while testing Text Chat in Firefox Hello feature: 1197397, 1197414
- 18 bugs were verified: 1154059, 1169146, 1169667, 1165122, 1163375, 1183044, 1047713, 1128162, 1175094, 1149745, 1164099, 1034081, 1145010, 1111555, 1135812, 1049285, 1152109, 1167478
- 5 bugs were triaged: 1197253, 1197237, 1170341, 1194140, 1195837
We’d like to take this opportunity to thank alex_mayorga, Bolaram Paul, Chandrakant Dhutadmal, Luna Jernberg, Moin Shaikh, gaby 2300 and the Bangladesh QA Community: Hossain Al Ikram, Rezaul Huque Nayeem, Nazir Ahmed Sabbir, Forhad Hossain, Md. Rahimul Islam, Sajib Raihan Russell, Rakibul Islam Ratul, Saheda Reza Antora, Sunny, Mohammad Maruf Islam for getting involved in this event and making Firefox as best as it could be.
Also a big thank you goes to all our active moderators.
Keep an eye on QMO for upcoming events!
Chrome Extensions Coming to Firefox as Mozilla Reveals Security Changes
Mozilla has announced big changes are coming to the Firefox browser. While the tweaks are designed to make the Web browser more secure and stable, it also makes it possible to run Chrome and Opera extensions in Firefox. Also support for traditional ...
Mozilla Wants All Your Favorite Chrome Extensions for FirefoxSlate Magazine (blog)
Mozilla Says Buh-Bye To Firefox Add-Ons In Favor Of Chrome Extensions: Why ...Tech Times
Mozilla introduces new feature that allows add-ons of Google's ChromeThe Market Business
Ars Technica -The Hoops News
alle 109 nieuwsartikelen »
Mozilla maakt de browser privé voor onlinediensten
Mozilla Firefox De meeste browsers hebben inmiddels een privémodus die ervoor zorgt dat er geen geschiedenis van bezochte sites wordt bijgehouden, zegt TechCrunch. Het voorkomt echter niet dat onlinediensten de gebruiker kunnen volgen, bijvoorbeeld ...
Mozillaは21日、公式ブログ“Mozilla Add-ons Blog”で、「Firefox」のアドオンを新しいブラウザー拡張API“WebExtensions”ベースのものへ置き換えていく方針を明らかにした。この施策はマルチプロセス化とサンドボックス機能をはじめとする「Firefox」の近代化のために必要な ...
alle 3 nieuwsartikelen »Google Nieuws
The screen on my X1 Carbon gave out after a couple months, and my loaner laptop in the meantime is an X240.
The worst thing about this laptop is how slowly the trackpoint moves with a default Ubuntu installation. However, it’s fixable:cat /sys/devices/platform/i8042/serio1/serio2/speed cat /sys/devices/platform/i8042/serio1/serio2/sensitivity
Note the starting values in case anything goes wrong, then fiddle around:echo 255 | sudo tee /sys/devices/platform/i8042/serio1/serio2/sensitivity echo 255 | sudo tee /sys/devices/platform/i8042/serio1/serio2/speed
Some binary search themed prodding and a lot of tee: /sys/devices/platform/i8042/serio1/serio2/sensitivity: Numerical result out of range has confirmed that both files accept values between 0-255. Interestingly, setting them to 0 does not seem to disable the trackpoint completely.
If you’re wondering why the configuration settings look like ordinary files but choke on values bigger or smaller than a short, go read about sysfs.
Mozilla Firefox verärgert Entwickler - Vorhandene Erweiterungen funktionieren ...
Im Gegensatz zu Chrome von Google macht Firefox von Mozilla den Nutzern und Entwicklern bislang keine großen Vorschriften, welche Erweiterungen für den Browser möglich sind. Für viele Nutzer dürfte das einer der Gründe sein, warum sie bislang nicht ...
Firefox: Mozilla präsentiert neues System für Add-onsPC Games Hardware
Firefox: Mozilla ändert die Regeln zur Add-on-EntwicklungComputerBase
Mozilla plant Kompatibilitätsbruch bei Firefox-ErweiterungenPro-Linux
alle 10 nieuwsartikelen »
Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us an email! Want to get involved? We love contributions.
- Rust-101. A hands-on Rust tutorial.
- The glium library. Challenges in exposing a safe API over an unsafe C library.
- Building an iOS App in Rust, Part 2: Passing Primitive Data Between Rust and iOS. Read Part 1 here.
- Mozilla’s Servo Lets Rust Shine.
- Three months of Rust.
- Configuring Emacs for Rust.
- Dissecting Crates.io: Bare Minimum Mirror.
- Using Docker to Test Rust on Linux.
- Community Versions for Rust.
- Virtual Structs Part 3: Bringing Enums and Structs Together.
- Parser Combinator Experiments in Rust.
- Closures as Anti-Lifetime-Gluteal-Bite-Device.
- Rust by Example now tracks stable Rust, uses container-based Travis infrastructure, and is tested against all three channels.
- A comparison of web frameworks written in Rust.
- octavo. Highly modular & configurable hash & crypto library written in pure Rust.
- Ammonia. A whitelist-based HTML sanitization library.
- mm. General purpose math and multimedia libraries.
- etcd. A Rust client library for etcd.
- proc. A Rust library for accessing Linux process and system information.
- scoped-threadpool-rs. A library for scoped and cached threadpools.
- imgui-rs. Rust bindings for ImGui.
86 pull requests were merged in the last week.New Contributors
- Marc-Antoine Perennou
- Martin Wernstål
Changes to Rust follow the Rust RFC (request for comments) process. These are the RFCs that were approved for implementation this week:
- Policy for rust-lang crates.
- Stabilize catch_panic.
- CoerceUnsized should ignore PhantomData fields.
- Turn statically known erroneous code into a warning and continue normal code-generation.
- Define a "line" as terminated by either \n or \r\n.
- Pretty print Debug of tuples, tuple structs and enum variants in a single line.
- Add item recovery collection APIs.
- Allow a x...y expression to create an inclusive range.
- Implement raw fat pointer comparisons.
- Add the family of [Op]Assign traits to allow overloading assignment operations like a += b.
- New str and String API.
- RawOs marker traits.
- Missing edge-case when destructuring.
- Splitting variants of str::starts_with and ends_with.
- Add a lint to warn about negative literal / method call precedence.
- Add CStr::from_bytes.
No jobs listed for this week. Tweet us at @ThisWeekInRust to get your job offers listed here!Quote of the Week
Mozilla’s announcement to deprecate XUL/XPCOM-based add-ons raises many questions. Seeing the reactions, it seems that most people are very confused now. I mean, I see where this is coming from. XUL and XPCOM have become a burden, they come at a huge memory/performance/maintenance cost, impose significant limitations on browser development and create the danger that a badly written extension breaks everything. Whatever comes to replace them certainly won’t give add-on developers the same flexibility however, especially when it comes to extending the user interface. This is sad but I guess that it has to be done.
What confuses me immensely however is WebExtensions which are touted as the big new thing. My experience with Chrome APIs isn’t all too positive, the possibilities here are very limited and there is a fair number of inconsistencies. The documentation isn’t great either, there are often undocumented details that you only hit when trying things out. This isn’t very surprising of course: the API has grown along with Chrome itself, and many of the newer concepts simply didn’t exist back when the first interfaces were defined. Even worse: Opera, despite using the same engine, occasionally implements the same APIs differently.
So my main question is: does Mozilla really plan to keep bug-for-bug compatibility with Chrome APIs all for the goal of cross-browser extensions? That’s an endless catch-up game that benefits Chrome way more than it helps Firefox. And what is this cross-browser story still worth once Mozilla starts adding their own interfaces which are incompatible to Chrome? Don’t forget that Chrome can add new APIs as well, maybe even for the same purpose as Mozilla but with a different interface.
Further, I don’t see any advantages of WebExtensions over the Add-on SDK. I wasn’t a fan of the SDK back when it was introduced but I must say that it really matured over the years. It took much time for the SDK to become a modern, consistent and flexible framework that it is right now. Mozilla invested significant effort into it and it paid off. What’s even more important, there is now sufficient documentation and examples for it on the web. Why throw all this away for a completely different framework? Note that the announcement says that most SDK-based extension will continue to work in the new world but according to the comments below it won’t be a development focus any more — from my experience, that’s an euphemism for “deprecated.”
As mentioned above, I don’t see how theoretical cross-browser compatibility is going to benefit Firefox. Maybe the advantage lies in the permission model? But Chrome’s permission model is broken — most extensions need APIs that could potentially allow them to access user’s browsing history. While most extensions won’t actually do anything like that, privacy violations are a very common issue with Chrome extensions. The privilege prompt doesn’t help users recognize whether there is a problem, it merely trains users to ignore privacy-related warnings. Oh, and it shifts the blame from Google to the user — the user has been warned, right?
In my opinion, this permission model cannot be seen as a substitute for reviews. Nor will it make reviews easier than for SDK-based extensions: it’s pretty easy to extract the list of SDK modules uses by an extension. That gives one pretty much the same information as a list of permissions, albeit without requiring an explicit list.
There must be a reason why Mozilla chose to develop WebExtension rather than focus that energy on improving the Add-on SDK. Sadly, I haven’t seen it mentioned anywhere so far.
Slate Magazine (blog)
Mozilla Wants All Your Favorite Chrome Extensions for Firefox
Slate Magazine (blog)
Whether you want to see even more cats on the Internet or you think Alphabet should just go back to calling itself Google, there's a Chrome extension to help. You can even get every website to refer to millennials by their proper name. Though ...
Mozilla's Radical Firefox Changes And How They'll Affect Your Add-OnsGizmodo Australia
Mozilla sets plan to dump Firefox add-ons, move to Chrome-like extensionsArs Technica
Reactions to Mozilla's announcement about upcoming Firefox add-on changesGhacks Technology News
Computerworld -Tech Times
alle 91 nieuwsartikelen »