-Поиск по дневнику

Поиск сообщений в rss_planet_mozilla

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.06.2007
Записей:
Комментариев:
Написано: 7

Planet Mozilla





Planet Mozilla - https://planet.mozilla.org/


Добавить любой RSS - источник (включая журнал LiveJournal) в свою ленту друзей вы можете на странице синдикации.

Исходная информация - http://planet.mozilla.org/.
Данный дневник сформирован из открытого RSS-источника по адресу http://planet.mozilla.org/rss20.xml, и дополняется в соответствии с дополнением данного источника. Он может не соответствовать содержимому оригинальной страницы. Трансляция создана автоматически по запросу читателей этой RSS ленты.
По всем вопросам о работе данного сервиса обращаться со страницы контактной информации.

[Обновить трансляцию]

Ben Moskowitz: Mozilla Is Not Chick-Fil-A

Пятница, 04 Апреля 2014 г. 04:49 + в цитатник

In 2012 the southern fried chicken restaurant Chick-Fil-A became the unlikely battlefield for marriage equality in America. Through a strange turn of events, same-sex marriage advocates and opponents converged on Chick-Fil-A franchises across the country. People lined up to buy chicken sandwiches in solidarity or to stage a boycott.

One thing’s for sure. If you eat at Chick-Fil-A, your money will support anti-gay causes. So if the long march of progress makes a fast food drive-thru a site of civic participation, well, that’s surreal—but it’s democracy in action.

This evening draws the conclusion of 11 disheartening days at Mozilla: the brief tenure of its co-founder as CEO. So why am I thinking about chicken sandwiches?

Eich is one of maybe a dozen living individuals who can claim to have built the open web. In 15 years of working at Mozilla, Eich never let his personal beliefs color his work. He and others grew Mozilla from a hobby into a world changing social movement. And, incredibly, they did it in a completely apolitical way.

But Eich as CEO was symbolic to a lot of people. It’s why people like Hampton Catlin and his husband, co-owners of a web development firm, took a stand. They and others called for Eich to apologize for funding the Prop 8 campaign or to step down. (I have complete respect for Hampton and have enjoyed several very constructive conversations with him over the past two weeks.)

The crisis that emerged over this issue was partially self-inflicted. We failed to manage the crisis. And a lot of our own people acted badly—from the top on down. We acknowledge this:

We didn’t act like you’d expect Mozilla to act. We didn’t move fast enough to engage with people once the controversy started. We’re sorry. We must do better.

At the same time, gestures from OKCupid and others show that our biggest problem is that the world does not know the story of Mozilla. Especially as a progressive at Mozilla, it was hard to watch as people who should know better pulled out the Chick-Fil-A playbook.

Contrast Chick-Fil-A with Mozilla. The Atlanta-based company has donated upwards of $5 million dollars to PACs opposed to same-sex marriage, and the company’s chief operating officer is on record that same-sex marriage advocates were “inviting God’s judgement on the nation.” Mozilla is a collective of happy mutants who want to make the world better, whose original logo was designed by Shepherd Fairey.

Mozilla was never Chick-Fil-A. A user’s decision to use Firefox would never fund anti-gay causes. The first reason is that we’re not a profit-seeking organization. The second reason is that we would never fund anti-gay causes!

We watched this week as Mozilla, a global non-profit and volunteer community making a free product to benefit humanity, was stained with the taint of homophobia, retrograde opinions, and hate.

It was an expensive moral panic. And though I am heartened that people like Andrew Sullivan feel the same:

Will he now be forced to walk through the streets in shame? Why not the stocks? The whole episode disgusts me – as it should disgust anyone interested in a tolerant and diverse society. If this is the gay rights movement today – hounding our opponents with a fanaticism more like the religious right than anyone else – then count me out. If we are about intimidating the free speech of others, we are no better than the anti-gay bullies who came before us.

…it’s still our fault. This was a critical test of our ability to tell our story, and we failed.

To many of the people who drew incorrect conclusions about Mozilla and our character, we might as well be selling chicken sandwiches.

What do we do from here? Mozilla needs to do a better job of explaining how we’re different. We need to play to our strengths—community, disruptive innovation, doing things in unconventional ways. Even in this storm, you could see some of those silver linings.

Mozilla needs to re-embrace the core of who we are and where we came from. In our products, in our initiatives, in our leadership. Let’s take on big challenges and pick fights again. Let’s not be like the other guys, and make sure the world knows it.

The great irony of all this is that Brendan Eich would have been the best person to return to us to these roots.

For the record, I don’t believe Brendan Eich is a bigot. He’s stubborn, not hateful. He has an opinion. It’s certainly not my opinion, but it was the opinion of 52% of people who voted on Prop 8 just six years ago, and the world is changing fast.

Most of this is ambiguous. Some of it is painful. I am equally disappointed in Mozillians and in demagogues who didn’t see the irony in hounding someone for their private opinion because of “intolerance.”

But one thing is clear: we need to treat all good people with respect and dignity, regardless of who they are or what they believe. I am glad now that the world will have a chance to know our character. And I am grateful to Brendan Eich for all that he’s done for the open web. I hope that in time he will find a way to return to the project and provide the technical leadership that Mozilla, and the world, so greatly needs.

http://www.benmoskowitz.com/?p=971


Daniel Glazman: Sad day

Пятница, 04 Апреля 2014 г. 04:13 + в цитатник

It's a very sad day. I just landed in San Francisco and learned about Brendan's resignation and I am totally shocked. I have very mixed feelings today about the "Mozilla Community" and I am not sure I like what it became.

Mitchell wrote the following:

We welcome contributions from everyone regardless of age, culture, ethnicity, gender, gender-identity, language, race, sexual orientation, geographical location and religious views. Mozilla supports equality for all.

Yes, we do. But I think we also value democracy, and what happened during the last days seems to be a negation of democracy. One should be able to express legal opinions without having to face a witch-hunt-like repression.

Today, Mozilla is weaker because of this witch hunt. Mozilla, who is standing for the better of everyone on the Web, is weaker because some people thought it would be stronger without Brendan. This is ridiculous, this is a shame, this is a scandal. A small step for a few, a giant leap back for the Web.

Who said "Mozilla Community"? Who said Openness? Pfffff. I've been a Mozillian for fourteen years and I'm not even sure I still recognize myself in today's Mozilla Community. Well done guys, well done. What's the next step? 100% political correctness? Is it still possible to have a legally valid personal opinion while being at Mozilla and express it in public?

Personal message to Brendan : Paris in April and May can be such a wonderful city. Come over here for a break, I have a few good restaurants, bars and unknown superb monuments to show you... With all my thoughts and support.

"I may disagree with what you have to say, but I shall defend, to the death, your right to say it"

(comments disallowed, I still have in mind the hate messages left on this blog last week)

Update: I perfectly understood the fact Brendan resigned because of the external pressure. But that external pressure would probably not have existed at all without the original internal pressure. Reminding Brendan's position was, I already said it, pointing an index at him. Being an employee and explicitly saying in public "I don't support Brendan as CEO because of his prop8 support" triggered the rest. That's where I don't understand the Mozilla Community any more.

http://www.glazman.org/weblog/dotclear/index.php?post/2014/04/04/Sad-day


Justin Wood: Keeping track of MQ patchsets…

Пятница, 04 Апреля 2014 г. 04:11 + в цитатник

Hey Everyone!

First some brief Background, Mozilla Releng has our code in a *lot* of repos, most being in Mercurial (a few other needs are in git or svn, but those are very rare relatively). I also do work for SeaMonkey which has needs with m-c, m-i, m-*, c-c, c-* etc. And needs with l10n

I personally manage all my patches with MQ. Which presents a problem for me, “keeping track of it all”. I used to try keeping open bugs, but thats hard with releng because while a bug may be open, we tend to have a good handful of patches attached to it, for various repos, and they need to land in certain orders sometimes.

Other ways I’ve tried to cope have been with landing as soon as the review comes in and avoiding writing patches for parts that need to land later until the first parts are landed/deployed. I found that method encompasses unneeded end-to-end times on bugs, and unnecessary context-switching.

To curb that I wrote a mozilla-build (bash) script [in ~/.bash_profile ] that sets an alias `patchset` that I run, and it works!

It especially works because I keep my code in /c/Sources/hg/* some repos are multi-levels deep, so this code could/should be improved or at least edited for your uses, but without further ado, this is how I manage my patchset (again note, all my work is in Mercurial, I do convert my stuff over to git/etc as needed though):

EDIT: I forgot to give credit for my normalize_path() implemented I stole Borrowed from http://www.linuxjournal.com/content/normalizing-path-names-bash

Provided as-is, without alteration (again cleanups likely):

function normalize_path()
{
    # Remove all /./ sequences.
    local   path=${1//\/.\//\/}

    # Remove first dir/.. sequence.
    local   npath=$(echo $path | sed -e 's;[^/][^/]*/\.\./;;')

    # Remove remaining dir/.. sequence.
    while [[ $npath != $path ]]
    do
        path=$npath
        npath=$(echo $path | sed -e 's;[^/][^/]*/\.\./;;')
    done
    path=$npath
    npath=$(echo $path | sed -e 's;[^/][^/]*/\.\.$;;')
    echo $npath
}

function patchset() {
    pushd /c/Sources/hg >/dev/null
    for i in `find . -maxdepth 2 ! \( -name l10n -prune \) -a -name .hg`;
      do
        pushd $i/.. >/dev/null;
        if [ `hg --config color.mode=auto qseries | wc -l` != 0 ]; then
            echo -n "======= "; echo -n $(normalize_path $i/..); echo " =====";
            hg qseries;
        fi
        popd >/dev/null;
    done
    for i in `find ./users -maxdepth 3 -name .hg`;
      do
        pushd $i/.. >/dev/null;
        if [ `hg --config color.mode=auto qseries | wc -l` != 0 ]; then
            echo -n "======= "; echo -n $(normalize_path $i/..); echo " =====";
            hg qseries;
        fi
        popd >/dev/null;
    done
    for i in `find ./l10n -maxdepth 3 -name .hg`;
      do
        pushd $i/.. >/dev/null;
        if [ `hg --config color.mode=auto qseries | wc -l` != 0 ]; then
            echo -n "======= "; echo -n $(normalize_path $i/..); echo " =====";
            hg qseries;
        fi
        popd >/dev/null;
    done
    popd >/dev/null
}

And the output of that, as it stands for me _today_:

Justin@AQUARIUS /c/Sources/hg/mozharness
$ patchset
======= ./braindump/ =====
seamonkey-bouncer
======= ./buildbot-configs/ =====
ionmonkey
======= ./buildbotcustom/ =====
ionmonkey
======= ./mozharness/ =====
ionmonkey
======= ./slaveapi/ =====
timestamp
docs

Lastly my qty of repos:

$ pushd /c/Sources/hg
/c/Sources/hg /c/Sources/hg/mozharness

Justin@AQUARIUS /c/Sources/hg
$ find . -maxdepth 2 ! \( -name l10n -prune \) -a -name .hg | wc -l
17

Justin@AQUARIUS /c/Sources/hg
$ find ./users -maxdepth 3 -name .hg | wc -l
19

Justin@AQUARIUS /c/Sources/hg
$ find ./l10n -maxdepth 3 -name .hg | wc -l
52

Hope this helps!

http://blog.drapostles.org/archives/126


Brendan Eich: The Next Mission

Пятница, 04 Апреля 2014 г. 03:12 + в цитатник

Slides for the brief talk that I gave at a Harvard seminar on privacy and user data organized by John Taysom last week.

My talk was really more about the “network problem” than the “protocol problem”. Networks breed first- and second-mover winners and others path-dependent powers, until the next disruption. Users or rather their data get captured.

Privacy is only one concern among several, including how to realize economic value for many-yet-individually-weak users, not just for data-store/service owners or third parties. Can we do better with client-side and private-cloud tiers, zero-knowledge proofs and protocols, or other ideas?

In the end, I asked these four questions:

  1. Can a browser/OS “unionize its users” to gain bargaining power vs. net super-powers?
  2. To create a data commons with “API to me” and aggregated/clustered economics?
  3. Open the walled gardens to put users first?
  4. Still be usable and private-enough for most?

I think the answer is yes, but I’m not sure who will do this work. It is vitally important.

I may get to it, but not working at Mozilla. I’ve resigned as CEO and I’m leaving Mozilla to take a rest, take some trips with my family, look at problems from other angles, and see if the “network problem” has a solution that doesn’t require scaling up to hundreds of millions of users and winning their trust while somehow covering costs. That’s a rare, hard thing, which I’m proud to have done with Firefox at Mozilla.

I encourage all Mozillians to keep going. Firefox OS is even more daunting, and more important. Thanks indeed to all who have supported me, and to all my colleagues over the years, at Mozilla, in standards bodies, and at conferences around the world. I will be less visible online, but still around.

/be

https://brendaneich.com/2014/04/the-next-mission/


Brian King: Welcome Rosana to Reps

Вторник, 01 Апреля 2014 г. 14:31 + в цитатник

I’m delighted to welcome Rosana Ardila as Program Manager for Mozilla Reps. Rosana has moved from the SUMO team where she has worked hard building up a strong community there. She helped build out contributor tools, a buddy program, and more to make it one of the strongest groups in Mozilla in terms of participation. Read how her former team holds her in high regard. Rosana has many skills apart from community building, including being able to speak six languages fluently which is a great asset in a global organisation like Mozilla.

Rosana

Rosana (picture by Pierros Papadeas)

Rosana’s role in Reps will be to help the program evolve to meet the new challenges that constantly arise at Mozilla. She will assist in defining strategies to grow and develop the program, including a robust leadership structure, and measure its impact on community health and organizational goals. For example for our 2014 goal of scaling our contributor base by 10x, Reps can have a crucial role in this. Rosana will also be hands-on in some day to day work ensuring that the processes and documentation we’ve put in place continue to serve effectively.

My role has evolved to oversee a few of the programs in Contributor Engagement (another post to follow on that), but I will still be working very closely with Rosana in Reps.

Oh, and Long Live The Queen! (fun)

Related articles
Enhanced by Zemanta

http://brian.kingsonline.net/talk/2014/04/welcome-rosana-to-reps/


Fr'ed'eric Buclin: Bugzilla 5.0 moved to Python (bye bye Perl!)

Вторник, 01 Апреля 2014 г. 14:23 + в цитатник

This discussion took place three years ago, and we have been working very hard to make it happen. But we are now done: Bugzilla 5.0, the next major release of Bugzilla which will be released later this month on April 31, will be based on Python 3.4, meaning that Bugzilla 4.4 was the last major release to be based on Perl. We hope this migration to Python will trigger more contributors and will increase the development rate of Bugzilla.

Bugzilla 5.0 comes with many major changes. Just to name a few:

  • Support for Internet Explorer (including IE 11) and less known browsers has been removed. You must now run Firefox, Google Chrome or Safari, which fully support HTML5, else an error message will be displayed asking you to use one of these browsers.
  • You must have Java 8 installed and enabled in your browser in order to upload new attachments. This way, sanity checks can be done client-side before the attachment is uploaded to Bugzilla. If you don’t have Java installed or enabled, you can still view existing attachments, though, but you won’t be able to upload new ones.
  • The version 5.0 of Bugzilla can be downloaded for free, but security fixes (5.0.1, 5.0.2, …) require that you register to our server to be able to download them. The fee isn’t expensive: $20 per security release for installations with less than 10 users. $200 between 10 and 50 users. $1000 above 50 users. As we do security releases only once every 4 months or so, this means that you can keep your installation safe for only $60 per year (or $3000 for larger installations).
  • For other changes, please read the Bugzilla 5.0 release notes.

Enjoy!


http://lpsolit.wordpress.com/2014/04/01/bugzilla-5-0-moved-to-python-bye-bye-perl/


Byron Jones: happy bmo push day!

Вторник, 01 Апреля 2014 г. 10:27 + в цитатник

the following changes have been pushed to bugzilla.mozilla.org:

  • [880113] Use the cache for the product and component name
  • [988744] orangefactor template_before_process should check $file before checking user settings
  • [989415] Weird “0 of attachment” text in bugmail from patches attached to security bugs
  • [987741] deleted comment checking runs before tags are preloaded, triggering excessive database queries
  • [989650] Allow requestees to set attachment flags even if they don’t have editbugs privs
  • [990070] Bug.update_attachment should allow for adding a comment when updating attachment details similar to attachment.cgi
  • [989633] Unable to change content type using Bug.update_attachment if attachment previously set to is_patch = 1
  • [774198] “Undefined subroutine Fh::slice” while attaching a file

discuss these changes on mozilla.tools.bmo.


Filed under: bmo, mozilla

http://globau.wordpress.com/2014/04/01/happy-bmo-push-day-88/


K Lars Lohn: the Mozilla CEO

Вторник, 01 Апреля 2014 г. 02:23 + в цитатник
it is a moot point now. 
Brendan Eich has resigned as CEO of Mozilla


I am a gay employee of the Mozilla Corporation, and I support my company's decisions regarding the selection of CEO. This doesn't mean that I'm entirely comfortable with the selection, but not because I think Brendan Eich is a threat, but instead because of the public relations repercussions.


The CEO of a corporation is the public face of the company. It is easy for the public to conflate the personal beliefs of the person with the mission of the company. For this reason, I see that that the selection of Brendan is a public relations disaster. I'm sad that it appears this firestorm was not foreseen. However, the decision is made, we must move on to focus on the real work.

Mozilla's mission is to defend and nurture the free Web. If we're not going to do it, who is? The fervor of indignation regarding our new CEO is a distraction that we do not need. Our energy should be going to support or mission not spin the personal beliefs of the CEO. These are difficult times for the Web with threats from large corporations pushing us into silos and government overreach. The energy that we expend defending our selection of CEO is energy taken from our real mission.

I have friends that hold political opinions that are antithetical to me – I do not exclude them from my life, I embrace my friends. I neither support nor understand their beliefs, but doesn't mean that I throw them away. I cannot condone holding a grudge in perpetuity. To do so would be leaving a wake of enemies behind me whereas I could instead have them as allies beside me where we do agree.

I do not agree with Brendan's support of Prop8. However, that particular battle is one that Brendan lost. It's over. I don't know if his opinions have changed nor do I feel that I need to know. Technically, Brendan is a good choice for CEO: we need to be a technically driven company.

Mozilla has a vocal LBGT community. Brendan could not derail us if he wanted to. I don't think that he does want to because he's focused on the real mission: the free Web. He's working with us, I, for one, am willing to set aside my trepidation and work with him, too.

I say to the larger community calling for the ouster of Brendan Eich, “please don't succumb to the knee jerk reaction.” I did at first, but with some thought, I realize that we need to focus on the future not exact retribution for the past.

To the people that have threatened me about this posting, 
I can only look at you quizzically, laugh and then walk away.

http://www.twobraids.com/2014/03/the-mozilla-ceo.html


Kartikaya Gupta: Brendan as CEO

Вторник, 01 Апреля 2014 г. 01:37 + в цитатник

I would not vote for Brendan if he were running for president. However I fully support him as CEO of Mozilla.

Why the difference? Simply because as Mozilla's CEO, his personal views on LGBT (at least what one can infer from monetary support to Prop 8) do not have any measurable chance of making any difference in what Mozilla does or Mozilla's mission. It's not like we're going to ship Firefox OS phones to everybody... except LGBT individuals. There's a zero chance of that happening.

From what I've read so far (and I would love to be corrected) it seems like people who are asking Brendan to step down are doing so as a matter of principle rather than a matter of possible consequence. They feel very strongly about LGBT equality, and rightly so. And therefore they do not want to see any person who is at all opposed to that cause take any position of power, as a general principle. This totally makes sense, and given two CEO candidates who are identical except for their views on LGBT issues, I too would pick the pro-LGBT one.

But that's not the situation we have. I don't know who the other CEO candidates are or were, but I can say with confidence that there's nobody else in the world who can match Brendan in some areas that are very relevant to Mozilla's mission. I don't know exactly what qualities we need in a CEO right now but I'm pretty sure that dedication and commitment to Mozilla's mission, as well as technical expertise, are going to be pretty high on that list. That's why I support Brendan as CEO despite his views.

If you're reading this, you are probably a strong supporter of Mozilla's mission. If you don't want Brendan as CEO because of his views, it's because you are being forced into making a tough choice - you have to choose between the "open web" affiliation on your personal identity and the "LGBT" affiliation on your personal identity. That's a hard choice for anybody, and I don't think anybody can fault you regardless of what you choose.

If you choose to go further and boycott Mozilla and Mozilla's products because of the CEO's views, you have a right to do that too. However I would like to understand how you think this will help with either the open web or LGBT rights. I believe that switching from Firefox to Chrome will not change Brendan or anybody else's views on LGBT rights, and will actively harm the open web. The only winner there is Google's revenue stream. If you disagree with this I would love to know why. You may wish to boycott Mozilla products as a matter of principle, and I can't argue with that. But please make sure that the benefit you gain from doing so outweighs the cost.

https://staktrace.com/spout/entry.php?id=823


Kim Moir: Schooling yourself in release engineering

Понедельник, 31 Марта 2014 г. 22:38 + в цитатник
Traditionally, there haven't been many courses offered in colleges or universities that cover the fundamentals of release engineering.  This means that students don't get exposed to the potential that a career in release engineering has to offer.  Conversely, it also doesn't provide students who become employed in more traditional developer roles the background regarding the complexity and challenges that arise within the scope of  release engineering.  However, this is beginning to change which is fantastic!  For example:

Release Engineering as a Discipline,  Center of Computer Science, RWTH Aachen University in Aachen Germany

Overview of the Build and Release Process, Seneca College, Toronto


Release Engineering -- Applications of Mining Software Repositories, 'Ecole Polytechnique, Montr'eal

Software Release Planning, University of Calgary

Seneca College Library Image ©moqubhttps://flic.kr/p/9PyVVm Creative Commons by-nc-sa 2.0


If anyone knows of other courses that are offered, I'd love to hear about them.  Maybe someday I won't have to explain to new people I meet what a release engineer does all day.  Just kidding, this will still happen :-)

http://relengofthenerds.blogspot.com/2014/03/schooling-yourself-in-release.html


Sylvestre Ledru: Changes Firefox 29 beta2 to beta3

Понедельник, 31 Марта 2014 г. 22:23 + в цитатник

In order to improve the feedback and the beta releases of Firefox, we are going to start publishing some information on beta releases.
For this, we are using the mercurial repository and using these two tags/revisions: --rev "ancestor(FIREFOX_29_0b2_RELEASE,FIREFOX_29_0b3_RELEASE)::FIREFOX_29_0b3_RELEASE" (See bsmedberg's blog post for more information on this syntax).

We are ignoring the commit from the ffxbld robot.

Firefox 29 beta 3 release(compared to Firefox 29 beta 2)
Here are some numbers:

  • 49 changesets
  • 112 files changed
  • 2174 insertions
  • 423 deletions

List of changes:
Philipp Sackl: Bug 979938 - Delay the display of the tab close button to avoid visual noise. r=Dao, a=sylvestre
Masayuki Nakano: Bug 981963 Ignore following char message if its wParam is 0 r=jimm, a=sledru
JW Wang: Bug 907162 - Fix MediaDecoderStateMachine might dispatch MediaDecoder::PlaybackEnded more than once and trigger multiple 'ended' events in HTMLMediaElement. r=cpearce, a=sledru
JW Wang: Bug 934794 - Fix failing to update stream blocking status when endBlockingDecisions == mStateComputedTime. r=roc, a=sledru
Olli Pettay: Bug 985988 = Event handlers should update preventDefault flag similar way to event.preventDefault(). r=masayuki, a=sledru
Brandon Benvie: Bug 970172 - Prevent VariablesView Variables from handling clicks while editing. r=vporof, a=sledru
Brian Nicholson: Bug 962103 - Make progress bar overlap content. r=lucasr, a=sledru
Brian Nicholson: Bug 962103 - Fix progress bar visibility on pre-Honeycomb devices. r=lucasr, a=sledru
John Schoenick: Bug 985859 - navigator.mimeTypes access should be case-insensitive. r=bsmedberg, a=sledru
Sebastian Hengst: Bug 982615 - Sync panel is not entirely displayed in localized builds. r=mak, a=gavin
Bobby Holley: Bug 986542 - Don't categorically disable script for detached docshells. r=bz, a=sledru
Gavin Sharp: Bug 955950 - Add pref to disable "reset Firefox" nag. r=MattN, a=sledru
Ryan VanderMeulen: Bug 985859 - Adding missing include to fix bustage. a=bustage
Shane Caraveo: Bug 915835 fix leak in socialmarks event listeners, r=markh, a=lsblakk
Chris Karlof: Bug 983256 - Change the client generated expiration time in FxA assertions to be 'forever'. r=jedp, a=lsblakk
Shane Caraveo: Bug 984628 fix social button states, r=markh, a=sylvestre
Nathan Froyd: Bug 942411 - Set the src of the iframe after adding it to the document. a=test-only
Phil Ringnalda: Bug 863658 - Replace mozilla-banner.gif with a plain blue image in 359903-2.html since we aren't trying to test individual pixel differences in resized image painting there. r=bz, a=test-only
Ryan VanderMeulen: Bug 948389 - Replace mozilla-banner.gif with a plain blue image in 405577-1.html since we aren't trying to test individual pixel differences in resized image painting there. r=roc, a=test-only
Brian Grinstead: Bug 962931 - Request longer timeout for browser_webconsole_split.js. r=msucan, a=test-only
Brian R. Bondy: Bug 981166 - Turn off Metro Firefox and cleanup DEH registration. r=rstrong, jimm. a=sylvestre
Nicholas Hurley: Bug 978759 - Fix shutdown crash in seer. r=mcmanus, a=sledru
Margaret Leibovic: Bug 943262 - Use CharsetMenu.jsm instead of charsetTitles.properties for Character Encoding menu items. r=bnicholson, a=sledru
Sid Stamm: Bug 835357 - Fix telemetry probes for DNT so they accumulate before the pings are sent. r=mcmanus, a=sledru
Ryan VanderMeulen: Backed out the requestCompleteLog part of Bug 942411 because it wasn't needed for the fix anyway. a=bustage
Brian Smith :: Return the correct error message when no potential issuers are found during path bulding in insanity::pkix, r=keeler a=sylvestre
Brian Smith: Bug 978120, Part 1: Make nsIX509Cert.setCerttrust, and nsIX509CertDB.addCert, and nsIX509CertDB2.addCertFromBase64 work on Android and B2G, r=keeler a=sylvestre
Brian Smith :: part 2: Enable more PSM xpcshell tests on Android and B2G, r=keeler a=testonly
Margaret Leibovic: Bug 982181 - Hide home banner after it is animated off screen, to avoid intercepting click events on pre-honeycomb devices. r=lucasr a=sledru
Ryan VanderMeulen: Backed out changesets d3352d36dbdf and e74b6a1da573 (Bug 978120) and changeset 816c209eaa71 (Bug 978528) for Android xpcshell failures.
Monica Chew :: Force url classifier clients to specify which tables to lookup, add a pref to skip hash completion checks (r=gcp,ba=sledru)
Matthew Noorenberghe: Bug 985786 - [10.6] Make the button to leave fullscreen match the styles of other toolbarbuttons and fix its missing image. r=mconley a=Sylvestre
Marco Bonardo: Bug 983571 - browser.bookmarks.autoExportHTML = true no longer works. r=Yoric a=sylvestre
Marco Bonardo: Backout 450a302d1ffa (Bug 983571) due to xpcshell failures
Monica Chew :: Rename urlclassifier.download_block_table and urlclassifier.download_allow_table (r=gcp,a=sledru)
Marco Bonardo: Bug 983571 - browser.bookmarks.autoExportHTML = true no longer works. r=Yoric a=sylvestre
Masatoshi Kimura: Bug 986347 - Restore accidentaly removed HasBogusPopupsDropShadowOnMultiMonitor() call. r=jimm a=sylvestre
Mike de Boer :: restore sidebar splitter and header styles on Windows 8. r=jaws, a=sledru.
Mike Conley: Bug 984156 - Make subview footer menuseparators have a non-zero height to prevent bookmarks folder scrolling issues. r=mak, a=sledru.
Gijs Kruitbosch: Bug 986529 - invert tab close icons on windows classic, r=jaws, a=sledru.
Tim Nguyen: Bug 984979 - Fix back button :active state on Windows 8, r=gijs, a=sledru.
Gijs Kruitbosch: Bug 985815 - fix customtoolbars test so it doesn't break subsequent tests, r=jaws, a=sledru.
Gijs Kruitbosch: Bug 985815 - propagate collapsed state to other windows, add test. r=jaws, a=sledru.
Gijs Kruitbosch: Bug 987615 - fix layout of buttons which are too long in customize mode, r=jaws, a=sledru.
Steven MacLeod: Bug 967028 - Use a SHistoryListener to collect entries from history.pushState(). r=Yoric, a=sylvestre
Jonathan Watt: Bug 959128 - Fix transforms of clipPath content for clipPath being used within SVG-in-OpenType glyph. r=heycam, a=sylvestre
Brian R. Bondy: Backout 7971f738a6cd temporarily as a safety precaution. r=jimm, rsrong, me. a=me
Ehsan Akhgari: Backed out 2 changesets (Bug 957652) because Bug 957431 is being backed out, a=sylvestre
Ehsan Akhgari: Backed out 2 changesets (Bug 957431) because we decided we're keeping Attr.ownerElement in the end; a=sylvestre ba=me
r= means reviewed by
a= means uplift approved by

If you have any suggestion to improve this for the next report, don't hesitate!

http://sylvestre.ledru.info/blog/2014/03/31/changes-firefox-29-beta2-to


William Reynolds: Add more accounts to your mozillians.org profile

Понедельник, 31 Марта 2014 г. 21:44 + в цитатник

You can now add accounts from three popular Mozilla sites to your profile on mozilllians.org, our community directory. This changes adds support for wiki.mozilla.org, webmaker.org and reps.mozilla.org accounts. Simply sign-in to Edit Your Profile, and then fill in the accounts you want to add. You can choose to make those accounts publicly viewable or only show them to other vouched Mozillians.

New account types

You can now add accounts from three popular Mozilla sites to your mozillians.org profile

And while you are updating your profile, be sure to add your timezone. This is especially helpful for finding good times to chat with others who are in different time zones.

http://dailycavalier.com/2014/03/add-more-accounts-to-your-mozillians-org-profile/


Manish Goregaokar: Editing files from omni.ja in Firefox 20 onwards

Воскресенье, 30 Марта 2014 г. 10:05 + в цитатник
This post focuses on Ubuntu, however when I get time I will update it with instructions for Windows.

So I've been working on a small side project recently and I found that editing the live code on Firefox is not as easy as it used to be. I had to do a fair amount of digging (and sifting out of outdated information) to get all the information on how to modify omni.ja files from live Firefox installs, so I'll just collect what I learned in this post.


Firefox is a browser written in C/C++, JavaScript, CSS, and XML. The C++ bits are compiled (by a very lengthy build process), but the Javascript is simply zipped up and loaded at runtime. There are binary versions of the JS files (which probably load faster), but these are not necessary.

Previously, the JS was uncompressed and just lying around in directories, and one could simply edit these files to change some functionality. While the core APIs are in C, most of the behavior of the Firefox UI is in JS/XML and thus a lot of tweaking can be done through these files. Of course, making an addon may be a viable option, but you may not always want to do that.

However to improve performance the files were gradually bundled in jars, finally resulting in the monstrosity known as omni.ja. This is a rather quirky jar file that contains the JS and JS "binaries".

Fortunately, the files in this jar can still be edited, with some more effort.

Firstly, let me note that on Ubuntu, there are two  omni.jas. The first in in /usr/lib/firefox, and the second is in /usr/lib/firefox/browser. These contain different code, so you may have to find out which one holds your JS.

Extracting the files from omni.ja is pretty simple. Copy omni.ja to a temporary directory, and run unzip omni.ja on it. (sudo apt-get install unzip may be necessary. Alternatively, use Ubuntu's Archive manager after renaming it to a .zip)

If you wish to modify a file from omni.ja, be sure that you delete its corresponding binary in the jsloader/resources/gre subtree or under the jssubloader tree. Then modify the javascript file as usual.

Try to keep a backup of the old omni.ja just in case, syntax errors may stop Firefox from loading.

To repack, you have to run zip -qr9XD omni.ja * in the same temporary directory. Be sure to delete the old omni.ja file before zipping, otherwise you may end up with a nested omni.ja. While I was playing with the file, after an initial smooth period where everything worked, I started getting segfaults even when simply unpacking, repacking, and loading omni.ja because I was neglecting to delete the old omni.ja, which created a jar that was nested in around 25 levels, which was too large for Firefox.

Now copy the new omni.ja from the temporary directory to where you got it from. Give everyone read permissions (chmod a+r /usr/lib/firefox)

This still does not ensure that the new jar file will be loaded. What you need to do to force this reload is open Firefox, disable or enable an addon (this only works if the addon is one that requires restart after being disabled or enabled — if this is the case you will be prompted to restart), and restart Firefox from the prompt. Other ways to do this (credit: Neil Rashbrook)

  • Use the --purgecaches command line parameter
  • Set the MOZ_PURGE_CACHES environment variable to 1
  • Use the .purgecaches file

Once you force reload omni.ja, Firefox should run on your new code.

http://inpursuitoflaziness.blogspot.com/2014/01/editing-files-from-omnija-in-firefox-20.html


Mitchell Baker: On Mozilla’s Support for Marriage Equality

Воскресенье, 30 Марта 2014 г. 05:03 + в цитатник

Last week I wrote that Mozilla’s commitment to inclusiveness for our LGBT community, and for all underrepresented groups, will not change. Acting for or on behalf of Mozilla, it is unacceptable to limit opportunity for *anyone* based on the nature of sexual orientation and/or gender identity. This is not only a commitment, it is our identity.

This left unanswered the question of whether equality explicitly includes marital equality. I want to clear that up. Speaking as the Chairwoman, I want to speak clearly on behalf of both the Mozilla Corporation and the Mozilla Foundation: Mozilla supports equality for all, explicitly including LGBT equality and marriage equality.

Statement: Mozilla Supports Marriage Equality

https://blog.lizardwrangler.com/2014/03/29/on-mozillas-support-for-marriage-equality/


Planet Mozilla Interns: Willie Cheong: Ideas for Web Applications

Суббота, 29 Марта 2014 г. 18:16 + в цитатник

Every once or twice in a 4 month term, I get a sudden rush of inspiration and ideas for cool things to take on as projects. This term at Mozilla there has been a lot of exposure with open sourcing, scraping the web for data and software tooling and automation. This lapse of ideas mostly revolve around those areas.

However, I usually get drained after the phase is done which is probably why I don’t feel like doing anything right now. I’ve already created repositories for these projects on GitHub and will contribute to whichever then interests me the most after this lazy phase is done.

  1. Tradester
  2. “Wouldn’t it be awesome to have a financial trading algorithm that anyone can write into and use freely?”. This thought came to me a few years ago when I finished first year at university. I wanted to start an open sourced script for an automated trading algorithm. The hope was for it to encompass all the smartness of traders everywhere into one algorithm for all who are smart enough to take advantage of it. Then I found MetaTrader4, a niche language which I never found the willpower to learn. So the idea died, or in terms of recent medical research, got put in animated suspension.

    Recently, I discovered that online brokers like Oanda and Robinhood (hopefully soon) are starting to offer REST APIs as one of their services to traders. Then it hit me that MT4 could be dropped completely by using common scripting languages like PHP instead. I.e. deploy algorithm script on any web hosting service, set-up CRON jobs, start automated trading. It also helps that web development languages are more popular than the obscure MT4, which is important considering that this will be open sourced.

  3. StoryLine
  4. This started about a year ago. The idea was for a common social platform where story writers could come together and collaboratively create new stories that were open sourced, like the GitHub for people who wrote in languages that were not meant for the computer.

    The project died mid-way when I realized that the product was taking a very bad approach to begin. It was made to try and take on a lot of stories and writers at the same time, which led to a very confusing user experience because of all the empty “social” views. I was working through the version control (back-end) component of StoryLine and Terry on the user interfaces when the project was killed.

    I recently found inspiration from looking at the WordPress model. The code is open sourced, so anyone can deploy and install their own independent instance of WordPress. At the same time, non-technical users can simply use wordpress.com where deployment is made simple. WordPress makes money from advertising on the wordpress.com sites and from writers who wish to export wordpress.com sites to their own hosting servers.

    Instead of a common platform that acts as GitHub for writers, StoryLine is likely to be better off as a deployable web application for all end-users. Each instance of StoryLine hosts a single, independent story. At some point later after maturity, a unified tool for users to create stories easily on awesome-name.storyline.com can be set up, much like the existing wordpress.com.

  5. Languify
  6. I love fontawesome. It’s open sourced, so simple, and adds so much value when used in the right context. Languify, like fontawesome, is an open sourced CSS library that contains commonly used words and phrases in different languages. Languify enables developers to create views that can be adapted to any language they want, just by the loading of a .css file.

    For example,

http://blog.williecheong.com/ideas-for-web-applications/


Eric Shepherd: On Brendan Eich as CEO of Mozilla

Суббота, 29 Марта 2014 г. 12:04 + в цитатник

There’s been something of an uproar over Brendan Eich’s promotion to the role of CEO of Mozilla Corporation due to the fact that many years ago, he donated money to support Proposition 8 in California. I’m not going to link to any of the blog posts, tweets, or news stories about this, since I don’t really want to give more traffic to rumormongers, especially since a lot of the stories are mostly speculation.

Since I work for Mozilla, I obviously have opinions on this. I’m going to share them, but first I’m going to be sure to point out what I’m not:

  • I’ve never reported to Brendan either directly or indirectly.
  • I’m not gay, so his opinions in the area don’t directly affect me.

With that out of the way, let me say this: in the more than eight years I’ve worked at Mozilla, I’ve never known Brendan to treat anyone differently based on their gender, sexual orientation, color, religion, eye color, height, weight, or anything else (sorry for being slightly flippant there; it’s how I handle this stuff).

I felt then, and feel now, that Prop 8 is a mistake, is unconstitutional, and is a moral catastrophe. Freedom to marry the consenting adult of your dreams is a core human right and should be protected as such. Now with my feelings on the matter exposed, let’s press on.

While I, too, would like him to make a statement clarifying things further, I also don’t think it’s any of my business. As long as Brendan’s feelings don’t impact his work functions, I honestly don’t care what he thinks. As far as I can tell, all he cares about is whether or not you can deliver the goods when you’re working on the project. That’s all that matters to me.

He can be cranky and dismissive at times when he thinks you’re wrong (or less right than he is), but everyone can be that way (I know I can). Whatever his personal feelings are on gay marriage (or homosexuality in general, or anything else), Brendan is a brilliant developer and manager, a great leader, and an avid supporter of open source software and of the free and open Web. In those respects, he’s the best possible person for the job of CEO of Mozilla.

Mozillians are a diverse community. Brendan knows that; he’s known that since he first helped create Mozilla a decade and a half ago. He’s never once been involved in controversy related to that diversity; becoming CEO doesn’t, I think, make him any more likely to be so.

Let’s give him the benefit of the doubt, and get back to rockin’ the open Web.

http://www.bitstampede.com/2014/03/29/on-brendan-eich-as-ceo-of-mozilla/


Luis Villa: I am the CADT; and advice on NEEDINFOing old bugs en masse

Суббота, 29 Марта 2014 г. 06:02 + в цитатник

[Attention conservation notice: probably not of interest to lawyers; this is about my previous life in software development.]

<a target=_blank href=/commons.wikimedia.org/wiki/File:MW_Bug_Squad_Barnstar.svg">Bugsquad barnstar, under MPL 1.1" class="size-full wp-image-2683 " height="194" src="http://lu.is/blog/wp-content/uploads/2014/03/MW_Bug_Squad_Barnstar.png" width="200" />
Bugsquad barnstar, under MPL 1.1

Someone recently mentioned JWZ’s old post on the CADT (Cascade of Attention Deficit Teecnagers) development model, and that finally has pushed me to say:

I am the CADT.

I did the bug closure that triggered Jamie’s rant, and I wrote the text he quotes in his blog post.1

Jamie got some things right, and some things wrong. The main thing he got right is that it is entirely possible to get into a cycle where instead of seriously trying to fix bugs, you just do a rewrite and cross your fingers that it fixes old bugs. And yes, this can particularly happen when you’re young and writing code for fun, where the joy of a from-scratch rewrite can overwhelm some of your other good senses. Jamie also got right that I communicated the issue pretty poorly. Consider this post a belated explanation (as well as a reference for the next time I see someone refer to CADT).

But that wasn’t what GNOME was doing when Jamie complained about it, and I doubt it is actually something that happens very often in any project large enough to have a large bug tracking system (BTS). So what were we doing?

First, as Brendan Eich has pointed out, sometimes a rewrite really is a good idea. GNOME 2 was such a rewrite – not only was a lot of the old code a hairy mess, we decided (correctly) to radically revise the old UI. So in that sense, the rewrite was not a “CADT” decision – the core bugs being fixed were the kinds of bugs that could only be fixed with massive, non-incremental change, rather than “hey, we got bored with the old code”. (Immediately afterwards, GNOME switched to time-based releases, and stuck to that schedule for the better part of a decade, which should be further proof we weren’t cascading.)

This meant there were several thousand old bugs that had been filed against UIs that no longer existed, and often against code that no longer existed or had been radically rewritten. So you’ve got new code and old bugs. What do you do with the old bugs?

It is important to know that open bugs in a BTS are not free. Old bugs impose a cost on developers, because when they are trying to search relevant bugs, old bugs can make it harder to find the things they really should be working on. In the best case, this slows them down; in the worst case, it drives them to use other tools to track the work they want to do – making the BTS next to useless. This violates rule #1 of a BTS: it must be useful for developers, or else it all falls apart.

So why did we choose to reduce these costs by closing bugs filed against the old codebase as NEEDINFO (and asking people to reopen if they were still relevant) instead of re-testing and re-triaging them one-by-one, as Jamie would have suggested? A few reasons:

  • number of triagers v. number of bugs: there were, at the time, around a half-dozen active bug volunteers, and thousands of pre-GNOME 2 bugs. It was simply unlikely that we’d ever be able to review all the old bugs even if we did nothing else.
  • focus on new bugs: new bugs are where triagers and developers are much more likely to be relevant – those bugs are against fresh code; the original filer is much more likely to respond to clarifying questions; etc. So all else being equal, time spent on new bugs was going to be much better for the software than time spent on old bugs.
  • steady flow of new bugs: if you’ve got a small number of new bugs coming in, perhaps you split your time – but we had no shortage of new bugs, nor of motivated bug reporters. So we may have paid some cost (by demotivating some reporters) but our scarce resource (developers) greatly appreciated it.
  • relative burden: with thousands of open bugs from thousands of reporters, it made sense to ask old them to test their bug against the new code. Reviewing their old bugs was a small burden for each of them, once we distributed it.

So when isn’t it a good idea to close ask for more information about old bugs?

  • Great at keeping old bugs triaged/relevant: If you have a very small number of old bugs that haven’t been touched in a long time, then they aren’t putting much burden on developers.
  • Slow code turnover: If your development process is such that it is highly likely that old bugs are still relevant (e.g., core has remained mostly untouched for many years, or effective use of TDD has kept the number of accidental new bugs low) this might not be a good idea.
  • No triggering event: In GNOME, there was a big event, plus a new influx of triagers, that made it make sense to do radical change. I wouldn’t recommend this “just because” – it should go hand-in-hand with other large changes, like a major release or important policy changes that will make future triaging more effective.

Relatedly, the team practices mailing list has been discussing good practices for migrating bug tracking systems in the past few days, which has been interesting to follow. I don’t take a strong position on where Wikimedia’s bugzilla falls on this point – Mediawiki has a fairly stable core, and the volume of incoming bugs may make triage of old bugs more plausible. But everyone running a very large bugzilla for an active project should remember that this is a part of their toolkit.

  1. Both had help from others, but it was eventually my decision.

http://lu.is/blog/2014/03/28/i-am-the-cadt-and-advice-on-needinfoing-old-bugs-en-masse/


Robert Kaiser: Lantea Maps conversion to WebGL

Суббота, 29 Марта 2014 г. 04:02 + в цитатник
I blogged about Lantea Maps 18 months ago. As its marketplace listing describes, the app's purpose is displaying maps as well as recording and displaying GPS tracks.

I wrote this app both to scratch an itch (I wanted an OpenStreetMap-based app to record GPS tracks) and to learn a bit more of JavaScript and web app development. As maps are a 2D problem and the track display requires drawing various lines and possibly other location indicators, I wrote this app based on 2D canvas. I started off with some base code on drawing bitmap tile maps to canvas, and wrote the app around that, doing quite some rewriting on the little bit of code I started from. I also ended up splitting map and track into separate canvases so I wouldn't need to redraw everything when deleting the track or when moving the indicator of the last location or similar. Over time, I did a lot of improvements in various areas of the app, from the tile cache in IndexedDB via OpenStreetMap upload of tracks to pinch zooming on touch screens.

Still, performance of the map canvas was not good - on phones (esp. the small 320x480 screens like the ZTE Open), where you only have a handful of 256x256 map tiles to draw, panning was slightly chunky, but on larger screens, like my Android tablet or even my pretty fast desktop, it ranged from bad to awful (like, noticeably waiting from any movement until you saw any drawing of a move map). Also, as it takes until images are loaded (cached from IndexedDB or out from the web) and that's all called asynchronously, the positions the images ended up being drawn often weren't completely correct any more at the time of drawing them. I tried some optimizations with actually grepping the pixels from the canvas, setting them in the new positions and only actually redrawing the images on the borders, but that only helped slightly on small screens while making large ones even worse in performance.

Given what I read and heard about how today's graphics chips and pipelines work, I figured that the problem was with the drawImage() calls to draw the tiles to the canvas as well as the getImageData()/putImageData() calls to move the pixels in the optimizations. All those copy image data between JS and graphics memory, which is slow, and doing it a lot doesn't really fit well with how graphics stacks work nowadays. The only way I heard that should improve that a lot would be to switch from 2D canvas to WebGL (or go to the image-based tile maps that many others are using, but that wouldn't be as much fun). I don't remember all sources for that, but just did get another pointer to a Mozilla Hacks post that explains some of it. And as Google also seems to being moving their Maps site to WebGL (from image-based tiles, mind you), it can't be a really wrong move. :)

So, I set out to try and learn the pieces of WebGL I needed for this app. You'd guess that Mozilla, who invented that API together with Khronos, would have ample docs on it, but the WebGL MDN page does only have one tutorial for an animated 3D cube and a list of external links. I meanwhile have filed a bug on a WebGL reference so may improve this further in the future, but I started off first trying with the tutorial that MDN has. I didn't get a lot to work there except some basics, and a lot of the commands in there were not very well explained, but the html5rocks tutorial helped me to get things into a better shape, and some amount of trying around and the MSDN WebGL reference helped to understand more and get things actually right.
One thing that was pretty useful there as well was separating the determination of what tiles should be visible and loading them into textures from the actual drawing of the textures to the canvas. By doing the drawing itself on requestAnimationFrame and this being the only thing done when we pan as long as I have all tiles loaded into textures, I save work and should improve performance.

Image No. 23214 Image No. 23213
2D Canvas (left) and WebGL (right) version of Lantea Maps on the ZTE Open

As you can see from the images, the 2D canvas and WebGL versions of Lantea Maps do not look different - but then, that was not intended, as the map is the map after all. Right now, you can actually test both versions, though: I have not moved the WebGL to production yet, so lantea.kairo.at still uses 2D canvas, while the staging version lantea-dev.kairo.at already is WebGL. You'll notice that panning the map is way more fluid in the new version and the tile distortions that could happen with delayed loading in the old one do not happen. I still wonder though why it sometimes happens that you have to wait very long for tiles to load, esp. after zooming. I still need to figure that out at some point, but things render after waiting, so I found it OK for now. Also, I found the WebGL app to work fine on Firefox desktop (Linux), Firefox for Android, as well as Firefox OS (1.1, 1.2, and 1.5/Nightly).

So, I'm happy I did manage the conversion and learn some WebGL, though there's still a lot to be done. And as always, the code to Lantea Maps is available in my public git as well as GitHub if you want to learn or help. ;-)

http://home.kairo.at/blog/2014-03/lantea_maps_conversion_to_webgl


Myk Melez: simplify asynchronous method declarations with Task.async()

Суббота, 29 Марта 2014 г. 03:58 + в цитатник
In Mozilla code, Task.spawn() is becoming a common way to implement asynchronous operations, especially methods like the greet method in this greeter object:

let greeter = {
message: "Hello, NAME!",
greet: function(name) {
return Task.spawn((function*() {
return yield sendGreeting(this.message.replace(/NAME/, name));
}).bind(this);
})
};

Task.spawn() makes the operation logic simple, but the wrapper function and bind() call required to start the task on method invocation and bind its this reference make the overall implementation complex.

Enter Task.async().

Like Task.spawn(), it creates a task, but it doesn't immediately start it. Instead, it returns an "async function" whose invocation starts the task, and the async function binds the task to its own this reference at invocation time. That makes it simpler to declare the method:

let greeter = {
message: "Hello, NAME!",
greet: Task.async(function*(name) {
return yield sendGreeting(this.message.replace(/NAME/, name));
})
};

With identical semantics:

greeter.greet("Mitchell").then((reply) => { ... }); // behaves the same

(And it avoids a couple anti-patterns in the process.)

Task.async() is inspired by ECMAScript's Async Functions strawman proposal and C#'s Async modifier and was implemented in bug 966182. It isn't limited to use in method declarations, although it's particularly helpful for them.

Use it to implement your next asynchronous operation!

http://mykzilla.blogspot.com/2014/03/simplify-asynchronous-method.html


Zack Weinberg: Secure channels are like immunization

Суббота, 29 Марта 2014 г. 01:44 + в цитатник

For a while now, when people ask me how they can improve their websites’ security, I tell them: Start by turning on HTTPS for everything. Run a separate server on port 80 that issues nothing but permanent redirects to the https:// version of the same URL. There’s lots more you can do, but that’s the easy first step. There are a number of common objections to this plan; today I want to talk about the “it should be the user’s choice” objection, expressed for instance in “Google to Gmail customers: You WILL use HTTPS” by Robert Mitchell. It goes something like this:

Why should I (the operator of the website) assume I know better than each of my users what their security posture should be? Maybe this is a “throwaway” account, of no great importance to them. Maybe they are on a slow link that is intrinsically hard to eavesdrop upon, so the extra network round-trips involved in setting up a secure channel make the site annoyingly slow for no benefit.

This objection ignores the “public health” benefits of secure channels. I’d like to make an analogy to immunization, here. If you get vaccinated against the measles (for instance), that’s good for you because you are much less likely to get the disease yourself. But it is also good for everyone who lives near you, because now you can’t infect them either. If enough people in a region are immune, then nobody will get the disease, even if they aren’t immune; this is called herd immunity. Secure channels have similar benefits to the general public—unconditionally securing a website improves security for everyone on the ‘net, whether or not they use that website! Here’s why.

Most of the criminals who “crack” websites don’t care which accounts they gain access to. This surprises people; if you ask users, they often say things like “well, nobody would bother breaking into my email / bank account / personal computer, because I’m not a celebrity and I don’t have any money!” But the attackers don’t care about that. They break into email accounts so they can send spam; any @gmail.com address is as good as any other. They break into bank accounts so they can commit credit card fraud; any given person’s card is probably only good for US$1000 or so, but multiply that by thousands of cards and you’re talking about real money. They break into PCs so they can run botnets; they don’t care about data stored on the computer, they want the CPU and the network connection. For more on this point, see the paper “Folk Models of Home Computer Security” by Rick Wash. This is the most important reason why security needs to be unconditional. Accounts may be “throwaway” to their users, but they are all the same to the attackers.

Often, criminals who “crack” websites don’t care which websites they gain access to, either. The logic is similar: the legitimate contents of the website are irrelevant. All the attacker wants is to reuse a legitimate site as part of a spamming scheme or to copy the user list, guess the weaker passwords, and try those username+password combinations on “more important” websites. This is why everyone who has a website, even if it’s tiny and attracts hardly any traffic, needs to worry about its security. This is also why making websites secure improves security for everyone, even if they never intentionally visit that website.

Now, how does HTTPS help with all this? The easiest several ways to break into websites involve snooping on unsecured network traffic to steal user credentials. This is possible even with the common-but-insufficient tactic of sending only the login form over HTTPS, because every insecure HTTP request after login includes a piece of data called a “session cookie” that can be stolen and used to impersonate the user for most purposes without having to know the user’s password. (It’s often not possible to change the user’s password without also knowing the old password, but that’s about it. If an attacker just wants to send spam, and doesn’t care about maintaining control of the account, a session cookie is good enough.) It’s also possible even if all logged-in users are served only HTTPS, but you get an unsecured page until you login, because then an attacker can modify the unsecured page and make it steal credentials. Only applying channel security to the entire site for everyone, whoever they are, logged in or not, makes this class of attacks go away.

Unconditional use of HTTPS also enables further security improvements. For instance, a site that is exclusively HTTPS can use the Strict-Transport-Security mechanism to put browsers on notice that they should never communicate with it over an insecure channel: this is important because there are turnkey “SSL stripping” tools that lurk in between a legitimate site and a targeted user and make it look like the site wasn’t HTTPS in the first place. There are subtle differences in the browser’s presentation that a clever human might notice—or you could direct the computer to pay attention, and then it will notice. But this only works, again, if the site is always HTTPS for everyone. Similarly, an always-secured site can mark all of its cookies “secure” and “httponly” which cuts off more ways for attackers to steal user credentials. And if a site runs complicated code on the server, exposing that code to the public Internet two different ways (HTTP and HTTPS) enlarges the server’s attack surface. If the only thing on port 80 is a boilerplate “try again with HTTPS” permanent redirect, this is not an issue. (Bonus points for invalidating session cookies and passwords that just went over the wire in cleartext.)

Finally, I’ll mention that if a site’s users can turn security off, then there’s a per-user toggle switch in the site’s memory banks somewhere, and the site operators can flip that switch off if they want. Or if they have been, shall we say, leaned on. It’s a lot easier for the site operators to stand up to being leaned on if they can say “that’s not a thing our code can do.”

https://www.owlfolio.org/research/security-is-like-immunization/



Поиск сообщений в rss_planet_mozilla
Страницы: 472 ... 34 33 [32] 31 30 ..
.. 1 Календарь