diff --git a/apps/b2g/__init__.py b/apps/b2g/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/apps/b2g/models.py b/apps/b2g/models.py new file mode 100644 index 0000000000..71a8362390 --- /dev/null +++ b/apps/b2g/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/apps/b2g/templates/b2g/about.html b/apps/b2g/templates/b2g/about.html new file mode 100644 index 0000000000..2ad4bc94c9 --- /dev/null +++ b/apps/b2g/templates/b2g/about.html @@ -0,0 +1,64 @@ +{% extends "base.html" %} + +{% block page_title %}About the Boot to Gecko Project{% endblock %} +{% block body_id %}b2g-about{% endblock %} + +{% block site_header_nav %} + +{% endblock %} + +{% block extrahead %} + {{ css('b2g') }} +{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + + +{% block content %} + +
+
+ +
+ +

About Boot to Gecko

+

Boot to Gecko (B2G) is our open source, Web-based operating system for mobile devices. It is the framework for the Open Web device platform introduced at Mobile World Congress in February 2012.

+ +

Technology

+

The B2G architecture eliminates the need for apps to be built on platform-specific native APIs. Using HTML5, developers everywhere can write directly to the Web; they can create amazing user experiences and apps unencumbered by the rules and restrictions of closely controlled platforms.

+ +

Open Accessible Standards

+

As with all Mozilla projects, the source code is open and accessible. We are proposing Mozilla b2g as a new standard for identity systems and are working with existing identity providers to implement the protocol as their primary authentication tool.

+ +

Open Accessible Standards

+

As with all Mozilla projects, B2G is based entirely on open standards and the source code is open and accessible to all. Where open standards are missing (including telephony, SMS, camera, bluetooth, USB and NFC), we're working with standards bodies and other vendors to create them.

+ +
+ + + +
+
+ +{% endblock %} diff --git a/apps/b2g/templates/b2g/b2g.html b/apps/b2g/templates/b2g/b2g.html new file mode 100644 index 0000000000..617f72df63 --- /dev/null +++ b/apps/b2g/templates/b2g/b2g.html @@ -0,0 +1,71 @@ +{% extends "base.html" %} + +{% block page_title %}Boot to Gecko{% endblock %} +{% block body_id %}b2g{% endblock %} + +{% block site_header_nav %} + +{% endblock %} + +{% block extrahead %} + {{ css('b2g') }} +{% endblock %} + +{% block content %} + +

Introducing the Boot to Gecko Project

+ +
+ + +

Welcome to a new, open and powerful mobile world!

+

We're making innovation more accessible and driving thedevelopment of new Web standards to bring the power of the Open Web platform to mobile devices.

+ +
+ +
+
+ +
+ +
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt.
+
+ +

Opportunities for Developers

+

Developers no longer need to learn and develop against platform-specific native APIs. Using HTML5 and B2G's standards-based APIs, developers everywhere can create amazing experiences and apps that are accessible from any Web device.

+ +

Customization for OEMs & Operators

+

OEMs and operators can provide content and services across their entire device portfolio, regardless of OS. They can customize user experiences, manage app distribution and retain customer attention, loyalty and billing relationships.

+ +

Consumer Freedom

+

Consumers who use devices with an open mobile platform can easily access and download their own content regardless of which operating system it uses.

+ +
+ +
+ +

New Web Standards

+

Boot to Gecko is an implementation of new Web standards that brings the power of the open Web to mobile devices, unencumbered by the rules and restrictions of existing proprietary platforms.

+ +

Freedom From Proprietary Mobile Platforms

+

Today's proprietary mobile platforms are closely tied to specific devices and their development is tightly controlled by a single vendors.

+

Carriers and developers write apps and services for one platform and then rewrite them for others. Users who want to buy phones, e-readers and game consoles from different manufacturers often need to re-purchase apps for each device.

+ +
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
+
+ +
+ +
+ +{% endblock %} diff --git a/apps/b2g/templates/b2g/faq.html b/apps/b2g/templates/b2g/faq.html new file mode 100644 index 0000000000..08000403c2 --- /dev/null +++ b/apps/b2g/templates/b2g/faq.html @@ -0,0 +1,138 @@ +{% extends "base.html" %} + +{% block page_title %}Boot to Gecko FAQ{% endblock %} +{% block body_id %}b2g-developer-faq{% endblock %} + +{% block site_header_nav %} + +{% endblock %} + +{% block extrahead %} + {{ css('b2g') }} +{% endblock %} + +{% block breadcrumbs %} + +{% endblock %} + + +{% block content %} + +
+
+ +
+ +

Boot to Gecko FAQ

+ +
+
What is Boot to Gecko?
+
+

Boot to Gecko (B2G) is an implementation of new web standards that bring the power of the open web to mobile devices, unencumbered by the rules and restrictions of existing proprietary platforms.

+
+ +
What is the overall aim of the project? What problems are you solving?
+
+

We believe that the next frontier for Web applications is full device integration, so that web developers have the same capabilities as those building for OS-specific stacks. Boot to Gecko is intended to identify those missing device capabilities and other application needs, and design standardized solutions for app developers to use.

+
+ +
What is the size of the team working on this project?
+
+

More than 20 engineers were working full-time on B2G-specific parts of the system (telephony, messaging, system-level phone integration). In addition to Mozilla contributors, engineers from carrier partners are working jointly with us on the project as well.

+

We are leaning heavily on the existing Gecko and Firefox mobile work and the team of hundreds of engineers building those products. 95% of the code in B2G is shared with Firefox.

+
+ +
What does B2G mean for your relationships with Apple, Google and Microsoft?
+
+

We don't expect that it will affect our relationships with other organizations.

+
+ +
Does this replace work that's already being done on Web APIs for desktop and mobile?
+
+

We are already pushing hard on new Web APIs and will continue to implement and standardize new APIs for Web content while the B2G project ramps up.

+
+ +
How is this different than the Webian Shell project?
+
+

The Webian Shell project is an impressive project even in its early stages. Where Webian is focused on a Web-centric desktop experience, we're focused on extending the Web to include more of what is traditionally the domain of OS-specific code. We think we can work together on a bunch of things, and we're looking forward to it.

+
+ +
How is this different from Chrome OS?
+
+

We’re aiming at mobile/tablet devices rather than a notebook form factor. This is an early-stage project to expose all device capabilities such that infrastructure like phone dialers can be built with Web APIs, and not only “high level” apps like word processors and presentation software.

+

We will of course be happy to work with the Chrome OS team on standards activities, and indeed to share source code where appropriate.

+
+ +
Do you see B2G as co-existing with other mobile OSes, or competing with them?
+
+

Ideally, the technology pioneered or refined in B2G will make its way into all mobile browsers, so that enhanced open Web applications can be great regardless of operating system or device. We look forward to working with other OS and browser developers on standards activities and even implementations.

+
+ +
Are OEMs interested in B2G?
+
+

Currently B2G is still a project without a firm product schedule. We are briefing silicon vendors (ODMs), OEMs and carriers on B2G, and we will announce a product schedule and launch partners once we reach that stage.

+
+ +
Whose hardware will you support?
+
+

We are currently using off-the shelf developer hardware (Samsung Galaxy S 2), because the device is commercially available to Mozilla employees and community members. We will port B2G to a reference platform once we have identified the ODM/OEM that will ship the first B2G device. That reference platform will likely be very different than the Samsung Galaxy S 2.

+
+ +
Is B2G just introducing yet another platform for devs to code for?
+
+

No, B2G is definitely not designed to be another platform. It's a project to extend what developers can do with the Web, especially in the context of mobile devices, and to do so in a way that leads to interoperable standards.

+

Just as with HTML5, ES5, CSS3 and other Web technology it will reach different browsers and operating systems at different times, but the pace of Web platform development gives us confidence that good Web technology can reach a lot of people pretty quickly.

+

We don't want B2G to lead to applications that only run atop B2G, or only run in Firefox. That's an important difference between what we're doing and proprietary mobile stacks today: we don't want a competitive advantage for Mozilla, we want a competitive advantage for the Web.

+
+ +
How do you think you'll get the mobile manufacturers and carriers on board with this?
+
+

B2G is designed to build on the success of the Web, and given the early stage of the project it could reach users in many forms. We're working with ODMs, OEMs, carriers and others who share our vision of even greater success for Web-based applications.

+
+ +
What does B2G offer mobile users that HTML5 doesn't?
+
+

B2G offers mobile users all the power of HTML5, extended with device capabilities like Bluetooth and SMS, a richer capability model for interaction with the filesystem, and a way to tie native HTML5 apps together. +The intent is very much that B2G lead to improved capabilities for the Web platform, not that it replace HTML5 or related tech in any way. Many of these new capabilities will also make sense in desktop browsers, and we look forward to seeing them there as well. +

+
+ +
Will this mean a Firefox Phone?
+
+

We don’t have any plans to build or distribute a custom device.

+
+ +
I am a web developer. How do I deploymy web application to the B2G platform?
+
+

You don't. By default, your web app will be accessible from the phone just like any other website. If you want to make it installable to the homescreen, you may consider adding a open web app manifest to your app. However, the install API is not complete yet on the B2G platform as of Jan 2012.

+
+ +
+ +
+ + + +
+
+ +{% endblock %} diff --git a/apps/b2g/tests.py b/apps/b2g/tests.py new file mode 100644 index 0000000000..501deb776c --- /dev/null +++ b/apps/b2g/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/apps/b2g/urls.py b/apps/b2g/urls.py new file mode 100644 index 0000000000..cd61329e35 --- /dev/null +++ b/apps/b2g/urls.py @@ -0,0 +1,8 @@ +from django.conf.urls.defaults import * +from views import b2g, about, developerfaq + +urlpatterns = patterns('', + (r'^b2g/faq/', developerfaq), + (r'^b2g/about/', about), + (r'^b2g/', b2g), +) diff --git a/apps/b2g/views.py b/apps/b2g/views.py new file mode 100644 index 0000000000..d695a21909 --- /dev/null +++ b/apps/b2g/views.py @@ -0,0 +1,12 @@ +import l10n_utils +from django.conf import settings + +def b2g(request): + return l10n_utils.render(request, "b2g/b2g.html") + +def about(request): + return l10n_utils.render(request, "b2g/about.html") + +def developerfaq(request): + return l10n_utils.render(request, "b2g/faq.html") + diff --git a/apps/persona/templates/persona/about.html b/apps/persona/templates/persona/about.html index 2fd8d0030f..85887df4e9 100644 --- a/apps/persona/templates/persona/about.html +++ b/apps/persona/templates/persona/about.html @@ -32,25 +32,32 @@ {% block content %} -
+

A Better Way to Manage Identity on the Web

-

Mozilla Persona is the first in an eventual suite of Mozilla Persona tools designed to help users and developers manage identity information on the Web.

-

Technology

-

Mozilla Persona is built on our original BrowserID protocol, a decentralized authentication technology based on verified email addresses. For more details on the technical aspects, read this blog.

+Mozilla Persona is the first in an eventual suite of Mozilla Persona tools designed to help users and developers manage identity information on the Web. -

Open Accessible Standards

-

As with all Mozilla projects, the source code is open and accessible. We are proposing Mozilla Persona as a new standard for identity systems and are working with existing identity providers to implement the protocol as their primary authentication tool.

+Technology -

Developers

-

Build user trust and confidence, providing an alternate login that protects user privacy and does not exploit profit from stored data.

-

There’s no more need to ask users to think of passwords, to implement email verification or to manage their own sign-in program. In a single step, you can turn visitors into trusted users and get an email address for them.

-

Check out our developer site to get the code and get started!

-

Show your users that you respect their privacy and that you will give them a choice about sharing their data.

+Mozilla Persona is built on our original BrowserID protocol, a decentralized authentication technology based on verified email addresses. For more details on the technical aspects, read this blog. + + + +Open Accessible Standards +As with all Mozilla projects, the source code is open and accessible. We are proposing Mozilla Persona as a new standard for identity systems and are working with existing identity providers to implement the protocol as their primary authentication tool. + +Developers +Build user trust and confidence, providing an alternate login that protects user privacy and does not exploit profit from stored data. + +There's no more need to ask users to think of passwords, to implement email verification or to manage their own sign-in program. In a single step, you can turn visitors into trusted users and get an email address for them. + +Check out our developer site to get the code and get started! + +Show your users that you respect their privacy and that you will give them a choice about sharing their data.
@@ -68,7 +75,8 @@
+
-
-{% endblock %} + +{% endblock %} \ No newline at end of file diff --git a/apps/persona/templates/persona/developer-faq.html b/apps/persona/templates/persona/developer-faq.html index 160a13de13..28c97a3aa9 100644 --- a/apps/persona/templates/persona/developer-faq.html +++ b/apps/persona/templates/persona/developer-faq.html @@ -32,7 +32,7 @@ {% block content %} -
+
@@ -84,7 +84,8 @@
+
+ - {% endblock %} diff --git a/media/css/b2g.less b/media/css/b2g.less new file mode 100644 index 0000000000..647be5ef00 --- /dev/null +++ b/media/css/b2g.less @@ -0,0 +1,41 @@ +@import "sandstone/variables.less"; +@import "sandstone/mixins.less"; + +h1#main-feature { + text-align: center; +} + +#primary { + padding-top: @baseLine * 2; + padding-bottom: @baseLine * 2; + @shadow: 0 1px 1px rgba(0,0,0,0.1), 0 0 0 1px #fff; + .box-shadow(@shadow); + background: #fff; + #gradient > .radial(center, 45px, ellipse, farthest-corner, #f5f1e8 0%, #ffffff 100%); + .clearfix; + height: 13em; + margin-bottom: @baseLine * 3; + + img { + float: right; + margin-top: -@baseLine * 3; + margin-left: @baseLine; + max-width: 50%; + } + + p { + margin-right: 40%; + } +} + +#secondary { + padding-bottom: @baseLine * 2; + + figcaption { + font-style: italic; + color: @textColorTertiary; + margin: auto @gridGutterWidth @baseLine * 2 auto; + } + +} + diff --git a/media/css/persona.less b/media/css/persona.less index 454ce2bad4..c6f94055d4 100644 --- a/media/css/persona.less +++ b/media/css/persona.less @@ -26,7 +26,7 @@ hgroup { #signin-example figcaption { text-align: center; font-style: italic; - color: @textColorSecondary; + color: @textColorTertiary; margin: auto @gridGutterWidth @baseLine * 2 @gridGutterWidth; } diff --git a/media/css/sandstone/sandstone.less b/media/css/sandstone/sandstone.less index b4b45adfdd..e837c34af5 100644 --- a/media/css/sandstone/sandstone.less +++ b/media/css/sandstone/sandstone.less @@ -36,6 +36,7 @@ a { h1, h2, h3, h4, h5, h6, .huge, .large { .open-sans; + display: block; font-weight: 300; margin: 0 0 12px 0; line-height: 100%; diff --git a/media/css/sandstone/variables.less b/media/css/sandstone/variables.less index 60da9231db..bc862eb8ff 100644 --- a/media/css/sandstone/variables.less +++ b/media/css/sandstone/variables.less @@ -1,5 +1,6 @@ @textColorPrimary: #333; @textColorSecondary: #484848; +@textColorTertiary: #666; @textColorLight: #bbb; @linkRed: rgb(175,50,50); diff --git a/media/img/b2g/example1.png b/media/img/b2g/example1.png new file mode 100644 index 0000000000..71922955b8 Binary files /dev/null and b/media/img/b2g/example1.png differ diff --git a/media/img/b2g/example2.png b/media/img/b2g/example2.png new file mode 100644 index 0000000000..58b446fc30 Binary files /dev/null and b/media/img/b2g/example2.png differ diff --git a/media/img/b2g/hero.png b/media/img/b2g/hero.png new file mode 100644 index 0000000000..e7bb69386c Binary files /dev/null and b/media/img/b2g/hero.png differ diff --git a/settings/base.py b/settings/base.py index dec3039e7f..9a41e78472 100644 --- a/settings/base.py +++ b/settings/base.py @@ -44,6 +44,9 @@ def JINJA_CONFIG(): # and js files that can be bundled together by the minify app. MINIFY_BUNDLES = { 'css': { + 'b2g': ( + 'css/b2g.less', + ), 'common': ( 'css/sandstone/sandstone.less', ), @@ -123,6 +126,7 @@ MIDDLEWARE_CLASSES = ( INSTALLED_APPS = list(INSTALLED_APPS) + [ # Local apps 'l10n_example', # DELETEME + 'b2g', 'mozorg', 'persona', 'research', diff --git a/urls.py b/urls.py index 36c7801836..e74dd02ff9 100644 --- a/urls.py +++ b/urls.py @@ -8,6 +8,7 @@ from django.conf.urls.defaults import * urlpatterns = patterns('', # Main pages + (r'', include('b2g.urls')), (r'', include('mozorg.urls')), (r'', include('persona.urls')), (r'', include('research.urls')),