SVG

General Gecko:

  • Blending of SVG elements using the
    mix-blend-mode
    property has been implemented. The
    layout.css.mix-blend-mode.enabled preference must be set to true
    (bug 902525).

Audio/Video

  • 支持 WebM 的 Opus
    (bug 887978).

  • 支持 VP9 视频解码器
    (bug 833023).

更多内容请看发行说明:

(文/开源中国)    

Firefox
OS 1.3 主要包括 CSS,JavaScript ,HTML,DOM/API ,音频和视频方面的 bug
修复,一些新特性和其他一些功能改进。主要更新内容如下:

OX.com##div#ad_text

Firefox
OS 1.3 现在处于预发布的阶段。它的 Gecko 组件是基于Firefox
28(见Firefox开发人员28日发布说明。)

自己使用的一个去文字广告的例子:

DOM/API

Firefox OS-specific:

  • Multi-SIM support landed in Firefox OS (Dual-SIM-Dual-Standby or
    DSDS).
    navigator.mozMobileConnection
    becomes an array of
    MozMobileConnection
    instances, i.e. navigator.mozMobileConnections.  The privileged
    subset of this API can be used to detect MCC (country) and MNC
    (carrier), like in this
    snippet.

General Gecko:

  • HTMLVideoElement.canPlayType('video/webm')
    now reports maybe.
    (bug 884275).

  • The
    DocumentFragment.getElementById()
    method has been implemented. E.g.
    document.createDocumentFragment().getElementById()
    (bug 933193).

  • The
    KeyboardEvent.repeat
    attribute has been implemented
    (bug 600117).

  • The File
    constructor, e.g. new File(["foo"], "foo.txt") has been
    implemented.
    (bug 819900).

  • The
    navigator.plugins
    is no more enumerable, for privacy reasons
    (bug 757726).

  • The two attributes
    Window.screenX
    and
    Window.screenY
    now return CSS pixels (and no more device pixels)
    (bug 943668).

  • The two methods
    CanvasRenderingContext2D.drawSystemFocusRing()
    and
    CanvasRenderingContext2D.drawCustomFocusRing()
    have been implemented. The preference canvas.focusring.enabled
    must be set to true to activate both
    (bug 540456).

  • The following attributes have been added to
    NavigatorID:
    appCodeName
    and
    product
    (bug 925847).

  • Support for the two setRange() methods on the
    HTMLInputElement
    interface has been added
    (bug 850364).

  • Support for the two setRange() methods on the
    HTMLTextAreaElement
    interface has been added
    (bug 918940).

  • The method getAllKeys() and openKeyCursor() have been added to
    IDBObjectStore
    (bug 920633
    and
    bug 920800).

  • The
    HTMLFormControlsCollection
    interface has been implemented
    (bug 913920).

  • The
    CanvasRenderingContext2D
    interface supports now the two methods getLineDash() and
    setLineDash()
    (bug 768067).

  • The typeMustMatch attribute has been implemented on the
    HTMLObjectElement
    interface
    (bug 827160).

  • The copyFromChannel() and copyToChannel() methods have been
    added to
    AudioBuffer
    (bug 915524).

  • Event.isTrusted() is now unforgeable
    (bug 637248).

  • The
    Navigator.vibrate()
    method has been adapted to match the final specification: It now
    returns false when the list is too long or has too large entries,
    instead of throwing
    (bug 884935).

  • As part of the ongoing effort to standardize global objects, the
    non-standard stylesheet change event interfaces, including
    StyleRuleChangeEvent, StyleSheetApplicableStateChangeEvent and
    StyleSheetChangeEvent, are no longer available from Web content.
    The CSSGroupRuleRuleList interface, the implementation detail of
    CSSRuleList,
    has also been removed
    (bug 872934
    and
    bug 916871).

  • atob now ignores whitespaces
    (bug 711180).

  • WebGL: MOZ_
    prefixed extension strings are deprecated. Support for them will be
    removed in the future. Use unprefixed extension string only. To get
    draft extensions, set the webgl.enable-draft-extensions
    preferences
    (bug 924176).

Advanced selectors

In general, any CSS selector supported by Firefox can be used for
element hiding. For example the following rule will hide anything
following a div element with class “adheader”: ##div.adheader + *. For
a full list of CSS list see W3C CSS
specification (note that not all
selectors are supported by Firefox yet).

Note: This functionality is for advanced users only, you should be
comfortable with CSS selectors to use it. Adblock Plus won’t be able to
check the syntax of the selector you are adding, if you use invalid CSS
syntax you might break other (valid) rules you have. Check JavaScript
Console for CSS errors.

HTML

General Gecko:

  • WebVTT has
    been switched on by default
    (bug 887978).

  • <input type=color> has been implemented.

  • The allow-popups directive is now supported with the sandbox
    attribute of the
    <iframe>
    element
    (bug 766282).

  • Blending of HTML elements using the
    mix-blend-mode
    property has been implemented. The
    layout.css.mix-blend-mode.enabled preference must be set to true
    (bug 902525).

Limiting rules to certain domains

Usually you want to hide a specific ad on one specific site, you don’t
want your rule to be applied on other sites. For example the rule
##*.sponsor might hide valid code on some sites. But if you write it
as example.com##*.sponsor it will be applied on http://example.com/
and http://something.example.com/ but not on http://example.org/.
You can also specify multiple domains — simply separate them with
commas: domain1.example,domain2.example,domain3.example##*.sponsor.

If a domain name is preceded with “~”, the rule will not be applied
on pages from this domain (requires Adblock Plus 1.1 or higher). For
example, ~example.com##*.sponsor will be be applied on pages from any
domain but “example.com” and example.com,~foo.example.com##*.sponsor
makes the rule apply on “example.com” domain with the exception of
“foo.example.com” subdomain.

Note: Due to the way how element hiding is implemented, you really can
only limit it to full domain names. You cannot use any other part of the
address and you cannot use domain as a replacement for
domain.example,domain.test.

Note: Element hiding rules with domain limitation can be used to hide
browser’s user interface elements as well. For example the filter rule
browser##menuitem#javascriptConsole will hide the JavaScript Console
entry in Firefox’s Tools menu.

CSS

General Gecko:

  • Support for multi-line
    flexbox
    has been added
    (bug 939901).

  • Longhand East Asian counter
    styles
    have been implemented
    (bug 934072).

  • Support for the
    background-blend-mode
    property has been added
    (bug 841601).

  • The none value has been added to
    font-variant-ligatures
    (bug 913264).

  • Support for the
    :hover
    user action pseudo-class on pseudo-elements has been implemented
    (bug 922669).

  • The -moz-grab and -moz-grabbing keywords on the CSS
    cursor
    property have been unprefixed to grab and grabbing
    (bug 880672).

  • Support for the -moz-hsla() and -moz-rgba() functional notations
    has been dropped. Only the unprefixed versions, hsla() and
    rgba() are supported from now on
    (bug 893319).

  • The “true” value for
    text-align
    has been added
    (bug 929991).

  • Experimental support of position:sticky is now active by default
    on non-release builds
    (bug 902992).
    For releases builds, the layout.css.sticky.enabled preference
    still needs to be set to true.

  • The all
    shorthand property has been added
    (bug 920633).

  • The
    unset
    global value has been added; it allows to reset any CSS property
    (bug 921731).

  • Curly brackets are no longer allowed in HTML style attributes:
    doing <div style="{ display: none }"> was working in quirk mode,
    but won’t anymore
    bug 915053.

  • The
    overflow
    property now works on
    <fieldset>
    (bug 261037).

OX.com##div.ad_text

JavaScript

General Gecko:

<A
title=/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla
href=”
6 (Harmony) implementation continues!

  • New Array methods have been implemented:
    Array.prototype.entries()
    and
    Array.prototype.keys()
    (bug 894658).

  • The Harmony <A class=external
    title=
    href=”
    operator is now supported in Function calls
    (bug 762363).

  • The mathematical function
    Math.hypot()
    has been implemented
    (bug 896264).

  • The yield* operator is now implemented
    (bug 666396).

  • The MapIterator, SetIterator and ArrayIterator objects now
    match the specification
    (bug 881226).

  • for..of
    loops now expect the ES6 standard iterator
    protocol
    moving away from SpiderMonkey old iterator protocol using
    StopIteration.

  • String.match
    and
    String.replace
    now reset
    RegExp.lastIndex
    (bug 501739).

Attribute selectors

Some advertisers don’t make it easy for you — their text advertisements
have neither an id nor a class attribute. You can use other attributes
to hide those, for example ##table[width="80%"] will hide tables with
width attribute set to 80%. If you don’t want to specify the full value
of the attribute, ##div[title*="adv"] will hide all div elements with
title attribute containing the string “adv”. You can also check the
beginning and the end of an attribute, for example
##div[title^="adv"][title$="ert"] will hide div elements with title
starting with “adv” and ending with “ert”. As you see, you can also use
multiple conditions — table[width="80%"][bgcolor="white"] will match
tables with width attribute set to 80% and bgcolor attribute set to
white.

中文版见下:(不过中文的不是最新版,有些规则出出入的)

Simplified element hiding syntax

Adblock Plus supports simplified element hiding syntax (e.g.
#div(id=foo)) for backwards compatibility only. Using this syntax is
discouraged, usual CSS selectors are preferred. Support for this syntax
might be removed at some point.

 

 

【 使用Adblock Plus编辑过滤规则】

IM520文字广告去除练习:

远离很简单的,##表示去除元素广告,div表示元素div,#ad_text和.ad_text表示ID和Class为ad_text的元素,搞定。

或者

英文原版(推荐):

Element hiding

Basic rules

Sometimes you will find advertisements that can’t be blocked because
they are embedded as text in the web page itself. If you look at the
source code of the web page you might find something like this:

<div class=”textad”> Cheapest tofu, only here and now! </div> <div id=”sponsorad”> Really cheap tofu, click here! </div> <textad> Only here you get the best tofu! </textad> 

You need to download the web page so you will necessarily download the
advertisements. All you can do here is to hide the advertisement so you
don’t need to see it. That’s what element hiding is meant for.

The first advertisement above is contained inside a div element with
class attribute “textad”. The following rule will hide exactly this
combination: ##div.textad. Here ## marks an element hiding rule
while the rest is a selector identifying the elements that need to be
hidden. You can hide elements by their id attribute similarly,
##div#sponsorad will hide the second advertisement. You don’t need to
specify the element name, the rule ##*#sponsorad will work just as
well. And you can hide elements by element name only, e.g. ##textad
for the third advertisement.

The Element Hiding Helper
extension helps selecting the
correct element and writing the corresponding rule without having to
view the source code of the page. Basic HTML knowledge is useful
nevertheless.

Note: Element hiding works very differently from normal filters. This
has the implication that no wildcards are supported in element hiding
rules.

以下为英文原文中个人用到部分: