Il simulatore di Firefox OS non supporta attualmente Mac OS X 10.9 (Mavericks). Per i dettagli vedere il bug 930511 . C'è una soluzione che consiste nel far partire Firefox dal file immagine (DMG) senza installarlo realmente.
Firefox OS Simulator é ancora in stato di sviluppo, e non è ancora affidabile e completo come noi vorremmo che fosse.
Se trovate qualsiasi bug, vi preghimo di segnalarlo su GitHub, per qualsiasi domanda scrivete alla mailing list dev-developer-tools oppure a #devtools su irc.mozilla.org.
Leggi Come attivare il verbose logging e ricevere l'ultima preview build nella sezione Getting help.
L'add-on Firefox OS Simulator è uno strumento che vi permette di testare e debaggare la vostra app Firefox OS sul desktop. Il ciclo codice-test é molto più veloce rispetto al simulatore piuttosto che con un dispositivo reale, e ovviamente, non avrete bisogno di un dispositivo reale per utilizzarlo.
Starting with Firefox version 49, Firefox requires Mac OS X 10.9 (Mavericks) or higher. Visit this Apple Support page to find your Mac OS version.
- Functions can be added through add-ons, created by third-party developers, of which there is a wide selection, a feature that has attracted many of Firefox's users. Mozilla Firefox is a cross-platform browser, providing support for various versions of Microsoft Windows, Mac OS X, and Linux. Firefox Features. Improved Tabbed Browsing; Spell Checking.
- Dec 13, 2016 Firefox Developer Edition. Get the Firefox browser built just for developers. Check out the home for web developer resources. Firefox Reality. Explore the web with the Firefox browser for virtual reality. Donate your voice so the future of the web can hear everyone.
- Functions can be added through add-ons, created by third-party developers, of which there is a wide selection, a feature that has attracted many of Firefox's users. Mozilla Firefox is a cross-platform browser, providing support for various versions of Microsoft Windows, Mac OS X, and Linux. Firefox Features. Improved Tabbed Browsing; Spell Checking.
Essentially, the Simulator add-on consists of:
- the Simulator: this includes the Firefox OS desktop client, which is a version of the higher layers of Firefox OS that runs on your desktop. The Simulator also includes some additional emulation features that aren't in the standard Firefox OS desktop builds.
- the Dashboard: a tool hosted by the Firefox browser that enables you to start and stop the Simulator and to install, uninstall, and debug apps running in it. The Dashboard also helps you push apps to a real device, and checks app manifests for common problems.
The screenshot below shows a debugging session using the Simulator.
The Dashboard is on the top-right, running inside a Firefox tab. We've added one app, a packaged app called 'Where am I?'. At the top-left the app is running in the Simulator. We've also connected the debugging tools, which are in the panel at the bottom. You can see that the Console pane displays messages about the app.
This guide covers the following topics:
For a practical walkthrough that shows how to use the Simulator to debug a real web app, see the Simulator Walkthrough page.
The Simulator is packaged and distributed as a Firefox add-on. To install it:
- Using Firefox, go to the Simulator's page on addons.mozilla.org.
- Click 'Add to Firefox'.
- Once the add-on has downloaded you will be prompted to install it: click 'Install Now'.
Because of the size of the add-on, Firefox may freeze for several seconds while installing it, and a dialog titled 'Warning: Unresponsive script' may appear. It it does, click 'Continue' to wait for installation to finish. This should not occur from Firefox 27 onwards.
Once you have installed the Simulator add-on, Firefox will periodically check for newer versions and keep it up to date for you.
Once you have installed the Simulator add-on, Firefox will periodically check for newer versions and keep it up to date for you.
The Dashboard opens automatically when you install the Simulator, and you can reopen it at any time by going to the 'Firefox' menu (or the 'Tools' menu on OS X and Linux), then 'Web Developer', then 'Firefox OS Simulator':
The Dashboard is the tool you use to add your app to the Simulator and run it. Here's what it looks like:
Adding apps
To add a packaged app to the Simulator, open the Dashboard, click 'Add Directory' and select the manifest file for your app.
To add a hosted app, enter a URL in the textbox where it says 'URL for page or manifest.webapp', then click 'Add URL'. If the URL points to a manifest, then that manifest will be used. If it doesn't, the Dashboard will generate a manifest for the URL: so you can add any website as an app just by entering its URL.
When you add an app, the Dashboard will run a series of tests on your manifest file, checking for common problems. See the section on Manifest Validation for details on what tests are run.
To add a hosted app, enter a URL in the textbox where it says 'URL for page or manifest.webapp', then click 'Add URL'. If the URL points to a manifest, then that manifest will be used. If it doesn't, the Dashboard will generate a manifest for the URL: so you can add any website as an app just by entering its URL.
When you add an app, the Dashboard will run a series of tests on your manifest file, checking for common problems. See the section on Manifest Validation for details on what tests are run.
Unless manifest validation reveals that your app has errors, the Dashboard will then automatically run your app in the Simulator.
Managing apps
Once you have added an app, it will appear in the Manager's list of installed apps:
Each entry gives us the following information about the app:
Each entry gives us the following information about the app:
- its name, taken from the manifest
- its type, which will be one of 'Packaged', 'Hosted', or 'Generated'
- a link to its manifest file
- the result of manifest validation
It also gives us four commands:
- 'Refresh': use this to update and reload the app in the Simulator after you have made changes to it. This also makes the Dashboard validate the manifest again. If you make changes to your app they will not be reflected automatically in the installed app: you will need to refresh the app to apply the changes.
- 'Connect': use this to connect developer tools to the selected app. The Dashboard will start the Simulator and app if they aren't already running.
- 'Remove' ('X'): use this to remove the app from the Simulator and the Dashboard. You can undo this action as long as the Dashboard tab is open.
- 'Receipt': use this to test receipt verification for paid apps. After you select a type of receipt to test, the app will be reinstalled with a test receipt of the given type.
Refresh App from the Simulator window: you can update and reload an app directly from the Simulator window using the menubar action or its associated shortcut while the app is running.
When you supply a manifest, the Manager will run some validation tests on it. It reports three categories of problems:
- manifest errors: problems that will prevent your app from installing or running
- manifest warnings: problems that may prevent your app from working properly
- simulator-specific warnings: features your app is using that the Simulator doesn't yet support
It summarises the problems encountered in the entry for the app: clicking on the summary provides more details.
Manifest errors
The Dashboard will report the following conditions as errors, meaning that you won't be able to run your app in the Simulator without fixing them:
- the manifest does not include the mandatory 'name' field
- the manifest is not valid JSON
- the app is a hosted app, but the type field in its manifest is 'privileged' or 'certified', which are only available to packaged apps
- common appCache errors (packaged apps can't use appCache, requests to the manifest URL return an HTTP redirect or an HTTP error status)
Here's the result of trying to add a manifest file with a missing 'name':
Manifest warnings
The Dashboard will report the following manifest issues as warnings:
- missing icons
- the icon is less than 128 pixels: all apps submitted to the Marketplace must have at least one icon that is at least 128 pixels square
- the type field is unrecognized
- the manifest requests a permission that is unrecognized
- the manifest requests a permission which will be denied
- the manifest requests a permission for which access could not be determined
Simulator-specific warnings
Finally, the Manager will emit warnings for apps that use features of Firefox OS not yet fully supported by the Simulator:
- the type field is 'certified', but the Simulator does not yet fully support certified apps
- the manifest requests a permission to use an API that is not yet supported by the Simulator
There are two different ways the Simulator may be started:
- if you add an app or click the 'Refresh' or 'Connect' button next to your app's entry, the Dashboard will automatically run your app in the Simulator
- if you click the button labeled 'Stopped' on the left-hand side of the Dashboard, the Simulator will boot to the Home screen and you'll need to navigate to your app
Either way, once the Simulator is running, the button labeled 'Stopped' turns green and the label changes to 'Running'. To stop the Simulator, click this button again.
The Simulator appears as a separate window, sized so the simulated screen area is 320x480 pixels, with a toolbar at the bottom and a menubar at the top that contains some extra features:
The Simulator appears as a separate window, sized so the simulated screen area is 320x480 pixels, with a toolbar at the bottom and a menubar at the top that contains some extra features:
To simulate touch events you can click the mouse button and drag while holding the button down. So by clicking and dragging right-to-left from the Home Screen, you'll see the built-in apps, as well as any apps you have added:
In the bottom toolbar, from left to right, these are the Home button, the Screen Rotation button, and the Geolocation button.
- the Home button takes you to the Home screen (or to the task list if you keep it pressed for a couple of seconds)
- the Screen Rotation button switches the device between portrait and landscape orientation. This will generate the orientationchange event.
- the Geolocation button triggers a dialog asking you to share your geographic location, either using your current coordinates or supplying custom coordinates: this will be made available to your app via the Geolocation API.
Simulator menubar
In the top menubar, you can access some useful commands to make development more efficient:
- File -> Quit (Ctrl/Cmd - Q): shut down the Simulator
- App -> Refresh (Ctrl/Cmd - R): refresh the running app
The keyboard shortcut for the 'App Refresh' command makes it possible to iteratively develop an app much like a web page:
- make a change to the code (and rerun your build tool if needed, e.g. volo / yeoman / grunt)
- type the keyboard shortcut to refresh the app running in the Simulator
'Refresh App and Clear Data' hidden shortcut: sometimes it's useful to clear data that the Simulator has stored for an app, so the Simulator contains a hidden shortcut, Shift - Ctrl/Cmd - R, that will refresh the running app while clearing the following data:
- localStorage / sessionStorage
- cookies
- indexedDB
- appCache
You can attach developer tools to the Simulator, to help debug your app. At the moment you can only attach the JavaScript Debugger, the Web Console, the Style Editor, the Profiler and the Network Monitor, but we're working on adding support for more developer tools.
Some of these tools are only available in Beta, Aurora, or Nightly builds of Firefox.
To attach developer tools to the Simulator, click the 'Connect' button for an app:
The Dashboard will then open a developer toolbox pane at the bottom of the Dashboard tab and connect it to the app:
Web Console
The app can log to this console using the global console object, and it displays various other messages generated by the app: network requests, CSS and JS warnings/errors, and security errors. (Learn more about the Web Console.)
Debugger
Using the Debugger, you can step through JavaScript code that is running in the connected app, manage breakpoints, and watch expressions to track down errors and problems faster. (Learn more about the Debugger.)
Style Editor
You can view and edit CSS files referenced in the app using the connected Style Editor. Your changes will be applied to the app in real time, without needing to refresh the app. (Learn more about the Style Editor.)
Profiler
Using the Profiler tool connected to the app, you can to find out where your JavaScript code is spending too much time. The Profiler periodically samples the current JavaScript call stack and compiles statistics about the samples. (Learn more about the Profiler.)
Network Monitor
Thanks to the new Network Monitor, you can analyze the status, headers, content and timing of all the network requests initiated by the app through a friendly interface. (Learn more about the Network Monitor.)
Receipts
If you are developing a paid app, you should test your receipt validation code (e.g. the code that verifies that a user has already purchased the app or has been issued a refund and then informs the user and locks or unlocks app features accordingly) on a valid (cryptographically signed) receipt.
Thanks to the 'Receipts' menu in each app entry on the Simulator Dashboard, you can install an app with a 'Valid', 'Invalid', or 'Refunded' test receipt. Simply select the type of receipt you wish to test, and the Dashboard will retrieve a test receipt of that type from the Marketplace receipt service and reinstall the app with that receipt in the Simulator:
If you have a Firefox OS device you can connect it to the Simulator, and can then push apps from the Dashboard to the device.
Connecting a device
To connect the device, follow the instructions in the guide to connecting a Firefox OS device to the desktop. Note that you don't have to install ADB, as the Simulator add-on includes it already.
Pushing apps to the device
Once you've set up the device and desktop, and connected the device to your desktop via USB, you'll see the note 'Device connected' appear on the left of the Dashboard, and a new command appear in the entry for each app labeled 'Push':
Click 'Push', and the app will be installed on the Firefox OS device.
Manual Steps:
- Once you’ve pushed the app to the device, you need to manually close and restart it again, to get updated content
- If you update anything in the manifest (e.g. app name, orientation, type, permissions), you need to reboot the operating system for those changes to have effect
Firefox OS Device Connection Confirmation
On every device reboot, the first 'Push' request needs to be confirmed on the device:
Troubleshooting on Linux
If you are unable to connect your device after creating udev rules, please see this bug.
Note that the Firefox OS Simulator isn't a perfect simulation.
Hardware limitations
Apart from screen size, the Simulator does not simulate the hardware limitations of a Firefox OS device such as available memory or CPU speed.
Pages is a powerful word processor that lets you create stunning documents, and comes included with most Apple devices. And with real-time collaboration, your team can work together from anywhere, whether they’re on Mac, iPad, iPhone, or using a PC. Old version (macOS Sierra) for Pages, Keynote and Numbers, iWork (3 answers) Closed 5 months ago. Is there any way now of installing a version of Pages or iWork on a Mac running High Sierra 10.13.6?
Get started with a template. All documents begin with a template—a model you can use as a.
Audio/video codecs
The following codecs depend on hardware-accelerated decoding and are therefore not yet supported:
- MP3
- AAC
- H.264 (MP4)
- WebM
This means it isn't possible to use the Simulator to test video playback in apps and on websites like Youtube that rely on these codecs.
Certain APIs that work on the device won't work on the Simulator, generally because the supporting hardware is not available on the desktop. We've implemented simulations for some APIs such as geolocation, and expect to add more in future releases. However, at the moment the following APIs are not supported. Using them might throw errors or just return incorrect results:
Getting help
The Firefox OS Simulator is still at an early stage of development, and isn't yet as reliable and complete as we'd like it to be.
If you find any bugs, please file them on GitHub. If you have a question, try asking us on the dev-developer-tools mailing list or on #devtools on irc.mozilla.org.
How to enable verbose logging
Use about:config to create the preference [email protected], set it to the integer value 0, and disable/reenable the addon. Additional messages about the Simulator's operation will appear in the Error Console (or Browser Console in newer versions of Firefox).
How to get the latest preview build
As the section on installing the Simulator explains, you can get the latest release of the Simulator add-on from addons.mozilla.org.
Sometimes you might want to try out the very latest features before they're officially released. If so, you can download preview builds from the following URLs:
- Windows: https://ftp.mozilla.org/pub/mozilla.org/labs/r2d2b2g/r2d2b2g-windows.xpi
- Mac: https://ftp.mozilla.org/pub/mozilla.org/labs/r2d2b2g/r2d2b2g-mac.xpi
- Linux: https://ftp.mozilla.org/pub/mozilla.org/labs/r2d2b2g/r2d2b2g-linux.xpi
Be aware that preview builds are less stable and thoroughly tested than release builds.
A new stable Firefox version rolls out today, providing new features for web developers. A new regex engine, updates to the ECMAScript Intl API, new CSS selectors, enhanced support for WebAssembly, and many improvements to the Firefox Developer Tools await you.
This blog post provides merely a set of highlights; for all the details, check out the following:
Firefox Os X Mavericks
Developer tool improvements
Source-mapped variables, now also in Logpoints
With our improvements over the recentreleases, debugging your projects with source maps will feel more reliable and faster than ever. But there are more capabilities that we can squeeze out of source maps. Did you know that Firefox’s Debugger also maps variables back to their original name? This especially helps babel-compiled code with changed variable names and added helper variables. To use this feature, pause execution and enable the “Map” option in the Debugger’s “Scopes” pane.
As a hybrid between the worlds of the DevTools Console and Debugger, Logpoints make it easy to add console logs to live code–or any code, once you’ve added them to your toolbelt. New in Firefox 75, original variable names in Logpoints are mapped to the compiled scopes, so references will always work as expected.
To make mapping scopes work, ensure that your source maps are correctly generated and include enough data. In Webpack this means avoid the “cheap” and “nosources” options for the “devtools” configuration.
Promises and frameworks error logs get more detailed
Uncaught promise errors are critical in modern asynchronous JavaScript, and even more so in frameworks like Angular. In Firefox 78, you can expect to see all details for thrown errors show up properly, including their name and stack:
The implementation of this functionality was only possible through the close collaboration between the SpiderMonkey engineering team and a contributor, Tom Schuster. We are investigating how to improve error logging further, so please let us know if you have suggestions.
Monitoring failed request issues
Failed or blocked network requests come in many varieties. Resources may be blocked by tracking protection, add-ons, CSP/CORS security configurations, or flaky connectivity, for example. A resilient web tries to gracefully recover from as many of these cases as possible automatically, and an improved Network monitor can help you with debugging them.
Firefox 78 provides detailed reports in the Network panel for requests blocked by Enhanced Tracking Protection, add-ons, and CORS.
Quality improvements
Faster DOM navigation in Inspector
Inspector now opens and navigates a lot faster than before, particularly on sites with many CSS custom properties. Some modern CSS frameworks were especially affected by slowdowns in the past. If you see other cases where Inspector isn’t as fast as expected, please report a performance issue. We really appreciate your help in reporting performance issues so that we can keep improving.
Firefox Mavericks Download
Remotely navigate your Firefox for Android for debugging
Remote debugging’s new navigation elements make it more seamless to test your content for mobile with the forthcoming new edition of Firefox for Android. After hooking up the phone via USB and connecting remote debugging to a tab, you can navigate and refresh pages from your desktop.
Early-access DevTools features in Developer Edition
Developer Edition is Firefox’s pre-release channel. You get early access to tooling and platform features. Its settings enable more functionality for developers by default. We like to bring new features quickly to Developer Edition to gather your feedback, including the following highlights.
Async stacks in Console & Debugger
We’ve built new functionality to better support async stacks in the Console and Debugger, extending stacks with information about the events, timers, and promises that lead the execution of a specific line of code. We have been improving asynchronous stacks for a while now, based on early feedback from developers using Firefox DevEdition. In Firefox 79, we expect to enable this feature across all release channels.
Console shows failed requests
Network requests with 4xx/5xx status codes now log as errors in the Console by default. To make them easier to understand, each entry can be expanded to view embedded network details.
Web platform updates
New CSS selectors :is and :where
Version 78 sees Firefox add support for the
:is()
and :where()
pseudo-classes, which allow you to present a list of selectors to the browser. The browser will then apply the rule to any element that matches one of those selectors. This can be useful for reducing repetition when writing a selector that matches a large number of different elements. For example:Can be cut down to
Note that
:is()
is not particularly a new thing—it has been supported for a while in various browsers. Sometimes this has been with a prefix and the name any (e.g. :-moz-any
). Other browsers have used the name :matches()
. :is()
is the final standard name that the CSSWG agreed on.:is()
and :where()
basically do the same thing, but what is the difference? Well, :is()
counts towards the specificity of the overall selector, taking the specificity of its most specific argument. However, :where()
has a specificity value of 0 — it was introduced to provide a solution to the problems found with :is() affecting specificity.What if you want to add styling to a bunch of elements with
:is()
, but then later on want to override those styles using a simple selector? You won’t be able to because class selectors have a higher specificity. This is a situation in which :where()
can help. See our :where()
example for a good illustration.Styling forms with CSS :read-only and :read-write
At this point, HTML forms have a large number of pseudo-classes available to style inputs based on different states related to their validity — whether they are required or optional, whether their data is valid or invalid, and so on. You can find a lot more information in our UI pseudo-classes article.
In this version, Firefox has enabled support for the non-prefixed versions of
:read-only
and :read-write
. As their name suggests, they style elements based on whether their content is editable or not:(Note: Firefox has supported these pseudo-classes with a
-moz-
prefix for a long time now.)You should be aware that these pseudo-classes are not limited to form elements. You can use them to style any element based on whether it is editable or not, for example a
<p>
element with or without contenteditable
set:New regex engine
Thanks to the RegExp engine in SpiderMonkey, Firefox now supports all new regular expression features introduced in ECMAScript 2018, including lookbehinds (positive and negative), the
dotAll
flag, Unicode property escapes, and named capture groups.Lookbehind and negative lookbehind assertions make it possible to find patterns that are (or are not) preceded by another pattern. In this example, a negative lookbehind is used to match a number only if it is not preceded by a minus sign. A positive lookbehind would match values not preceded by a minus sign.
Nintendo twitter background. Unicode property escapes are written in the form
p{…}
and {…}
. They can be used to match any decimal number in Unicode, for example. Here’s a unicode-aware version of d
that matches any Unicode decimal number instead of just the ASCII numbers 0-9.Named capture groups allow you to refer to a certain portion of a string that a regular expression matches, as in:
ECMAScript Intl API updates
Rules for formatting lists vary from language to language. Implementing your own proper list formatting is neither straightforward nor fast. Thanks to the new
Intl.ListFormat
API, the JavaScript engine can now format lists for you:Enhanced language-sensitive number formatting as defined in the Unified NumberFormat proposal is now fully implemented in Firefox. See the
NumberFormat
constructor documentation for the new options available.ParentNode.replaceChildren
Firefox now supports
ParentNode.replaceChildren()
, which replaces the existing children of a Node
with a specified new set of children. This is typically represented as a NodeList
, such as that returned by Document.querySelectorAll()
.This method provides an elegant way to empty a node of children, if you call
replaceChildren()
with no arguments. It also is a nice way to shift nodes from one element to another. For example, in this case, we use two buttons to transfer selected options from one <select>
box to another:You can see the full example at
ParentNode.replaceChildren()
.WebAssembly multi-value support
Multi-value is a proposed extension to core WebAssembly that enables functions to return many values, and enables instruction sequences to consume and produce multiple stack values. The article Multi-Value All The Wasm! explains what this means in greater detail.
WebAssembly large integer support
WebAssembly now supports import and export of 64-bit integer function parameters (i64) using
BigInt
from JavaScript.WebExtensions
We’d like to highlight three changes to the WebExtensions API for this release:
Firefox Mavericks Update
- When using
proxy.onRequest
, a filter that limits based on tab id or window id is now correctly applied. This is useful for add-ons that want to provide proxy functionality in just one window. - Clicking within the context menu from the “all tabs” dropdown now passes the appropriate tab object. In the past, the active tab was erroneously passed.
- When using downloads.download with the
saveAs
option, the recently used directory is now remembered. While this data is not available to developers, it is very convenient to users.
TLS 1.0 and 1.1 removal
Support for the Transport Layer Security (TLS) protocol’s version 1.0 and 1.1, has been dropped from all browsers as of Firefox 78 and Chrome 84. Read TLS 1.0 and 1.1 Removal Update for the previous announcement and what actions to take if you are affected.
Firefox 78 is an ESR release
Firefox follows a rapid release schedule: every four weeks we release a new version of Firefox.
In addition to that, we provide a new Extended Support Release (ESR) for enterprise users once a year. Firefox 78 ESR includes all of the enhancements since the last ESR (Firefox 68), along with many new features to make your enterprise deployment easier.
A noteworthy feature: In previous ESR versions, Service workers (and the Push API) were disabled. Firefox 78 is the first ESR release to support them. If your enterprise web application uses AppCache to provide offline support, you should migrate to these new APIs as soon as possible as AppCache will not be available in the next major ESR in 2021.
Firefox 78 is the last supported Firefox version for macOS users of OS X 10.9 Mavericks, OS X 10.10 Yosemite and OS X 10.11 El Capitan. These users will be moved to the Firefox ESR channel by an application update. For more details, see the Mozilla support page.
See also the release notes for Firefox for Enterprise 78.
About Florian Scholz
Florian is the Content Lead for MDN Web Docs, writes about Web platform technologies and researches browser compatibility data. He lives in Bremen, Germany.
Firefox Mavericks
About Harald Kirschner (digitarald)
Harald 'digitarald' Kirschner is a Product Manager for Firefox's Developer Experience and Tools – striving to empower creators to code, design & maintain a web that is open and accessible to all. During his 8 years at Mozilla, he has grown his skill set amidst performance, web APIs, mobile, installable web apps, data visualization, and developer outreach projects.