/
index.md
236 lines (161 loc) · 7.92 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
---
title: Incompatibilidades con Chrome
slug: Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities
---
WebExtensions está diseñado para ser compatible con las extensiones de Chrome y Opera: en la medida de lo posible, las extensiones escritas para esos navegadores deberían ejecutarse en Firefox con cambios mínimos.
Sin embargo, Firefox cuenta actualmente con soporte para sólo un conjunto limitado de funciones y API compatibles con Chrome y Opera. Estamos trabajando en agregar más soporte, pero muchas características aún no son compatibles, y es posible que nunca admitamos algunas.
En este artículo se enumeran todas las características y API que se admiten total o parcialmente en Firefox. Cuando una característica está parcialmente soportada, hemos indicado cuáles son las lagunas.
Es seguro asumir que las funciones y las API que no se enumeran aquí en absoluto aún no son compatibles.
## Funciones de manifest.json
### Claves completamente compatibles
- [`applications`](/es/Add-ons/WebExtensions/manifest.json/applications)
- [`browser_action`](/es/Add-ons/WebExtensions/manifest.json/browser_action)
- [`page_action`](/es/Add-ons/WebExtensions/manifest.json/page_action)
- [`default_locale`](/es/Add-ons/WebExtensions/manifest.json/default_locale)
- [`description`](/es/Add-ons/WebExtensions/manifest.json/description)
- [`manifest_version`](/es/Add-ons/WebExtensions/manifest.json/manifest_version)
- [`name`](/es/Add-ons/WebExtensions/manifest.json/name)
- [`version`](/es/Add-ons/WebExtensions/manifest.json/version)
- [`web_accessible_resources`](/es/Add-ons/WebExtensions/manifest.json/web_accessible_resources)
### Claves parcialmente admitidas
#### Datos de fondo
Firefox no admite la propiedad `"persistent"`. Los scripts de fondo permanecen cargados todo el tiempo.
#### Scripts de contenido
Firefox no admite actualmente:
- `include_globs`
- `exclude_globs`
- `match_about_blank`
#### Permisos
Firefox aún no admite los siguientes permisos:
- `activeTab`
- `background`
- `clipboardRead`
- `clipboardWrite`
- `geolocation`
- `nativeMessaging`
- `unlimitedStorage`
Obviamente, también no admite permisos para las [APIs que no son compatibles](/es/Add-ons/WebExtensions/API#Chrome_incompatibilities).
## APIs JavaScript
### APIs completamente soportadas
- [alarmas](/es/docs/Mozilla/Add-ons/WebExtensions/API/alarms)
- [Menú contextual](/es/docs/Mozilla/Add-ons/WebExtensions/API/contextMenus)
- [pageAction](/es/docs/Mozilla/Add-ons/WebExtensions/API/pageAction)
- Las URL relativas pasadas a `setPopup()`se resuelven en relación con el documento de la persona que llama, en lugar de con la raíz de la extensión .
### APIs parcialmente soportadas
#### marcadores
- Firefox no admite:
- `getRecent()`
- `search()`
- `removeTree()` (`remove` también elimina carpetas no vacías)
- `onCreated`
- `onRemoved`
- `onChanged`
- `onMoved`
- `onChildrenReordered`
- `onImportBegan`
- `onImportEnded`
- BookmarkTreeNodeUnmodifiable
- Firefox tiene marcadores especiales como "Marcado recientemente" o "Visitado recientemente"
#### browserAction
- Firefox no admite:
- `enable()` o `disable()`.
- Las URL relativas pasadas a `setPopup()`se resuelven en relación con el documento de la persona que llama, en lugar de con la raíz de la extensión .
#### cookies
- eventos onChanged pueden ser subtely diferentes
- Creación de cookies de sesión `set` podría fallar
- `getAllCookieStores` siempre devuelve un almacén predeterminado y sin pestañas
- el acceso a las cookies desde pestañas privadas es imposible
#### extension
- Firefox sólo soporta :
- `getBackgroundPage()`
- `getURL()`
- `inIncognitoContext` en los scripts de contenido
#### i18n
- En la API JavaScript API, Firefox solo soporta `getMessage()`.
- Firefox solo soporta los mensajes predefinidos `@@extension_id` y `@@ui_locale`.
- Firefox no localiza archivos CSS.
- Las cadenas para ser localizadas deben consistir enteramente de `__MSG_foo__` con el fin de realizar una sustitución al crearlas.
#### notifications
- Las únicas opciones de notificación admitidas son :
- `iconUrl`
- `title`
- `message`.
- Los únicos métodos soportados son :
- `create()`
- `clear()`
- `getAll()`.
- El único evento soportado es `onClosed`.
- Firefox no proporciona `byUser` datos.
#### Tiempo de ejecución
- Firefox sólo admite:
- `onStartup()`
- `getManifest()`
- `getURL()`
- `id`
- `sendMessage()`
- `onMessage`
- `onConnect`
#### Almacenamiento
- El único área de almacenamiento que soporta Firefox es `local`.
- Firefox no soporta `getBytesInUse()` o `clear))`.
#### tabs
- Firefox does not support:
- `getCurrent()`
- `sendRequest()`
- `getSelected()`
- `duplicate()`
- `highlight()`
- `move()`
- `detectLanguage()`
- `captureVisibleTab()`
- `getZoom()`
- `setZoom()`
- `getZoomSettings()`
- `setZoomSettings()`
Firefox treats `highlighted` and `active` as the same since Firefox cannot select multiple tabs.
Firefox doesn't yet support the `callback` argument to `executeScript()`.
#### webNavigation
- Firefox does not support:
- `getFrame()`
- `getAllFrames()`
- `onCreatedNavigationTarget`
- `onHistoryStateUpdated`
- transition types and qualifiers
- Filtering
`onReferenceFragmentUpdated` also triggers for `pushState`.
#### webRequest
- Firefox does not support:
- `handlerBehaviorChanged()`
- `onAuthRequired`
- `onBeforeRedirect`
- `onErrorOccurred`
- Requests can be:
- canceled only in `onBeforeRequest`
- modified/redirected only in `onBeforeSendHeaders`
- Responses can be modified only in `onHeadersReceived`.
- Filtering by `windowId` and `tabId` is not supported.
- The `"requestBody"` instruction in `opt_extraInfoSpec` is not supported.
- Redirection is not allowed in `onBeforeRequest` or `onHeadersReceived`, but is allowed in `onBeforeSendHeaders`.
- `requestId` is not included in the argument passed to the listener.
#### windows
- `onFocusChanged` will trigger multiple times for a given focus change.
- `create()` does not support the `focused`, `type`, or `state` options.
- `update()` only supports the `focused` option.
### Planned APIs
We don't yet support the following APIs, but plan to, soon:
- [commands](https://developer.chrome.com/extensions/commands)
- [Devtools (mostly panels)](https://developer.chrome.com/extensions/devtools)
- [downloads](https://developer.chrome.com/extensions/downloads)
- [history](https://developer.chrome.com/extensions/history)
- [idle](https://developer.chrome.com/extensions/idle)
- [omnibox](https://developer.chrome.com/extensions/omnibox)
- [permissions](https://developer.chrome.com/extensions/permissions)
- [Native messaging (runtime.connectNative)](https://developer.chrome.com/extensions/runtime#method-connectNative)
### CSS
#### Localized String Interpolation
We currently do not support interpolation of localized strings `__MSG_` tokens in extension CSS files: [Error 1209184 en Firefox](https://bugzil.la/1209184).
#### Relative URLs
We resolve URLs in injected CSS files relative to the CSS file itself, rather than to the page it's injected into.
### Miscellaneous incompatibilities
- Chrome allows any optional arguments to be omitted, even if followed by other arguments. Firefox currently supports this only under specific circumetances. We recommend only omitting optional arguments at the end of the arguments list, and using `null` for all other cases.
- Firefox currently [does not allow](https://bugzil.la/932513) the `{{jsxref("Statements/let", "let")}}` or `{{jsxref("Statements/const", "const")}}` statement in ordinary web pages or Web Extensions. While it is possible to enable support for Firefox's variant of the statement using a special `<script>` tag, this is not recommended. Instead, if your extension code uses `let` or `const` statements, we recommend that you [transpile them using Babel](/es/Add-ons/WebExtensions/Tips#Using_advanced_JavaScript_features_from_ECMAScript_6_and_7) until support is turned on globally.