Commit Graph

4396 Commits

Author SHA1 Message Date
Boris Zbarsky
764cd472b6 Bug 1445710. Reduce codesize a bit by removing DOM DefineInterfaceObject methods. r=peterv
MozReview-Commit-ID: 6JRYz4FV9vP
2018-04-04 15:32:19 -04:00
Boris Zbarsky
b808305604 Bug 1450182. Remove the EventListenerWasAdded/Removed hooks from DOMEventTargetHelper. r=smaug
MozReview-Commit-ID: GWnAvK61hVT
2018-04-04 15:32:19 -04:00
Boris Zbarsky
2c63cffb46 Bug 1447454. Stop allowing implicit downcasts in StrongOrRawPtr. r=peterv
MozReview-Commit-ID: BSXp3ThY1dC
2018-04-04 15:32:19 -04:00
Boris Zbarsky
aa63116f80 Bug 1085062 followup. Actually address the review comments. r=peterv 2018-04-04 14:43:41 -04:00
Boris Zbarsky
fe15e92e6b Bug 1085062. Remove hasXPConnectImpls support from bindings codegen. r=peterv 2018-04-04 14:39:52 -04:00
Boris Zbarsky
419465b581 Bug 1085061. Remove the hasXPConnectImpls flag from EventTarget. r=peterv
This is the behavior change.  The cleanup will be in bug 1085062.
2018-04-04 14:39:48 -04:00
Xidorn Quan
67fd806b66 Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio
This patch does the following things:
* Create a new class ServoFontFaceRule for CSSOM of @font-face rule
  which mostly follows how nsCSSFontFaceRule was implemented.
* Remove the old nsCSSFontFaceRule and binding code to create it.
* Have FontFace backed by Servo data via making mRule and mDescriptors
  of the class hold RawServoFontFaceRule like ServoFontFaceRule.

To keep this patch small, it effectively just delays the conversion
from Servo data to nsCSSValue from parsing to using. This may cause
worse performance if the font set is flushed repeatedly. Supposing we
don't flush font set very frequently, it may not be a big deal.

We may still want to remove the intermediate nsCSSValue conversion at
some point, and have everything converted to their final form directly
when used, but that can happen in followups.

There are some unfortunate bits from this change:
* We lose style sheet for logging in FontFaceSet. This is probably not
  all that worse, because we wouldn't have that before either if the
  page doesn't use CSSOM to visit it. But we should figure out some
  approach to fix it anyway.
* InspectorFontFace no longer shares the same rule object as CSSOM.
  This isn't really a problem if the @font-face rule isn't very mutable.
  Unless we want to make the rule returned from InspectorFontFace to be
  mutable (i.e. via inspector), not using the same object probably isn't
  too bad.

This patch switches the code we use to serialize stuff in FontFace and
CSSFontFaceRule, which leads to some failures in tests. Specifically,
the expected changes including:
* Value of font-family now can be serialized to identifier sequence like
  font-family property. The old code always serializes it to string,
  but it doesn't seem to have different requirement than the property.
  Blink can serialize to identifier as well.
* Family name inside local() is also changed to use the same way as
  family names elsewhere (i.e. can be identifier sequence). Blink has
  the same behavior as the old code, but I don't think it's a big deal.
* The order of descriptors serialized gets changed. I don't think it
  matters at all.
* Empty string as font-family via using string syntax is no longer
  considered invalid for FontFace. I don't find it is mentioned anywhere
  that it should be specifically treated invalid.


MozReview-Commit-ID: 32Fk3Fi9uTs

--HG--
extra : rebase_source : 6221ec8fc56de357b06dd27e770fb175348a2f77
2018-04-04 08:42:10 +10:00
Boris Zbarsky
1ce7e994ba Bug 1450149. Mark Prefable arrays const in bindings codegen. r=qdot 2018-04-03 00:42:40 -04:00
Tom Ritter
449237fc51 Bug 1378552 - Reduce the liklihood of inadvertently misusing NullPrincipal::Create(). r=ckerschb
NullPrincipal::Create() (will null OA) may cause an OriginAttributes bypass.
We change Create() so OriginAttributes is no longer optional, and rename
Create() with no arguments to make it more explicit about what the caller is doing.

MozReview-Commit-ID: 7DQGlgh1tgJ
2018-03-22 13:36:20 -05:00
Boris Zbarsky
4373a04574 Bug 1446246 part 2. Combine HTMLConstructor and CreateXULOrHTMLElement into a single function. r=peterv
This fixes an observable bug we had due to doing the steps in a different order
from the spec: the 'prototype' get can have side-effects so needs to happen
after some of the other sanity checks.

MozReview-Commit-ID: 83zNhqfqFRu
2018-03-27 15:49:02 -04:00
Boris Zbarsky
753e5af2f1 Bug 1446246 part 1. Use a single handwritten HTMLConstructor implementation, instead of code-generating lots of very similar implementations. r=peterv
The codegen changes are mostly a backout of the changes made in bug 1274159.

The HTMLConstructor implementation is mostly copied from one of the
code-generated ones, with a few modifications:

* Derive the interface name from the proto id instead of hardcoding it.
* Use the proto/constructor ids to get constructor and prototype objects.
* Use ErrorResult instead of FastErrorResult; we don't want the precedent of
  using FastErrorResult in non-generated code.

There will be further changes to combine HTMLConstructor and
CreateXULOrHTMLElement, in a separate changeset.

MozReview-Commit-ID: 44D0qw23ioP
2018-03-27 15:49:02 -04:00
Tom Schuster
2bf6212869 Bug 1255800 - Remove JS_THIS_OBJECT from dom/xpconnect. r=bz
--HG--
extra : rebase_source : dcaa891010e25e10079db853fe4eb1a7fe261e47
2018-03-07 14:35:22 +01:00
Boris Zbarsky
17509bc9da Bug 1449019. Actually propagate out exceptions from the innerHTML getter. r=smaug
I moved the IgnoreErrors decl so it would come after the OOMReporter decl and I
could add the new conversion operator.

MozReview-Commit-ID: B1S6DXmZfvE
2018-03-26 16:41:43 -04:00
Coroiu Cristina
f7507f7dd5 Merge mozilla-central to inbound a=merge on a CLOSED TREE 2018-03-27 01:33:50 +03:00
Nicholas Nethercote
bac452f9ad Bug 1411469 - Statically allocate static atoms. r=froydnj
Currently static atoms are stored on the heap, but their char buffers are
stored in read-only static memory.

This patch changes the representation of nsStaticAtom (thus making it a
non-trivial subclass of nsAtom). Instead of a pointer to the string, it now has
an mStringOffset field which is a 32-bit offset to the string. (This requires
placement of the string and the atom within the same object so that the offset
is known to be small. The docs and macros in nsStaticAtom.h handle that.)

Static and dynamic atoms now store their chars in different ways: nsStaticAtom
stores them inline, nsDynamicAtom has a pointer to separate storage. So
`mString` and GetStringBuffer() move from nsAtom to nsDynamicAtom.

The change to static atoms means they can be made constexpr and stored in
read-only memory instead of on the heap. On 64-bit this reduces the per-process
overhead by 16 bytes; on 32-bit the saving is 12 bytes. (Further reductions
will be possible in follow-up patches.)

The increased use of constexpr required multiple workarounds for MSVC.
- Multiple uses of MOZ_{PUSH,POP}_DISABLE_INTEGRAL_CONSTANT_OVERFLOW_WARNING to
  disable warnings about (well-defined!) overflow of unsigned integer
  arithmetic.
- The use of -Zc:externConstexpr on all files defining static atoms, to make
  MSVC follow the C++ standard(!) and let constexpr variables have external
  linkage.
- The use of -constexpr:steps300000 to increase the number of operations
  allowed in a constexpr value, in order to handle gGkAtoms, which requires
  hashing ~2,500 atom strings.

The patch also changes how HTML5 atoms are handled. They are now treated as
dynamic atoms, i.e. we have "dynamic normal" atoms and "dynamic HTML5 atoms",
and "dynamic atoms" covers both cases, and both are represented via
nsDynamicAtom. The main difference between the two kinds is that dynamic HTML5
atoms still aren't allowed to be used in various operations, most notably
AddRef()/Release(). All this also required moving nsDynamicAtom into the header
file.

There is a slight performance cost to all these changes: now that nsStaticAtom
and nsDynamicAtom store their chars in different ways, a conditional branch is
required in the following functions: Equals(), GetUTF16String(),
WeakAtom::as_slice().

Finally, in about:memory the "explicit/atoms/static/atom-objects" value is no
longer needed, because that memory is static instead of heap-allocated.

MozReview-Commit-ID: 4AxPv05ngZy
2018-03-26 11:18:31 +02:00
L. David Baron
1da1c4f2be Bug 1448138 - Rename string DataFlags::SHARED to REFCOUNTED to make it clearer to those reading the code. r=erahm
MozReview-Commit-ID: 1mJuwY5dQkj

--HG--
extra : transplant_source : %B8%97%C2%AAa%A6%3D%E3%AC%9C%C1%15%99%FE%94%1A%E2K%81%F1
2018-03-23 17:31:37 -07:00
Margareta Eliza Balazs
190225b29c Backed out changeset 794ee6857d83 (bug 1421070) for 15 failures in toolkit/components/payments/test/mochitest/test_ObservedPropertiesMixin.html on a CLOSED TREE
--HG--
extra : amend_source : 0574ce1b5b6a6e8735245684eb8e9ec7b0ac2647
2018-03-23 03:42:25 +02:00
Dave Townsend
c70f34995e Bug 1421070: Always enable custom elements in chrome. r=smaug, rs=MattN
This allows custom elements to work in any document in the parent process that
allows XUL and XBL. The test takes the easy option of moving the existing XUL
custom element test to a run with the custom element pref disabled.

MozReview-Commit-ID: CMiLzmp60jA

--HG--
extra : rebase_source : 735688061116c633b816f4f9d488712408df11a5
extra : source : 794ee6857d83dfe0b18629c12e96a622fc899586
2017-10-20 11:02:33 -07:00
Boris Zbarsky
a245fdf72d Bug 1448397. Make WebIDL QueryInterface chrome-only. r=qdot 2018-03-26 13:35:04 -04:00
Dave Townsend
2626e1c261 Bug 1421070: Always enable custom elements in chrome. r=smaug
This allows custom elements to work in any document in the parent process that
allows XUL and XBL. The test takes the easy option of moving the existing XUL
custom element test to a run with the custom element pref disabled.

MozReview-Commit-ID: CMiLzmp60jA

--HG--
extra : rebase_source : b9632de82cf79c1df15be09fadf1d25817c8a894
extra : amend_source : 235a76453d1d6782903d5051ee8e234b965dcc36
2017-10-20 11:02:33 -07:00
Boris Zbarsky
35d4bc91ec Bug 1444143 part 13. Remove nsIFrameLoader. r=mystor
MozReview-Commit-ID: 4LG8nIePsMH
2018-03-21 22:43:17 -04:00
Peter Van der Beken
e673e5f508 Bug 888600 - Move ContentFrameMessageManager to WebIDL. Part 5: Convert MessageManager globals to WebIDL. r=bz.
The change in browser_net_view-source-debugger.js is needed because we now use WebIDL callbacks for MessageListener, and they add async creation stack frames.

--HG--
extra : rebase_source : 0adb349b40a0c51bb3d8f4b9b7d98106a3929cbd
extra : source : a88d94ec010a12c1d829708aaf59a85609478477
2017-07-19 14:59:02 +02:00
Peter Van der Beken
5ad9618d7c Bug 888600 - Move ContentFrameMessageManager to WebIDL. Part 4: Convert MessageManager to WebIDL. r=bz.
--HG--
extra : rebase_source : aa7aa3a5f720b5a4f6ff88e41eb9e80ffb9092cd
2017-06-20 11:09:50 +02:00
Boris Zbarsky
f406b29197 Bug 888600 - Move ContentFrameMessageManager to WebIDL. Part 1a: Make PinnedStringId constructor constexpr. r=Waldo/froydnj.
--HG--
extra : rebase_source : 0ed87197f6740b74648fc5107bd6fb4e7409cdfa
2018-03-07 21:50:24 +01:00
Peter Van der Beken
ef631ce856 Bug 888600 - Move ContentFrameMessageManager to WebIDL. Part 1: Add infrastructure to expose 'system' names on a WebIDL global. r=bz.
--HG--
extra : rebase_source : 70d3a641c60968e013f048e6be91f07641e7b81b
2017-07-19 15:04:14 +02:00
Daniel Holbert
ac637fa79e Bug 1447420: Give CallbackObject.cpp an include for nsContentUtils.h (whose methods it calls). r=baku
MozReview-Commit-ID: 84cktBhkUOd

--HG--
extra : rebase_source : 1d03ce470c749e675e8afb9cd0ffe0cce686c109
2018-03-20 12:18:20 -07:00
Boris Zbarsky
971ee6f9cb Bug 1446533 part 2. Rename nsGenericDOMDataNode.{h,cpp} to CharacterData. r=mystor
The DOMMatrix.cpp changes are because it was sneaking in headers via another
unified file.

MozReview-Commit-ID: GPp9WOywI5D

--HG--
rename : dom/base/nsGenericDOMDataNode.cpp => dom/base/CharacterData.cpp
rename : dom/base/nsGenericDOMDataNode.h => dom/base/CharacterData.h
2018-03-19 15:18:07 -04:00
Boris Zbarsky
b06aa7e061 Bug 1446533 part 1. Rename nsGenericDOMDataNode to CharacterData. r=mystor
This is not renaming the files yet; that will be a separate changeset.

MozReview-Commit-ID: 5TxkEiQlaKF
2018-03-19 15:18:06 -04:00
Andrea Marchesini
6f7a4bfd5d Bug 1445199 - Remove JSContext parameter in worker NotifyHolder, r=smaug 2018-03-13 15:25:50 +01:00
Narcis Beleuzu
298d1d55b5 Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-03-13 12:36:54 +02:00
Emilio Cobos Álvarez
98e6994aaf Bug 1444416: Make bindings generate appropriate MOZ_KnownLive wrappers. r=bz
MozReview-Commit-ID: DBmgwNYVjTM

--HG--
extra : rebase_source : a0866d03686d5ca8aabd954014bf8abb89a419d9
2018-03-09 21:21:59 +01:00
Andrea Marchesini
5784769019 Bug 1443079 - nsScriptError.isFromPrivateWindow must match the correct value also in e10s mode, r=smaug 2018-03-13 06:40:38 +01:00
Boris Zbarsky
ae49ae4bef Bug 1444586. Fix the signatures of some binding test methods. r=qdot
MozReview-Commit-ID: EeuowmJxwt
2018-03-13 00:59:24 -04:00
Boris Zbarsky
aa3ff36ffc Bug 1444880. Stop including jsfriendapi.h in PrototypeList.h. r=mccr8
This way we don't include it in all the binding headers.  We only need
jsfriendapi.h for the static_asserts involving JSJitInfo, so we move those to
PrototypeList.cpp.

MozReview-Commit-ID: 7KOmbjwSBOD
2018-03-13 00:59:23 -04:00
Boris Zbarsky
272ace7ae2 Bug 1444286. Common up the Get*ObjectHandle methods in bindings. r=peterv
This reduces codesize, at the cost of a bit more includes in the binding headers.

MozReview-Commit-ID: 40dLELF36Oh
2018-03-09 16:04:11 -05:00
Nicholas Nethercote
8ac9830be0 Bug 1444031 - Rename Is{Static,Dynamic,HTML5}Atom. r=froydnj
By removing the "Atom" suffix, which is redundant.

MozReview-Commit-ID: 4MCX9Icfjrw

--HG--
extra : rebase_source : c3c759a508a8938b59d36dbb20448d2964b98c91
2018-03-07 15:17:34 +11:00
Kris Maglione
444be7c1c2 Bug 1442931: Part 1 - Forbid web-visible interfaces outside of WebIDL root. r=mystor
Web-visible WebIDL interfaces require DOM peer review with every change, which
is enforced by a commit hook. ChromeOnly interfaces are not exposed to the
web, and therefore don't require the same strictures.

The current commit hook enforces the review requirement for changes to any
(non-Servo) WebIDL file, and is not smart enough to determine if the change is
web-visible. In order to loosen that restriction, we need the build system to
enforce the requirement that only WebIDL files in certain locations may
contain web-visible interfaces, so that the commit hook can restrict itself to
checking only those directories.

This change restricts the location of web-visible WebIDL interfaces to the
dom/webidl/ and dom/bindings/ roots (along with the corresponding objdir root
for generated interfaces). A follow-up will change the commit hook to only
enforce review requirements on these directories.

MozReview-Commit-ID: CiDxXxN4oO4

--HG--
extra : rebase_source : d836004da9f2def74e7c8cd5d580db2290a938d4
extra : intermediate-source : 608e21fcd1674dae3f8b685cedab85c43ffdb485
extra : source : 6cb20ada1a0aa1f6d621ba3c85ce9946a6f9841f
2018-03-05 14:21:38 -08:00
Andreea Pavel
01d4e4cfa4 Backed out 2 changesets (bug 1442931) for build bustages at ..\dom\bindings\mozwebidlcodegen\test\test_mozwebidlcodegen.py::TestWebIDLCodegenManager::test_copy_input on a CLOSED TREE
Backed out changeset 9f46e7d52b9b (bug 1442931)
Backed out changeset 608e21fcd167 (bug 1442931)

--HG--
rename : dom/chrome-webidl/ChannelWrapper.webidl => dom/webidl/ChannelWrapper.webidl
rename : dom/chrome-webidl/ChromeUtils.webidl => dom/webidl/ChromeUtils.webidl
rename : dom/chrome-webidl/DominatorTree.webidl => dom/webidl/DominatorTree.webidl
rename : dom/chrome-webidl/HeapSnapshot.webidl => dom/webidl/HeapSnapshot.webidl
rename : dom/chrome-webidl/InspectorUtils.webidl => dom/webidl/InspectorUtils.webidl
rename : dom/chrome-webidl/MatchGlob.webidl => dom/webidl/MatchGlob.webidl
rename : dom/chrome-webidl/MatchPattern.webidl => dom/webidl/MatchPattern.webidl
rename : dom/chrome-webidl/MozStorageAsyncStatementParams.webidl => dom/webidl/MozStorageAsyncStatementParams.webidl
rename : dom/chrome-webidl/MozStorageStatementParams.webidl => dom/webidl/MozStorageStatementParams.webidl
rename : dom/chrome-webidl/MozStorageStatementRow.webidl => dom/webidl/MozStorageStatementRow.webidl
rename : dom/chrome-webidl/PrecompiledScript.webidl => dom/webidl/PrecompiledScript.webidl
rename : dom/chrome-webidl/PromiseDebugging.webidl => dom/webidl/PromiseDebugging.webidl
rename : dom/chrome-webidl/StructuredCloneHolder.webidl => dom/webidl/StructuredCloneHolder.webidl
rename : dom/chrome-webidl/WebExtensionContentScript.webidl => dom/webidl/WebExtensionContentScript.webidl
rename : dom/chrome-webidl/WebExtensionPolicy.webidl => dom/webidl/WebExtensionPolicy.webidl
2018-03-07 08:53:06 +02:00
Kris Maglione
c8a6abe11d Bug 1442931: Part 1 - Forbid web-visible interfaces outside of WebIDL root. r=mystor
Web-visible WebIDL interfaces require DOM peer review with every change, which
is enforced by a commit hook. ChromeOnly interfaces are not exposed to the
web, and therefore don't require the same strictures.

The current commit hook enforces the review requirement for changes to any
(non-Servo) WebIDL file, and is not smart enough to determine if the change is
web-visible. In order to loosen that restriction, we need the build system to
enforce the requirement that only WebIDL files in certain locations may
contain web-visible interfaces, so that the commit hook can restrict itself to
checking only those directories.

This change restricts the location of web-visible WebIDL interfaces to the
dom/webidl/ and dom/bindings/ roots (along with the corresponding objdir root
for generated interfaces). A follow-up will change the commit hook to only
enforce review requirements on these directories.

MozReview-Commit-ID: CiDxXxN4oO4

--HG--
extra : source : 6cb20ada1a0aa1f6d621ba3c85ce9946a6f9841f
extra : histedit_source : 1f02888264a936db3e77134c0a7203e911707312%2C6ea38c077b8a7dfaf358bc819d150a20db9bd6b7
2018-03-05 14:21:38 -08:00
Kris Maglione
27f4fb5abd Backed out two changesets (bug 1442931) for Windows build bustage
MozReview-Commit-ID: EAP1dIdvd8g

--HG--
extra : histedit_source : 0848dcd64f0e1cccaf9ce2c5faa08509990cfade%2Cd100c0c3dfca8b92f9cd1fda1b126a0d2f8a47cd
2018-03-06 20:47:41 -08:00
Kris Maglione
d047164a17 Bug 1442931: Part 1 - Forbid web-visible interfaces outside of WebIDL root. r=mystor
Web-visible WebIDL interfaces require DOM peer review with every change, which
is enforced by a commit hook. ChromeOnly interfaces are not exposed to the
web, and therefore don't require the same strictures.

The current commit hook enforces the review requirement for changes to any
(non-Servo) WebIDL file, and is not smart enough to determine if the change is
web-visible. In order to loosen that restriction, we need the build system to
enforce the requirement that only WebIDL files in certain locations may
contain web-visible interfaces, so that the commit hook can restrict itself to
checking only those directories.

This change restricts the location of web-visible WebIDL interfaces to the
dom/webidl/ and dom/bindings/ roots (along with the corresponding objdir root
for generated interfaces). A follow-up will change the commit hook to only
enforce review requirements on these directories.

MozReview-Commit-ID: CiDxXxN4oO4

--HG--
extra : rebase_source : f61b33ae4c973b1c9ec1423bb9baca59725e44b1
2018-03-05 14:21:38 -08:00
Zibi Braniecki
8313ce3a74 Bug 1363862 - Add Node.localize API as a fast-path for Fluent DOM localization. r=baku
MozReview-Commit-ID: 6mj0q21Nbey

--HG--
extra : rebase_source : 3da2ba3b712f4708f57cc859c28e3dd996208ca5
2018-02-21 14:07:53 -08:00
Kannan Vijayan
627eb6ae9a Bug 1411415 - r=bz r=fitzgen 2018-03-05 19:27:02 -05:00
Olli Pettay
2439836b37 Bug 1193394 - Part 1: Microtasks and promises scheduling. r=bevis 2017-11-17 11:01:27 +08:00
Csoregi Natalia
1fd0486e23 Backed out 7 changesets (bug 1193394) for browser-chrome failures on browser_ext_popup_background.js. CLOSED TREE
Backed out changeset 9683f24ff8ec (bug 1193394)
Backed out changeset 0e7140a7c841 (bug 1193394)
Backed out changeset a0e26f6b2784 (bug 1193394)
Backed out changeset 29e1fceaf48d (bug 1193394)
Backed out changeset b8632bbbd273 (bug 1193394)
Backed out changeset a54ef2d8f896 (bug 1193394)
Backed out changeset 55c94c05c57f (bug 1193394)
2018-03-01 16:29:02 +02:00
Sebastian Hengst
6098a3cc4d merge mozilla-central to mozilla-inbound. CLOSED TREE 2018-03-01 12:29:42 +02:00
Sebastian Hengst
3a10644021 Backed out 6 changesets (bug 888600) for beta simulation failures: build bustage on Linux and Windows opt (bug 1442036) and devtools failure browser_net_view-source-debugger.js (bug 1441961). a=backout
Backed out changeset 83c87140dc3d (bug 888600)
Backed out changeset 2efb9b1753f6 (bug 888600)
Backed out changeset af5303781961 (bug 888600)
Backed out changeset 79ef59047e63 (bug 888600)
Backed out changeset 30d568d628dd (bug 888600)
Backed out changeset c7bd4c6c9741 (bug 888600)

--HG--
extra : histedit_source : 791b22f6770f4fead2f909478a93d65d85829fe0%2Cbb387309e90f53e1dde45dcf8cf4ebedcc6e5c5e
2018-03-01 11:51:09 +02:00
Florian Quèze
c714053d73 Bug 1433175 - scripted patch to replace Components.classes[, Components.interfaces.nsI, Components.utils. and Components.results. with Cc, Ci, Cu and Cr, r=Mossop. 2018-02-28 18:51:33 +01:00
Olli Pettay
b7726493fb Bug 1193394 - Part 1: Microtasks and promises scheduling. r=bevis 2017-11-17 11:01:27 +08:00
Peter Van der Beken
fc804325a9 Bug 888600 - Move ContentFrameMessageManager to WebIDL. Part 5: Convert MessageManager globals to WebIDL. r=bz.
The change in browser_net_view-source-debugger.js is needed because we now use WebIDL callbacks for MessageListener, and they add async creation stack frames.

--HG--
extra : rebase_source : d7c026d8a77634ef2566feba78168beb8a66a552
2017-07-19 14:59:02 +02:00