зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1753413 - fx doc: Remove whitespaces, trailing lines & windows CR r=andi,perftest-reviewers,sparky
Differential Revision: https://phabricator.services.mozilla.com/D137741
This commit is contained in:
Родитель
72a3999f74
Коммит
caaedeee98
|
@ -30,7 +30,7 @@ Stage 2 – Door-hanger
|
|||
|
||||
* **title**: Title text at the top of the door hanger.
|
||||
* **body**: A longer paragraph of text.
|
||||
* **icon**: An image (please provide a URL or the image file up to 96x96px).
|
||||
* **icon**: An image (please provide a URL or the image file up to 96x96px).
|
||||
* **primary_button_label**: The label of the button.
|
||||
* **primary_button_action**: The special action triggered by clicking on the button. Choose any of the available `button actions`__. Common examples include opening a section of about:preferences, or opening a URL.
|
||||
|
||||
|
|
|
@ -96,7 +96,7 @@ running
|
|||
|
||||
.. code-block:: shell
|
||||
|
||||
./mach npm test --prefix=browser/components/newtab &&
|
||||
./mach npm test --prefix=browser/components/newtab &&
|
||||
./mach npm run debugcoverage --prefix=browser/components/newtab
|
||||
|
||||
Detailed Docs
|
||||
|
|
|
@ -361,4 +361,4 @@ Creating a Touch Bar and its ``TouchBarInputs`` flows as follows:
|
|||
"update" methods. This method is most often used to update ``title`` after
|
||||
l10n is complete. It can also be used to update any property of a
|
||||
``TouchBarInput``; for instance, one might wish to change ``color``
|
||||
when a specific event occurs in the browser.
|
||||
when a specific event occurs in the browser.
|
||||
|
|
|
@ -6,5 +6,3 @@ UITour
|
|||
|
||||
.. js:autoclass:: Mozilla.UITour
|
||||
:members: none
|
||||
|
||||
|
||||
|
|
|
@ -805,4 +805,3 @@ The listener should return a view update object.
|
|||
|
||||
This step is the same as step 5 above. Bundle a CSS file in your extension and
|
||||
declare it in the top-level ``stylesheet`` property of your view template.
|
||||
|
||||
|
|
|
@ -34,4 +34,3 @@ The parsers are for detecting the field type more accurately based on the near c
|
|||
* _parseCreditCardExpirationDateFields
|
||||
|
||||
* related type: ``cc-exp``, ``cc-exp-month``, ``cc-exp-year``
|
||||
|
||||
|
|
|
@ -53,4 +53,3 @@ Most of this procedure is done in `makensis.mk <https://searchfox.org/mozilla-ce
|
|||
|
||||
|
||||
If this is an official build running on Mozilla automation infrastructure, then after this the installers will be signed, like other build products. Release engineering owns that process, it's not within the scope of this documentation.
|
||||
|
||||
|
|
|
@ -34,5 +34,3 @@ This is the procedure that determines when one of the two cleanup prompts is sho
|
|||
2. Look for an existing installation by searching the registry for any copies of Firefox that are registered for potential file type associations. If none exist, show the reinstall prompt.
|
||||
3. Check if the existing installation is for the same channel that's being installed now. If not, don't show either prompt.
|
||||
4. Check the version of Firefox that the default profile we found in step 1 was last used with. This information comes from the profile's compatibility.ini file. If that version is more than 2 versions behind the current version, show the paveover prompt. Otherwise, don't show either prompt. Information about the current version is taken from `<https://product-details.mozilla.org/1.0/firefox_versions.json>`_.
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ application window that are outside the window's content area. Toolbars,
|
|||
menu bars, progress bars, and window title bars are all examples of
|
||||
elements that are typically part of the chrome.
|
||||
|
||||
``chrome.manifest`` files are used to register XPCOM components and sources for the chrome protocol.
|
||||
``chrome.manifest`` files are used to register XPCOM components and sources for the chrome protocol.
|
||||
Every application supplies a root ``chrome.manifest`` file that Mozilla reads on startup.
|
||||
|
||||
Chrome providers
|
||||
|
@ -152,7 +152,7 @@ locale
|
|||
|
||||
A locale package is registered with the line:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
locale packagename localename uri/to/files/ [flags]
|
||||
|
||||
|
@ -167,7 +167,7 @@ skin
|
|||
|
||||
A skin package is registered with the line:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
skin packagename skinname uri/to/files/ [flags]
|
||||
|
||||
|
@ -183,7 +183,7 @@ style
|
|||
Style overlays (custom CSS which will be applied to a chrome page) are
|
||||
registered with the following syntax:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
style chrome://URI-to-style chrome://stylesheet-URI [flags]
|
||||
|
||||
|
@ -195,7 +195,7 @@ file provided by the application or XULRunner. In order to allow for
|
|||
this, the chrome registration manifest allows for "override"
|
||||
instructions:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
override chrome://package/type/original-uri.whatever new-resolved-URI [flags]
|
||||
|
||||
|
@ -210,7 +210,7 @@ resource
|
|||
|
||||
Aliases can be created using the ``resource`` instruction:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
resource aliasname uri/to/files/ [flags]
|
||||
|
||||
|
@ -237,7 +237,7 @@ Extensions may install into multiple applications. There may be chrome
|
|||
registration lines which only apply to one particular application. The
|
||||
flag
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
application=app-ID
|
||||
|
||||
|
@ -262,7 +262,7 @@ Extensions may install into multiple versions of an application. There
|
|||
may be chrome registration lines which only apply to a particular
|
||||
application version. The flag
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
appversion=version
|
||||
appversion<version
|
||||
|
@ -285,7 +285,7 @@ This is particularly true for binary components. If there are chrome
|
|||
registration lines which only apply to a particular Gecko version, the
|
||||
flag
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
platformversion=version
|
||||
platformversion<version
|
||||
|
@ -343,7 +343,7 @@ An extension or theme may need to operate differently depending on which
|
|||
version of an operating system is running. For example, a theme may wish
|
||||
to adopt a different look on Mac OS X 10.5 than 10.4:
|
||||
|
||||
.. code::
|
||||
.. code::
|
||||
|
||||
osversion>=10.5
|
||||
|
||||
|
@ -358,7 +358,7 @@ XPCOMABI values (concatenated with an underscore). For example:
|
|||
::
|
||||
|
||||
binary-component component/myLib.dll abi=WINNT_x86-MSVC
|
||||
binary-component component/myLib.so abi=Linux_x86-gcc3
|
||||
binary-component component/myLib.so abi=Linux_x86-gcc3
|
||||
|
||||
platform (Platform-specific packages)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
@ -423,39 +423,39 @@ Example chrome manifest
|
|||
- engine
|
||||
- language
|
||||
- url
|
||||
* - content
|
||||
* - content
|
||||
- branding
|
||||
- browser/content/branding/
|
||||
- browser/content/branding/
|
||||
- contentaccessible=yes
|
||||
* - content
|
||||
- browser
|
||||
* - content
|
||||
- browser
|
||||
- browser/content/browser/
|
||||
- contentaccessible=yes
|
||||
* - override
|
||||
-
|
||||
- chrome://global/content/license.html
|
||||
* - override
|
||||
-
|
||||
- chrome://global/content/license.html
|
||||
- chrome://browser/content/license.html
|
||||
* - override
|
||||
-
|
||||
* - override
|
||||
-
|
||||
- chrome://global/content/netError.xhtml
|
||||
- chrome://browser/content/certerror/aboutNetError.xhtml
|
||||
* - resource
|
||||
- payments
|
||||
* - resource
|
||||
- payments
|
||||
- browser/res/payments/
|
||||
-
|
||||
* - skin
|
||||
- browser
|
||||
-
|
||||
* - skin
|
||||
- browser
|
||||
- classic/1.0 browser/skin/classic/browser/
|
||||
-
|
||||
* - locale
|
||||
-
|
||||
* - locale
|
||||
- branding
|
||||
- en-US
|
||||
- en-US/locale/branding/
|
||||
* - locale
|
||||
* - locale
|
||||
- browser
|
||||
- en-US
|
||||
- en-US/locale/browser/
|
||||
* - locale
|
||||
- browser-region
|
||||
* - locale
|
||||
- browser-region
|
||||
- en-US
|
||||
- en-US/locale/browser-region/
|
||||
- en-US/locale/browser-region/
|
||||
|
|
|
@ -51,4 +51,3 @@ Currently, regeneration rewrites the original project files. **If
|
|||
you've made any customizations to the projects, they will likely get
|
||||
overwritten.** We would like to improve this user experience in the
|
||||
future.
|
||||
|
||||
|
|
|
@ -29,13 +29,13 @@ The files may define any of the following special variables:
|
|||
# Optional: A function to be called at shutdown if any component listed in
|
||||
# this manifest has been instantiated.
|
||||
UnloadFunc = 'nsUnloadFooModule'
|
||||
|
||||
|
||||
# Optional: A processing priority, to determine how early or late the
|
||||
# manifest is processed. Defaults to 50. In practice, this mainly affects
|
||||
# the order in which unload functions are called at shutdown, with higher
|
||||
# priority numbers being called later.
|
||||
Priority = 10
|
||||
|
||||
|
||||
# Optional: A list of header files to include before calling init or
|
||||
# unload functions, or any legacy constructor functions.
|
||||
#
|
||||
|
@ -47,7 +47,7 @@ The files may define any of the following special variables:
|
|||
'/foo/nsFooModule.h',
|
||||
'nsFoo.h',
|
||||
]
|
||||
|
||||
|
||||
# A list of component classes provided by this module.
|
||||
Classes = [
|
||||
{
|
||||
|
@ -76,7 +76,7 @@ Class definitions may have the following properties:
|
|||
``components::Foo::Create()``, respectively.
|
||||
|
||||
``cid``
|
||||
A UUID string containing this component's CID, in the form
|
||||
A UUID string containing this component's CID, in the form
|
||||
``'{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'``.
|
||||
|
||||
``contract_ids`` (optional)
|
||||
|
@ -113,7 +113,7 @@ Class definitions may have the following properties:
|
|||
headers listed in the ``headers`` property, must take no arguments, and must
|
||||
return ``already_AddRefed<iface>`` where ``iface`` is the interface provided
|
||||
in the ``type`` property.
|
||||
|
||||
|
||||
This property is incompatible with ``legacy_constructor``.
|
||||
|
||||
``jsm`` (optional)
|
||||
|
@ -124,13 +124,13 @@ Class definitions may have the following properties:
|
|||
|
||||
``legacy_constructor`` (optional)
|
||||
This property is deprecated, and should not be used in new code.
|
||||
|
||||
|
||||
The fully-qualified name of a constructor function to call in order to
|
||||
create instances of this class. This function must be declared in one of the
|
||||
headers listed in the ``headers`` property, and must have the signature
|
||||
``nsresult(nsISupports* aOuter, const nsID& aIID, void** aResult)``, and
|
||||
behave equivalently to ``nsIFactory::CreateInstance``.
|
||||
|
||||
|
||||
This property is incompatible with ``constructor``.
|
||||
|
||||
``singleton`` (optional, default=``False``)
|
||||
|
@ -143,10 +143,10 @@ Class definitions may have the following properties:
|
|||
tests, and its ``mozilla::components::<name>::Service()`` getter will
|
||||
therefore look it up by contract ID for every call. This component must,
|
||||
therefore, provide at least one contract ID in its ``contract_ids`` array.
|
||||
|
||||
|
||||
If false, the ``Service()`` getter will always retrieve the service based on
|
||||
its static data, and it cannot be overridden.
|
||||
|
||||
|
||||
Note: Enabling this option is expensive, and should not be done when it can
|
||||
be avoided, or when the getter is used by any hot code.
|
||||
|
||||
|
@ -155,10 +155,10 @@ Class definitions may have the following properties:
|
|||
another translation unit, using ``NS_IMPL_COMPONENT_FACTORY(type)``. The
|
||||
constructor must return an ``already_AddRefed<nsISupports>``, and will be
|
||||
used to construct instances of this type.
|
||||
|
||||
|
||||
This option should only be used in cases where the headers which define the
|
||||
component's concrete type cannot be easily included without local includes.
|
||||
|
||||
|
||||
Note: External constructors may not specify an ``init_method``, since the
|
||||
generated code will not have the necessary type information required to call
|
||||
it. This option is also incompatible with ``constructor`` and
|
||||
|
@ -306,4 +306,3 @@ value:
|
|||
'MainProcessSingleton': ('service,@mozilla.org/main-process-singleton;1', ProcessSelector.MAIN_PROCESS_ONLY),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -38,4 +38,3 @@ to build the tree.
|
|||
Piecing it all together, we have frontend files that are parsed into data
|
||||
structures. These data structures are fed into a build backend. The output
|
||||
from build backends is used by builders to build the tree.
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ Third-party crate dependencies
|
|||
Third-party dependencies for in-tree Rust crates are *vendored* into the
|
||||
``third_party/rust`` directory of mozilla-central. This means that a copy of
|
||||
each third-party crate's code is committed into mozilla-central. As a result,
|
||||
building Firefox does not involve downloading any third-party crates.
|
||||
building Firefox does not involve downloading any third-party crates.
|
||||
|
||||
If you add a dependency on a new crate you must run ``mach vendor rust`` to
|
||||
vendor the dependencies into that directory. (Note that ``mach vendor rust``
|
||||
|
|
|
@ -162,5 +162,3 @@ proper solution. If you can provide a patch, a regression range or
|
|||
assist in verifying that the developer's patches work for your platform,
|
||||
that would help a lot towards getting your bugs fixed and checked into
|
||||
the tree.
|
||||
|
||||
|
||||
|
|
|
@ -171,7 +171,7 @@ run-sequentially
|
|||
|
||||
scheme
|
||||
Changes the scheme and domain from which the test runs. (Only used in mochitest suites)
|
||||
|
||||
|
||||
There are two possible values:
|
||||
- ``http`` (default): The test will run from http://mochi.test:8888
|
||||
- ``https``: The test will run from https://example.com:443
|
||||
|
|
|
@ -86,4 +86,3 @@ See also
|
|||
- :ref:`Style panel <page_inspector_ui_tour_rules_view>`
|
||||
- :doc:`Tools <../index>`
|
||||
- `New Developer Tools in Firefox 11 Aurora <https://hacks.mozilla.org/2011/12/new-developer-tools-in-firefox-11-aurora>`_ (blog post)
|
||||
|
||||
|
|
|
@ -224,4 +224,3 @@ Service workers can be unavailable for several reasons:
|
|||
- If you are using a Private Browsing window.
|
||||
- If your History preference is set to "Never Remember History" or "Always use private browsing mode".
|
||||
- If the ``dom.serviceWorkers.enable`` preference is set to false in ``about:config``.
|
||||
|
||||
|
|
|
@ -286,4 +286,3 @@ See also
|
|||
- `Understanding WCAG <https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG>`_
|
||||
- `WAI-ARIA basics <https://developer.mozilla.org/en-US/docs/Learn/Accessibility/WAI-ARIA_basics>`_
|
||||
- `Accessibility APIs: A Key To Web Accessibility <https://www.smashingmagazine.com/2015/03/web-accessibility-with-accessibility-api/>`_ by Léonie Watson
|
||||
|
||||
|
|
|
@ -87,4 +87,3 @@ See also
|
|||
- `Color universal design <https://jfly.uni-koeln.de/color/>`_
|
||||
- `WCAG success criterion 1.4.1: Use of color <https://www.w3.org/TR/WCAG21/#use-of-color>`_
|
||||
- `WCAG success criterion 1.4.11: Non-text contrast <https://www.w3.org/TR/WCAG21/#non-text-contrast>`_
|
||||
|
||||
|
|
|
@ -157,4 +157,3 @@ On macOS, this similar code will add a new item to the **Tools** menu:
|
|||
parent.appendChild(makeTheTea);
|
||||
|
||||
.. image:: browser-console-modify-ui-osx.png
|
||||
|
||||
|
|
|
@ -72,4 +72,3 @@ You can use the same technique to debug `popups created by add-ons <https://exte
|
|||
|
||||
.. note::
|
||||
This change is not persistent across browser restarts. When you close the browser toolbox, the setting will be cleared.
|
||||
|
||||
|
|
|
@ -96,4 +96,3 @@ Watermark:
|
|||
|
||||
Changeset:
|
||||
`7ae377917236 <https://hg.mozilla.org/mozilla-central/rev/7ae377917236>`_
|
||||
|
||||
|
|
|
@ -200,4 +200,3 @@ Watermark:
|
|||
|
||||
Changeset:
|
||||
`e91b2c85aacd <https://hg.mozilla.org/mozilla-central/rev/e91b2c85aacd>`_
|
||||
|
||||
|
|
|
@ -238,4 +238,3 @@ Watermark:
|
|||
|
||||
Changeset:
|
||||
`e91b2c85aacd <https://hg.mozilla.org/mozilla-central/rev/e91b2c85aacd>`_
|
||||
|
||||
|
|
|
@ -311,4 +311,3 @@ Watermark:
|
|||
sha256:7ae16a834e0883a95b4e0d227193293f6b6e4e4dd812c2570372a39c4c04897b
|
||||
Changeset:
|
||||
`5572465c08a9+ <https://hg.mozilla.org/mozilla-central/rev/5572465c08a9>`_
|
||||
|
||||
|
|
|
@ -270,4 +270,3 @@ Watermark:
|
|||
|
||||
Changeset:
|
||||
`5572465c08a9+ <https://hg.mozilla.org/mozilla-central/rev/5572465c08a9>`_
|
||||
|
||||
|
|
|
@ -128,4 +128,3 @@ Watermark:
|
|||
sha256:5ca245813db96628aab1c78b803355eb2aa8c575839c67eb7d7bde177898df88
|
||||
Changeset:
|
||||
`e91b2c85aacd <https://hg.mozilla.org/mozilla-central/rev/e91b2c85aacd>`_
|
||||
|
||||
|
|
|
@ -312,4 +312,3 @@ Watermark:
|
|||
|
||||
Changeset:
|
||||
`e91b2c85aacd <https://hg.mozilla.org/mozilla-central/rev/e91b2c85aacd>`_
|
||||
|
||||
|
|
|
@ -106,4 +106,3 @@ Watermark:
|
|||
sha256:c8dd4bb69972b58e59fcbe6870499206463a5e330fda25f1214893595a1c01d0
|
||||
Changeset:
|
||||
`ffa775dd5bd4 <https://hg.mozilla.org/mozilla-central/rev/ffa775dd5bd4>`_
|
||||
|
||||
|
|
|
@ -13,4 +13,3 @@ After you click the icon to disable breakpoints, the appearance of the breakpoin
|
|||
|
||||
.. image:: disable_breakpoints.png
|
||||
:class: border
|
||||
|
||||
|
|
|
@ -16,4 +16,3 @@ Also, when you view the details of a DOM node in the code panel, objects that yo
|
|||
|
||||
.. image:: highlight_dom_node.png
|
||||
:class: border
|
||||
|
||||
|
|
|
@ -18,4 +18,3 @@ There are three ways to open the debugger:
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/yI5SlVQiZtI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
|
|
@ -20,4 +20,3 @@ The **Pretty print source** icon is available only if the source file is minifie
|
|||
.. note::
|
||||
|
||||
Currently Firefox `does not support <https://bugzilla.mozilla.org/show_bug.cgi?id=1010150>`_ pretty printing inline Javascript.
|
||||
|
||||
|
|
|
@ -106,4 +106,3 @@ This is a very useful timesaver when stepping through your code. Previously you
|
|||
.. note::
|
||||
|
||||
There is also a new option in the context menu for the actual code in the source pane — *Hide inline preview*/*Show inline preview* — which allows you to turn the inline variables on/off.
|
||||
|
||||
|
|
|
@ -32,4 +32,3 @@ In the video above we load https://mdn.github.io/devtools-examples/sourcemaps-in
|
|||
//# sourceMappingURL=main.js.map</pre>
|
||||
|
||||
In the Debugger's :ref:`source list pane <debugger-ui-tour-source-list-pane>`, the original CoffeeScript source now appears as "main.coffee", and we can debug it just like any other source.
|
||||
|
||||
|
|
|
@ -51,4 +51,3 @@ See also
|
|||
********
|
||||
|
||||
- `Debugging variables with watchpoints in Firefox 72 <https://hacks.mozilla.org/2019/12/debugging-variables-with-watchpoints-in-firefox-72/>`_
|
||||
|
||||
|
|
|
@ -794,4 +794,3 @@ Add a sidebar to an existing tool:
|
|||
sidebar.addTab("tab1", "chrome://browser/content/.../tab1.xhtml", true);
|
||||
sidebar.addTab("tab2", "chrome://browser/content/.../tab2.xhtml", false);
|
||||
sidebar.show();
|
||||
|
||||
|
|
|
@ -205,4 +205,3 @@ This chart lists colors and CSS variables as implemented in the dark theme and l
|
|||
|
||||
.. warning::
|
||||
Not yet finalized. See `bug 916766 <https://bugzilla.mozilla.org/show_bug.cgi?id=916766>`_ for progress.
|
||||
|
||||
|
|
|
@ -892,4 +892,3 @@ Keyboard shortcuts for the :doc:`Eyedropper <../eyedropper/index>`.
|
|||
- :kbd:`Shift` + :kbd:`arrow keys`
|
||||
- :kbd:`Shift` + :kbd:`arrow keys`
|
||||
- :kbd:`Shift` + :kbd:`arrow keys`
|
||||
|
||||
|
|
|
@ -28,4 +28,3 @@ When you stop holding the mouse down, the rectangle that was displayed on screen
|
|||
|
||||
.. image:: resizable_measuring_area.png
|
||||
:class: border
|
||||
|
||||
|
|
|
@ -172,5 +172,3 @@ Using the Call Stack view
|
|||
*************************
|
||||
|
||||
Finally, you can switch to the Call Stack view, see where the objects are being allocated, and jump to that point in the Debugger.
|
||||
|
||||
|
||||
|
|
|
@ -50,4 +50,3 @@ Examples used in the Memory tool documentation.
|
|||
|
||||
- :doc:`Monster example <monster_example/index>`
|
||||
- :doc:`DOM allocation example <dom_allocation_example/index>`
|
||||
|
||||
|
|
|
@ -78,4 +78,3 @@ So the structure of the memory allocated on the JavaScript heap is an object con
|
|||
|
||||
.. image:: monsters.svg
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -76,4 +76,3 @@ You need to flip these two to ``true`` in Release/Beta to test the feature in Fi
|
|||
.. note::
|
||||
|
||||
The 3-pane inspector is already enabled in Nightly/Developer edition before Firefox 62.
|
||||
|
||||
|
|
|
@ -22,4 +22,3 @@ You will also see an ``overflow`` badge next to the node causing the overflow.
|
|||
.. image:: overflow_badge.png
|
||||
:alt: HTML Pane: Overflow badge
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -255,4 +255,3 @@ Finally, here are a few tips for making effective use of the Fonts tab:
|
|||
:class: border
|
||||
|
||||
- You'll also notice in the above screenshot that the font in the ``font-family`` font stack that is actually applied to the inspected element is underlined. This makes it easy to see exactly what is being applied where, when font stacks are specified.
|
||||
|
||||
|
|
|
@ -472,4 +472,3 @@ See also
|
|||
|
||||
- Complete list of Page Inspector :ref:`Keyboard shortcuts <keyboard-shortcuts-page-inspector>`.
|
||||
- The Inspector also includes a number of specialized tools for working with particular CSS features, such as colors, fonts, and animations. To read about these see the list of :doc:`how to guides <../../index>`.
|
||||
|
||||
|
|
|
@ -25,5 +25,3 @@ Each line contains:
|
|||
- standard DOM events
|
||||
- `jQuery events <https://api.jquery.com/category/events/>`_
|
||||
- `React events <https://facebook.github.io/react/docs/events.html>`_
|
||||
|
||||
|
||||
|
|
|
@ -187,4 +187,3 @@ See also
|
|||
- `labs.jensimmons.com <https://labs.jensimmons.com/>`_ — lots of interesting grid examples.
|
||||
- `Grid by Example <https://gridbyexample.com/>`_ — CSS Grid learning resources from Rachel Andrew.
|
||||
- `CSS Grid Layout <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout>`_ — MDN CSS Grid Layout references and tutorials.
|
||||
|
||||
|
|
|
@ -29,4 +29,3 @@ The color picker includes an eyedropper icon: clicking this icon enables you to
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/0Zx1TN21QOo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
|
|
@ -31,5 +31,3 @@ With the node picker
|
|||
:width: 20
|
||||
|
||||
To select an element in the page itself, activate the "node picker" by clicking its icon: |image1| (also called the *Select Element* icon). After that, as you move the mouse around the page, the element under the mouse is highlighted. Click the element to select it:
|
||||
|
||||
|
||||
|
|
|
@ -6,4 +6,3 @@ If you hover over a `transform <https://developer.mozilla.org/en-US/docs/Web/CSS
|
|||
|
||||
.. image:: transform.png
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -23,4 +23,3 @@ The Animation inspector enables you to:
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/0vSIuKaqD8o" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
|
|
@ -91,4 +91,3 @@ JavaScript Content
|
|||
}
|
||||
|
||||
document.addEventListener("click", toggleSelection);
|
||||
|
||||
|
|
|
@ -115,4 +115,3 @@ JavaScript Content
|
|||
}
|
||||
|
||||
document.addEventListener("click", animateChannel);
|
||||
|
||||
|
|
|
@ -225,5 +225,3 @@ The cubic Bézier editor includes a number of presets, grouped under "Ease-in",
|
|||
<iframe width="560" height="315" src="https://www.youtube.com/embed/Jx-J2Yy0aSg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
|
|
|
@ -87,4 +87,3 @@ If you're seeing these problems, consider whether you can reduce the number or s
|
|||
|
||||
- can you allocate memory lazily, when it is actually needed, instead of up front?
|
||||
- if allocating memory in a loop, can you reuse a single allocation in every loop iteration?
|
||||
|
||||
|
|
|
@ -128,4 +128,3 @@ To display this view, click the gear icon on the right-hand end of the performan
|
|||
|
||||
.. image:: performance_menu_invert_call_tree.png
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -45,4 +45,3 @@ Note: in Windows, the ``start-debugger-server`` call will only have one dash:
|
|||
.. note::
|
||||
|
||||
By default, and for security reasons, the ``devtools.debugger.force-local`` option is set. If you want to debug a Firefox instance from an external machine, you can change this option, but only do this on a trusted network or set a strong firewall rule to lock down which machines can access it.
|
||||
|
||||
|
|
|
@ -193,4 +193,3 @@ The Toolbox, and the tools it hosts, work in just the same way as they do when a
|
|||
|
||||
.. image:: remote-debugging-debugger.png
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -12,4 +12,3 @@ You can connect the developer tools to Gecko-based runtimes like Firefox Desktop
|
|||
- :doc:`Firefox Desktop <debugging_firefox_desktop/index>`
|
||||
- Firefox for Android :doc:`over USB <../about_colon_debugging/index>`
|
||||
- :doc:`Thunderbird <thunderbird/index>`
|
||||
|
||||
|
|
|
@ -206,4 +206,3 @@ To select a network, click the list box that's initially labeled "No throttling"
|
|||
|
||||
.. image:: rdm_throttling.png
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -223,4 +223,3 @@ Advanced settings
|
|||
Enable a panel within the debugger to debug workers.
|
||||
|
||||
Note: This option got removed from the UI in Firefox 56, because this version ships with a :doc:`new Debugger UI <../debugger/index>`, but it can still be enabled for the old UI by setting the preference ``devtools.debugger.workers`` to ``true``.
|
||||
|
||||
|
|
|
@ -10,4 +10,3 @@ Under the *Cache Storage* type within the :doc:`Storage Inspector <../index>` yo
|
|||
|
||||
.. image:: cache_storage_detail.png
|
||||
:class: border
|
||||
|
||||
|
|
|
@ -40,4 +40,3 @@ The context menu for each cookie includes the following commands:
|
|||
|
||||
.. image:: cookie_table_widget_context.png
|
||||
:class: border
|
||||
|
||||
|
|
|
@ -144,4 +144,3 @@ Keyboard shortcuts
|
|||
******************
|
||||
|
||||
- :ref:`Source editor shortcuts <keyboard-shortcuts-style-editor>`
|
||||
|
||||
|
|
|
@ -125,4 +125,3 @@ The command has the following optional parameters:
|
|||
|
||||
.. note::
|
||||
Thanks to Eric Meyer for his enthusiasm for our screenshot feature, and help! Small portions of this section have been borrowed from his `Firefox’s :screenshot command <https://meyerweb.com/eric/thoughts/2018/08/24/firefoxs-screenshot-command-2018/>`_ article.
|
||||
|
||||
|
|
|
@ -142,4 +142,3 @@ Storage Inspector
|
|||
- Right-click the column headers to open a menu allowing to toggle the display of the columns.
|
||||
- Right-click an entry and click "Delete *name*" to delete it or "Delete All" to delete all entries.
|
||||
- Select an entry to see the parsed value of it in the sidebar.
|
||||
|
||||
|
|
|
@ -9,5 +9,3 @@ This article lists different resources for developers to check web documents.
|
|||
- `W3C CSS Validator <https://jigsaw.w3.org/css-validator/>`_ validates CSS stylesheets.
|
||||
- `W3C Link Checker <https://validator.w3.org/checklink>`_ checks for broken links in HTML documents.
|
||||
- `HTML Tidy <https://www.html-tidy.org/>`_ tool finds errors in HTML documents, and can automatically fix some errors.
|
||||
|
||||
|
||||
|
|
|
@ -88,4 +88,3 @@ See also
|
|||
********
|
||||
|
||||
- `HTML5 Parser-Based View Source Syntax Highlighting <https://hsivonen.iki.fi/view-source/>`_ (Blog post)
|
||||
|
||||
|
|
|
@ -138,4 +138,3 @@ See also
|
|||
********
|
||||
|
||||
- `console <https://developer.mozilla.org/en-US/docs/Web/API/console>`_
|
||||
|
||||
|
|
|
@ -24,4 +24,3 @@ When you use the split console with the debugger, the console's scope is the cur
|
|||
|
||||
.. image:: split-console-show-debug.png
|
||||
:class: center
|
||||
|
||||
|
|
|
@ -23,4 +23,3 @@ To set an iframe as the target for the developer tools:
|
|||
|
||||
.. note::
|
||||
The iframe context picker button feature is enabled by default (if it has been disabled the iframe button is never displayed). The feature can be re-enabled from the Settings menu, using the "Select an iframe as the currently targeted document" checkbox.
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ Staying on top of the bugs in your component means:
|
|||
|
||||
- Members of your team do not see the bug queue and get the
|
||||
‘wiggins’
|
||||
|
||||
|
||||
Who Triages
|
||||
-----------
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ In addition to commits, you’ll need to be mindful of not disclosing
|
|||
sensitive information about the bug in public places, such as Bugzilla:
|
||||
|
||||
- **Do not add public bugs in the “duplicate”, “depends on”, “blocks”,
|
||||
“regression”, “regressed by”, or “see also” section if these bugs
|
||||
“regression”, “regressed by”, or “see also” section if these bugs
|
||||
could give hints about the nature of the security issue.**
|
||||
|
||||
- Mention the bugs in comment of the private bug instead.
|
||||
|
|
|
@ -104,7 +104,7 @@ explicit approval if:
|
|||
|
||||
If it meets the above criteria, developers do not need to ask for sec-approval.
|
||||
|
||||
In all other cases, developers should ask for sec-approval.
|
||||
In all other cases, developers should ask for sec-approval.
|
||||
Set the sec-approval flag to '?' on the patch when it is ready to be landed.
|
||||
You will find these flags in Bugzilla using the "Details" links in the
|
||||
Bugzilla attachment table (not directly on phabricator at time of writing).
|
||||
|
@ -193,4 +193,3 @@ multiple axes:
|
|||
The most common choice is: not much stability risk, not an immediate
|
||||
reverse engineering risk, moderate to high difficulty of exploitation:
|
||||
"land whenever".
|
||||
|
||||
|
|
|
@ -147,4 +147,3 @@ Other advices
|
|||
extract substrings in known positions in the string. For instance,
|
||||
{{JSxRef("String.slice", "aString.slice(-1)")}} returns the last
|
||||
letter in ``aString``, or the empty string if ``aString`` is empty.
|
||||
|
||||
|
|
|
@ -8,4 +8,3 @@ SVG practices
|
|||
Check `SVG
|
||||
Guidelines <https://developer.mozilla.org/docs/Mozilla/Developer_guide/SVG_Guidelines>`__ for
|
||||
more details.
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ list of acceptable features is given below:
|
|||
:widths: 25 25 25 25
|
||||
:header-rows: 3
|
||||
|
||||
* -
|
||||
* -
|
||||
- GCC
|
||||
- Clang
|
||||
-
|
||||
|
@ -606,11 +606,11 @@ Miscellaneous
|
|||
- xpcom/ds/TimeStamp.h
|
||||
- ``std::chrono::time_point``
|
||||
-
|
||||
* -
|
||||
* -
|
||||
- mozilla/TypeTraits.h
|
||||
- ``<type_traits>``
|
||||
-
|
||||
* -
|
||||
* -
|
||||
- mozilla/PodOperations.h
|
||||
-
|
||||
- C++ versions of ``memset``, ``memcpy``, etc.
|
||||
|
@ -622,7 +622,7 @@ Miscellaneous
|
|||
- mozilla/Compression.h
|
||||
-
|
||||
-
|
||||
* -
|
||||
* -
|
||||
- mozilla/Endian.h
|
||||
-
|
||||
-
|
||||
|
@ -630,11 +630,11 @@ Miscellaneous
|
|||
- mozilla/FloatingPoint.h
|
||||
-
|
||||
-
|
||||
* -
|
||||
* -
|
||||
- mozilla/HashFunctions.h
|
||||
- ``std::hash``
|
||||
-
|
||||
* -
|
||||
* -
|
||||
- mozilla/Move.h
|
||||
- ``std::move``, ``std::swap``, ``std::forward``
|
||||
-
|
||||
|
|
|
@ -27,4 +27,3 @@ Sources
|
|||
-------
|
||||
|
||||
* `Configuration (YAML) <https://searchfox.org/mozilla-central/source/tools/lint/cpp-virtual-final.yml>`_
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ integrating this process with Phabricator and mach. A list of some
|
|||
checkers that are used during automated scan can be found
|
||||
`here <https://searchfox.org/mozilla-central/source/tools/clang-tidy/config.yaml>`__.
|
||||
|
||||
This documentation is split into two parts:
|
||||
This documentation is split into two parts:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
|
|
@ -22,16 +22,16 @@ First pick a name. Pick something that makes sense without punctuation, in no mo
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
|
||||
#include "MissingElseInEnumComparisons.h"
|
||||
#include "CustomMatchers.h"
|
||||
|
||||
|
||||
void MissingElseInEnumComparisons::registerMatchers(MatchFinder *AstMatcher) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void MissingElseInEnumComparisons::check(const MatchFinder::MatchResult &Result) {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -104,4 +104,4 @@ You'll need to edit two things:
|
|||
|
||||
Running it on Central
|
||||
----------------------
|
||||
After this, the next thing to do is to add ``ac_add_options --enable-clang-plugin`` to your .mozconfig and do a build. Your plugin will be automatically compiled and used across the entire codebase. I suggest using ``./mach build | tee output.txt`` and then ``grep "Enum comparisons" output.txt | cut -d " " -f 3- | sort | uniq``. (The ``cut`` is there to get rid of the timestamp in the line.)
|
||||
After this, the next thing to do is to add ``ac_add_options --enable-clang-plugin`` to your .mozconfig and do a build. Your plugin will be automatically compiled and used across the entire codebase. I suggest using ``./mach build | tee output.txt`` and then ``grep "Enum comparisons" output.txt | cut -d " " -f 3- | sort | uniq``. (The ``cut`` is there to get rid of the timestamp in the line.)
|
||||
|
|
|
@ -87,7 +87,7 @@ And in our check() function, we can use it like so:
|
|||
const MatchFinder::MatchResult &Result) {
|
||||
const auto *MatchedDecl = Result.Nodes.getNodeAs<IfStmt>("node");
|
||||
const auto *EnumType = Result.Nodes.getNodeAs<EnumDecl>("enumType");
|
||||
|
||||
|
||||
diag(MatchedDecl->getIfLoc(),
|
||||
"Enum comparisons to %0 in an if/else if block without a trailing else.",
|
||||
DiagnosticIDs::Warning) << EnumType->getName();
|
||||
|
@ -145,4 +145,4 @@ While it's not a great situation, you can set up an allow-list of existing calls
|
|||
|
||||
Custom Annotations
|
||||
------------------
|
||||
It's possible to create custom annotations that will be a no-op when compiled, but can be used by a static analysis check. These can be used to annotate special types of sources and sinks (for example). We have some examples of this in-tree presently (such as ``MOZ_CAN_RUN_SCRIPT``) but currently don't have a detailed walkthrough in this documentation of how to set these up and use them. (Patches welcome.)
|
||||
It's possible to create custom annotations that will be a no-op when compiled, but can be used by a static analysis check. These can be used to annotate special types of sources and sinks (for example). We have some examples of this in-tree presently (such as ``MOZ_CAN_RUN_SCRIPT``) but currently don't have a detailed walkthrough in this documentation of how to set these up and use them. (Patches welcome.)
|
||||
|
|
|
@ -37,20 +37,20 @@ More examples are available `in the documentation <https://clang.llvm.org/docs/L
|
|||
|
||||
::
|
||||
|
||||
B func1() {
|
||||
return 42;
|
||||
B func1() {
|
||||
return 42;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
/*
|
||||
AST Dump in 'Asis' mode for C++17/C++20 dialect:
|
||||
|
||||
|
||||
FunctionDecl
|
||||
`-CompoundStmt
|
||||
`-ReturnStmt
|
||||
`-ImplicitCastExpr
|
||||
`-CXXConstructExpr
|
||||
`-IntegerLiteral 'int' 42
|
||||
|
||||
|
||||
AST Dump in 'IgnoreUnlessSpelledInSource' mode for all dialects:
|
||||
|
||||
FunctionDecl
|
||||
|
@ -69,47 +69,47 @@ Consider the output of ``match functionDecl().bind("x")``:
|
|||
|
||||
::
|
||||
|
||||
clang-query> match functionDecl().bind("x")
|
||||
|
||||
Match #1:
|
||||
|
||||
testfile.cpp:1:1: note: "root" binds here
|
||||
int addTwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
testfile.cpp:1:1: note: "x" binds here
|
||||
int addTwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Match #2:
|
||||
|
||||
testfile.cpp:6:1: note: "root" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
testfile.cpp:6:1: note: "x" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
2 matches.
|
||||
clang-query> match functionDecl().bind("x")
|
||||
|
||||
Match #1:
|
||||
|
||||
testfile.cpp:1:1: note: "root" binds here
|
||||
int addTwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
testfile.cpp:1:1: note: "x" binds here
|
||||
int addTwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Match #2:
|
||||
|
||||
testfile.cpp:6:1: note: "root" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
testfile.cpp:6:1: note: "x" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
2 matches.
|
||||
|
||||
|
||||
clang-query automatically binds ``root`` to the match, but we also bound the name ``x`` to that match. The ``root`` is redundant. If you ``set bind-root false`` then the output is less noisy:
|
||||
|
||||
::
|
||||
|
||||
clang-query> set bind-root false
|
||||
clang-query> m functionDecl().bind("x")
|
||||
|
||||
Match #1:
|
||||
|
||||
clang-query> set bind-root false
|
||||
clang-query> m functionDecl().bind("x")
|
||||
|
||||
Match #1:
|
||||
|
||||
testfile.cpp:1:1: note: "x" binds here
|
||||
int addtwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Match #2:
|
||||
|
||||
testfile.cpp:6:1: note: "x" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
2 matches.
|
||||
int addtwo(int num)
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Match #2:
|
||||
|
||||
testfile.cpp:6:1: note: "x" binds here
|
||||
int main(int, char**)
|
||||
^~~~~~~~~~~~~~~~~~~~~
|
||||
2 matches.
|
||||
|
||||
|
||||
set print-matcher
|
||||
|
@ -126,7 +126,7 @@ These commands will control the type of output you get from clang-query. The opt
|
|||
Shows you the C++ form of the node you are matching. This is typically not useful.
|
||||
|
||||
``diag``
|
||||
Shows you the individual node you are matching.
|
||||
Shows you the individual node you are matching.
|
||||
|
||||
``dump`` (alias: ``detailed-ast``)
|
||||
Shows you the node you are matching and the entire subtree for the node
|
||||
|
@ -165,4 +165,3 @@ This section tracks some patches; they are currently not used, but we may want t
|
|||
- `mapAnyOf() <https://reviews.llvm.org/D94127>`_ (`Example of usage <https://reviews.llvm.org/D94131>`_)
|
||||
- `Make cxxOperatorCallExpr matchers API-compatible with n-ary operators <https://reviews.llvm.org/D94128>`_
|
||||
- `CXXRewrittenBinaryOperator <https://reviews.llvm.org/D94130>`_
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ Under the 'Library' toolbar button for the compiler, you will see that the Mozil
|
|||
|
||||
#. Generated headers (which come from the obj-dir) are generated on a Linux x64 machine.
|
||||
#. The default mozilla-config.h comes from the objdir as well, as therefore will specify things such as `MOZ_WEBRTC=1`
|
||||
#. Non-generated headers will be extracted from moz.build files in an `imperfect way <https://github.com/mozilla-services/civet-docker/blob/00d313a7e0c55a9678bdcc39701675ac5e91bb5e/get_mozbuild_exports.py>`_ that tries to exclude Windows/OSX/Android headers. But this script may have bugs in it. If you encounter one, `feel free to file an issue <https://github.com/mozilla-services/civet-docker/issues>`_.
|
||||
#. Non-generated headers will be extracted from moz.build files in an `imperfect way <https://github.com/mozilla-services/civet-docker/blob/00d313a7e0c55a9678bdcc39701675ac5e91bb5e/get_mozbuild_exports.py>`_ that tries to exclude Windows/OSX/Android headers. But this script may have bugs in it. If you encounter one, `feel free to file an issue <https://github.com/mozilla-services/civet-docker/issues>`_.
|
||||
#. Sometimes gecko code will get some `additional, non-global include directories <https://searchfox.org/mozilla-central/search?q=Local_includes&path=>`_ that are not available. These can be added by including a compile flag like ``-I/mozilla-central/accessible/base``.
|
||||
#. We update mozilla-central and refresh the headers every hour, so they may not match your exact expected version.
|
||||
|
||||
|
|
|
@ -13,4 +13,3 @@ or seriously develop one we can land and run internally. While being written fo
|
|||
matcher-cookbook.rst
|
||||
adding-a-check.rst
|
||||
advanced-check-features.rst
|
||||
|
||||
|
|
|
@ -5,14 +5,14 @@ Matcher Cookbook
|
|||
|
||||
This page is designed to be a selection of common ingredients to a more complicated matcher.
|
||||
|
||||
.. list-table::
|
||||
.. list-table::
|
||||
:widths: 35 65
|
||||
:header-rows: 1
|
||||
:class: matcher-cookbook
|
||||
|
||||
* - Desired Outcome
|
||||
- Syntax
|
||||
* - Ignore header files
|
||||
* - Ignore header files
|
||||
|
||||
*If you have an #include in your example code, your matcher may match things in the header files.*
|
||||
- Add **isExpansionInMainFile()** to the matcher. e.g.
|
||||
|
@ -20,4 +20,4 @@ This page is designed to be a selection of common ingredients to a more complica
|
|||
``m functionDecl(isExpansionInMainFile())``
|
||||
|
||||
|
||||
*More coming*
|
||||
*More coming*
|
||||
|
|
|
@ -47,7 +47,7 @@ If you *need* to specify a narrowing matcher (because it's a required argument t
|
|||
Traversal Matchers
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Traversal Matchers *also* can be thought of as adjectives - at least most of them. They also describe a specific node, but the difference from a narrowing matcher is that the scope of the description is broader than the individual node. A narrowing matcher says something about the node in isolation (e.g. the number of arguments it has) while a traversal matcher says something about the node's contents or place in the program.
|
||||
Traversal Matchers *also* can be thought of as adjectives - at least most of them. They also describe a specific node, but the difference from a narrowing matcher is that the scope of the description is broader than the individual node. A narrowing matcher says something about the node in isolation (e.g. the number of arguments it has) while a traversal matcher says something about the node's contents or place in the program.
|
||||
|
||||
Again, the `the documentation <https://clang.llvm.org/docs/LibASTMatchersReference.html#traversal-matchers>`_ is the best place to explore and understand these, but here is a simple example for the traversal matcher ``hasArraySize()``:
|
||||
|
||||
|
@ -56,14 +56,14 @@ Again, the `the documentation <https://clang.llvm.org/docs/LibASTMatchersReferen
|
|||
Given:
|
||||
class MyClass { };
|
||||
MyClass *p1 = new MyClass[10];
|
||||
|
||||
|
||||
|
||||
|
||||
cxxNewExpr()
|
||||
matches the expression 'new MyClass[10]'.
|
||||
|
||||
|
||||
cxxNewExpr(hasArraySize(integerLiteral(equals(9))))
|
||||
does not match anything
|
||||
|
||||
|
||||
cxxNewExpr(hasArraySize(integerLiteral(equals(10))))
|
||||
matches the expression 'new MyClass[10]'.
|
||||
|
||||
|
@ -86,10 +86,10 @@ As an example of the above, below is a sample iterative development process of a
|
|||
|
||||
int add1(int a, int b) { return a + b; }
|
||||
int add2(int c, int d = 8) { return c + d; }
|
||||
|
||||
|
||||
int main() {
|
||||
int x, y, z;
|
||||
|
||||
|
||||
add1(x, y); // <- No match, no assignment
|
||||
add1(3 + 4, y); // <- No match, no assignment
|
||||
add1(z = x, y); // <- No match, assignment, but not an integer literal
|
||||
|
@ -106,12 +106,12 @@ Here is the iterative development process:
|
|||
// Step 1: Find all the function calls
|
||||
m callExpr()
|
||||
// Matches all calls, as expected.
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 2: Start refining based on the arguments to the call
|
||||
m callExpr(forEachArgumentWithParam()))
|
||||
// Error: forEachArgumentWithParam expects two parameters
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 3: Figure out the syntax to matching all the calls with this new operator
|
||||
m callExpr(
|
||||
|
@ -121,78 +121,78 @@ Here is the iterative development process:
|
|||
)
|
||||
)
|
||||
// Matches all calls, as expected
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 4: Find the calls with a binary operator of any kind
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(),
|
||||
binaryOperator(),
|
||||
anything()
|
||||
)
|
||||
)
|
||||
// Does not match the first call, but matches the others
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 5: Limit the binary operator to assignments
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(isAssignmentOperator()),
|
||||
binaryOperator(isAssignmentOperator()),
|
||||
anything()
|
||||
)
|
||||
)
|
||||
// Now matches the final three calls
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 6: Starting to refine matching the right-hand of the assignment
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(
|
||||
allOf(
|
||||
isAssignmentOperator(),
|
||||
isAssignmentOperator(),
|
||||
hasRHS()
|
||||
)),
|
||||
)),
|
||||
anything()
|
||||
)
|
||||
)
|
||||
// Error, hasRHS expects a parameter
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 7:
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(
|
||||
allOf(
|
||||
isAssignmentOperator(),
|
||||
isAssignmentOperator(),
|
||||
hasRHS(anything())
|
||||
)),
|
||||
)),
|
||||
anything()
|
||||
)
|
||||
)
|
||||
// Okay, back to matching the final three calls
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 8: Refine to just integer literals
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(
|
||||
allOf(
|
||||
isAssignmentOperator(),
|
||||
isAssignmentOperator(),
|
||||
hasRHS(integerLiteral())
|
||||
)),
|
||||
)),
|
||||
anything()
|
||||
)
|
||||
)
|
||||
// Now we match the final two calls
|
||||
|
||||
|
||||
//-------------------------------------
|
||||
// Step 9: Apply a restriction to the parameter definition
|
||||
m callExpr(
|
||||
forEachArgumentWithParam(
|
||||
binaryOperator(
|
||||
allOf(
|
||||
isAssignmentOperator(),
|
||||
isAssignmentOperator(),
|
||||
hasRHS(integerLiteral())
|
||||
)),
|
||||
)),
|
||||
hasDefaultArgument()
|
||||
)
|
||||
)
|
||||
|
|
|
@ -171,4 +171,3 @@ Discussion is best started on the `dev-builds mailing
|
|||
list <https://lists.mozilla.org/listinfo/dev-builds>`__. Questions are
|
||||
best raised in `#build <https://chat.mozilla.org/#/room/#build:mozilla.org>`__ on `Matrix <https://chat.mozilla.org/>`__. Please
|
||||
file bugs in *Firefox Build System :: General*, blocking `Bug 901840 <https://bugzilla.mozilla.org/show_bug.cgi?id=901840>`__
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
.. include:: ../../build/buildsystem/supported-configurations.rst
|
||||
.. include:: ../../build/buildsystem/supported-configurations.rst
|
||||
|
|
|
@ -144,7 +144,7 @@ Dealing with test failures
|
|||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If a build or a test job fails, you can click on the red or orange or
|
||||
purple symbol for the job on Treeherder to display more information.
|
||||
purple symbol for the job on Treeherder to display more information.
|
||||
The information will appear in the footer, including a summary of any
|
||||
error messages, a "+" icon to re-trigger the job (schedule it to run
|
||||
again), and links to the log files and to possibly-related bugs.
|
||||
|
|
|
@ -74,7 +74,7 @@ Capture a minidump in a graphical way
|
|||
|
||||
|WinDbg in Start Menu|
|
||||
|
||||
#. Connect Firefox to the debugger.
|
||||
#. Connect Firefox to the debugger.
|
||||
|
||||
a. If Firefox is not already running, open the **"File"** menu on WinDbg
|
||||
and choose **"Open Executable..."**. In the file chooser window that
|
||||
|
@ -257,4 +257,3 @@ of "Application Binary".
|
|||
|
||||
.. |WinDbg in Start Menu| image:: img/windbg-in-startmenu.png
|
||||
:width: 50%
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@ you have to set a breakpoint you can set a breakpoint in ``_dl_open``.
|
|||
This function is called when a new library is loaded, when you can
|
||||
finally set your breakpoint.
|
||||
|
||||
How do I set a breakpoint when a component is loaded?
|
||||
How do I set a breakpoint when a component is loaded?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In Firefox Version 57 (and possibly earlier) XPCOM_BREAK_ON_LOAD does
|
||||
|
@ -144,7 +144,7 @@ One suggestion is this:
|
|||
$47 = {114, 100, 102, 58, 110, 117, 108, 108, 0, 0, 8, 0, 0, 0, 37432,
|
||||
16514}
|
||||
|
||||
|
||||
|
||||
|
||||
.. code::
|
||||
|
||||
|
@ -284,7 +284,7 @@ JS stack in addition to the C++ stack.
|
|||
|
||||
.. code::
|
||||
|
||||
(gdb) call DumpJSStack()
|
||||
(gdb) call DumpJSStack()
|
||||
|
||||
See `https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/Debugging_JavaScript <https://developer.mozilla.org/en-US/docs/Mozilla/Debugging/Debugging_JavaScript>`__
|
||||
for more JS debugging tricks.
|
||||
|
@ -499,5 +499,3 @@ See also
|
|||
- Copyright Information: © 1998-2008 by individual mozilla.org
|
||||
contributors; content available under a `Creative Commons
|
||||
license <https://www.mozilla.org/foundation/licensing/website-content.html>`__
|
||||
|
||||
|
||||
|
|
|
@ -409,7 +409,7 @@ There are two ways to work around this problem:
|
|||
|
||||
symchk.exe /r C:\windows\SysWOW64\ /s "SRV*<your cache symbols directory>\MicrosoftPublicSymbols*http://msdl.microsoft.com/download/symbols"
|
||||
|
||||
|
|
||||
|
|
||||
| Note the "``\MicrosoftPublicSymbols``" appended to the cache
|
||||
directory configured in Visual Studio.
|
||||
|
||||
|
@ -429,7 +429,7 @@ debugging the program crashes with an Access Violation, you may be
|
|||
hitting a Windows bug relating to AVX support. For more details,
|
||||
including a work-around see `this blog
|
||||
post <http://www.os2museum.com/wp/?p=960>`__ or `this social.msdn
|
||||
thread <http://social.msdn.microsoft.com/Forums/vstudio/en-US/392ca62c-e502-42d9-adbc-b4e22d5da0c3/jit-debugging-32bit-app-crashing-with-access-violation>`__.
|
||||
thread <http://social.msdn.microsoft.com/Forums/vstudio/en-US/392ca62c-e502-42d9-adbc-b4e22d5da0c3/jit-debugging-32bit-app-crashing-with-access-violation>`__.
|
||||
(And just in-case those links die, the work-around is to execute
|
||||
|
||||
::
|
||||
|
|
|
@ -105,7 +105,7 @@ simple commit message should look like this:
|
|||
|
||||
Bug 123456 - Change this thing to work better by doing something. r=reviewers
|
||||
|
||||
The ``r=reviewers`` part is optional; if you are using Phabricator,
|
||||
The ``r=reviewers`` part is optional; if you are using Phabricator,
|
||||
Lando will add it automatically based on who actually granted review,
|
||||
and in any case the person who does the final check-in of the patch will
|
||||
make sure it's added.
|
||||
|
@ -113,7 +113,7 @@ make sure it's added.
|
|||
The text of the message should be what you did to fix the bug, not a
|
||||
description of what the bug was. If it is not obvious why this change is
|
||||
appropriate, then `explain why in the commit
|
||||
message <https://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview/commits.html#write-detailed-commit-messages>`__.
|
||||
message <https://mozilla-version-control-tools.readthedocs.io/en/latest/mozreview/commits.html#write-detailed-commit-messages>`__.
|
||||
If this does not fit on one line, then leave a blank line and add
|
||||
further lines for more detail and/or reasoning.
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ development process and source code documentation.
|
|||
.. toctree::
|
||||
:caption: Additional Information
|
||||
:maxdepth: 1
|
||||
|
||||
|
||||
directory_structure
|
||||
build/artifact_builds
|
||||
build/building_mobile_firefox
|
||||
|
|
|
@ -152,7 +152,7 @@ Merge Day Nightly W1 Monday Day 1 of th
|
|||
`PI Request <pi request>` deadline Nightly W1 Friday Manual QA request deadline for high risk features
|
||||
Feature technical documentation due Nightly W2 Friday Deadline for features requiring manual QA
|
||||
Beta release notes draft Nightly W4 Wednesday
|
||||
Nightly features Go/No-Go decisions Nightly W4 Wednesday
|
||||
Nightly features Go/No-Go decisions Nightly W4 Wednesday
|
||||
Feature Complete Milestone Nightly W4 Wednesday Last day to land risky patches and/or enable new features
|
||||
Nightly soft code freeze start Nightly W4 Thursday Stabilization period in preparation to merge to Beta
|
||||
String freeze Nightly W4 Thursday Modification or deletion of strings exposed to the end-users is not allowed
|
||||
|
@ -430,5 +430,3 @@ number of different "trains" on a regular schedule.
|
|||
**Uplift** - the action of taking parts from a newer version of a
|
||||
software system (mozilla-central or mozilla-beta) and porting them to an
|
||||
older version of the same software (mozilla-beta or mozilla-release)
|
||||
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ Using Mercurial bundles
|
|||
|
||||
If you are worried that your Internet connection is not fast or robust
|
||||
enough to download such a large amount of data all in one go without
|
||||
being interrupted and cannot clone using the command given above, then you are recommended to try :ref:`Mercurial bundles <Mercurial bundles>`. If interrupted, they can be resumed (continued without downloading
|
||||
being interrupted and cannot clone using the command given above, then you are recommended to try :ref:`Mercurial bundles <Mercurial bundles>`. If interrupted, they can be resumed (continued without downloading
|
||||
from the beginning) if the app you're using to download supports it. For
|
||||
example, in Firefox you would right click on the download and select
|
||||
`Resume` once your connection to the Internet was reestablished.
|
||||
|
|
|
@ -45,7 +45,7 @@ Firefox Source Tree Documentation
|
|||
{l10n_doc}
|
||||
|
||||
.. toctree::
|
||||
:caption: Firefox and Python
|
||||
:caption: Firefox and Python
|
||||
:maxdepth: 1
|
||||
|
||||
{python_doc}
|
||||
|
|
|
@ -40,7 +40,7 @@ In NSPR, a new socket returned by <tt>PR_NewTCPSocket()</tt> or
|
|||
make the new socket nonblocking by using <tt>PR_SetSockOpt()</tt> as in
|
||||
the example below (error checking is omitted for clarity):
|
||||
|
||||
|
|
||||
|
|
||||
| <tt>PRFileDesc \*sock;</tt>
|
||||
| **<tt>PRIntn optval = 1;</tt>**
|
||||
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче