Commit Graph

679313 Commits

Author SHA1 Message Date
Dzmitry Malyshau
b074f1cf4e Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.
Complementary ecosystem tracker - https://github.com/gfx-rs/wgpu/issues/374

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (postponed as https://bugzilla.mozilla.org/show_bug.cgi?id=1594182)
  - [x] Linux
    - [x] avoid depending on spirv_cross
  - [x] macOS
    - [x] due to cross-compiling shaders
    - [x] need the dependency update
    - [x] stop using gcc
    - [x] unexpected SSL header collision - https://phabricator.services.mozilla.com/D51148
    - [x] undefined Metal symbols
    - [x] missing webrtc headers for IPDL magic - https://phabricator.services.mozilla.com/D51558
    - [x] spirv-cross linking failure in ASAN - https://phabricator.services.mozilla.com/D52688
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet
    - [x] due to some exceptional stuff
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw
    - [x] libbacktrace fails to link on win32 mingw
    - [x] cc mislinking C++ standard library
  - [x] Android
    - [x] spirv-cross fails to build due to exceptions

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458

--HG--
rename : dom/webgpu/Adapter.cpp => dom/webgpu/ipc/WebGPUTypes.h
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/ash/Cargo.toml
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/atom/Cargo.toml
rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/cocoa/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/cocoa/LICENSE-MIT
rename : third_party/rust/core-graphics/src/lib.rs => third_party/rust/cocoa/src/lib.rs
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/colorful/Cargo.toml
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/copyless/Cargo.toml
rename : third_party/rust/crossbeam-utils/.cargo-checksum.json => third_party/rust/crossbeam-utils-0.6.5/.cargo-checksum.json
rename : third_party/rust/crossbeam-utils/CHANGELOG.md => third_party/rust/crossbeam-utils-0.6.5/CHANGELOG.md
rename : third_party/rust/crossbeam-utils/Cargo.toml => third_party/rust/crossbeam-utils-0.6.5/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/crossbeam-utils-0.6.5/LICENSE-MIT
rename : third_party/rust/crossbeam-utils/README.md => third_party/rust/crossbeam-utils-0.6.5/README.md
rename : third_party/rust/crossbeam-utils/benches/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/benches/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/src/atomic/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/src/atomic/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/src/atomic/mod.rs => third_party/rust/crossbeam-utils-0.6.5/src/atomic/mod.rs
rename : third_party/rust/crossbeam-utils/src/backoff.rs => third_party/rust/crossbeam-utils-0.6.5/src/backoff.rs
rename : third_party/rust/crossbeam-utils/src/cache_padded.rs => third_party/rust/crossbeam-utils-0.6.5/src/cache_padded.rs
rename : third_party/rust/crossbeam-utils/src/lib.rs => third_party/rust/crossbeam-utils-0.6.5/src/lib.rs
rename : third_party/rust/crossbeam-utils/src/thread.rs => third_party/rust/crossbeam-utils-0.6.5/src/thread.rs
rename : third_party/rust/crossbeam-utils/tests/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/tests/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/tests/parker.rs => third_party/rust/crossbeam-utils-0.6.5/tests/parker.rs
rename : third_party/rust/crossbeam-utils/tests/sharded_lock.rs => third_party/rust/crossbeam-utils-0.6.5/tests/sharded_lock.rs
rename : third_party/rust/crossbeam-utils/tests/thread.rs => third_party/rust/crossbeam-utils-0.6.5/tests/thread.rs
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/gfx-auxil/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/gfx-backend-empty/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/hibitset/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/hibitset/LICENSE-MIT
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/metal/LICENSE-MIT
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/range-alloc/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/raw-window-handle/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/relevant/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/relevant/LICENSE-MIT
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/rendy-descriptor/Cargo.toml
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/shared_library/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/shared_library/LICENSE-MIT
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/storage-map/Cargo.toml
rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/x11/Cargo.toml
extra : moz-landing-system : lando
2019-11-13 12:48:33 +00:00
Sebastian Streich
61955bca53 Bug 1594004 - Enable CacheSplit on nightly r=ckerschb,annevk
Differential Revision: https://phabricator.services.mozilla.com/D51815

--HG--
extra : moz-landing-system : lando
2019-11-13 12:11:30 +00:00
Sebastian Streich
0ccaa6de78 Bug 1591932 - Enable Sniffing on No Mime+ XCTO nosniff r=ckerschb
Differential Revision: https://phabricator.services.mozilla.com/D50816

--HG--
extra : moz-landing-system : lando
2019-11-13 12:12:34 +00:00
Andreas Pehrson
67b601ce95 Bug 1594136 - Check for ended track in MediaStreamTrackAudioSourceNode. r=padenot
Depends on D52521

Differential Revision: https://phabricator.services.mozilla.com/D52522

--HG--
extra : moz-landing-system : lando
2019-11-13 13:13:48 +00:00
Andreas Pehrson
7b0025a791 Bug 1594136 - Add crashtest. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D52521

--HG--
extra : moz-landing-system : lando
2019-11-13 13:13:55 +00:00
Gijs Kruitbosch
b5a7317ab9 Bug 1595831 - use StaticPrefs for dom.ipc prefs for ContentParent and the hang monitor code, r=kmag
This additionally turns on dom.ipc.processHangMonitor on non-m-c consumers of gecko, as well as turning off dom.ipc.reportProcessHangs on debug geckoview.

Differential Revision: https://phabricator.services.mozilla.com/D52699

--HG--
extra : moz-landing-system : lando
2019-11-12 21:30:11 +00:00
Narcis Beleuzu
ec2e46ea6b Backed out changeset 4d4982e04e4d (bug 1543156) for xpcshell failures on test_extension_storage_actor.js. CLOSED TREE 2019-11-13 13:36:30 +02:00
Julien Wajsberg
0b49afe020 Bug 1586105 - Request longer timeout for page info tests r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D52696

--HG--
extra : moz-landing-system : lando
2019-11-13 01:08:32 +00:00
Valentin Gosu
54fc67b26e Bug 1596045 - Modernize test_esni_dns_fetch.js and make sure we're not clearing the cache when setting the URI pref r=dragana
When using add_task to schedule the tests, testEsniPushPart2 would always fail.
That's because Bug 1587875 now clears the DNS cache when the network.trr.uri
pref is changed. This is likely intermittent because of task scheduling.
This patch modernizes the test to use add_task and promises, and sets the
network.trr.clear-cache-on-pref-change;true pref so the test performs its
checks properly.

Differential Revision: https://phabricator.services.mozilla.com/D52825

--HG--
extra : moz-landing-system : lando
2019-11-13 10:55:09 +00:00
yulia
1a37847739 Bug 1566141 - implement nullish coalescence in ion monkey r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D51640

--HG--
extra : moz-landing-system : lando
2019-11-12 16:57:39 +00:00
yulia
82de623d51 Bug 1566141 - make baseline work with JSOP code for coalesce r=jorendorff,jandem
Differential Revision: https://phabricator.services.mozilla.com/D51639

--HG--
extra : moz-landing-system : lando
2019-11-12 16:57:21 +00:00
yulia
fe9ead6249 Bug 1566141 - make interpreter work with JSOP code for coalesce r=jorendorff,jandem
Differential Revision: https://phabricator.services.mozilla.com/D51638

--HG--
extra : moz-landing-system : lando
2019-11-12 17:33:55 +00:00
Alexandre Poirot
303ccad30b Bug 1576115 - Expose processes from xpcshell test DebuggerServer. r=jdescottes
With Fission, we expect RootActor.listProcesses to return a list of all process actors.

Differential Revision: https://phabricator.services.mozilla.com/D52646

--HG--
extra : moz-landing-system : lando
2019-11-13 09:51:01 +00:00
Simon Giesecke
28f1dd4c5b Bug 1595750 - Add MakeBackInserter function to create a back-inserting output iterator for nsTArray. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D52685

--HG--
extra : moz-landing-system : lando
2019-11-13 09:06:42 +00:00
Julian Descottes
ae692f9401 Bug 1543156 - Wait for the addon manager to start in DevTools addons xpcshell tests r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D52535

--HG--
extra : moz-landing-system : lando
2019-11-13 09:33:49 +00:00
Sylvestre Ledru
c447280a6c Bug 1562642 - Add some pocket code in the thirdparty code list r=Gijs
Depends on D52593

Differential Revision: https://phabricator.services.mozilla.com/D52594

--HG--
extra : moz-landing-system : lando
2019-11-11 22:19:46 +00:00
Sylvestre Ledru
94a9f2e471 Bug 1562642 - add missing license in layout/style/tools/ r=emilio
Depends on D52592

Differential Revision: https://phabricator.services.mozilla.com/D52593

--HG--
extra : moz-landing-system : lando
2019-11-13 09:27:25 +00:00
Andy Wingo
977d74aede Bug 1595466 - Fix multi-value shuffle of stack values toward SP r=lth
This commit fixes a bug whereby shuffling of stack results toward the
stack pointer was borked.  Just for posterity, here's a wee ASCII art of
how this works in the baseline compiler.  The error came in the last
transition, when shuffling B toward the newly-expanded SP.  The previous
code was simply bogus.

```
      initial        (i32.const A)
       stack    -->  (local.get B)    -> popRegisterResults -> popStackResults
       state         (local.get C)
            _
  |     | | |            | |                | |                   | |
  |     | | stack        | |                | |                   | |
  |     | | height       | |                | |                   | |
  |     | | |            | |                | |                   | |
  |   sp+-+ v            +-+                +-+                   +-+
  |                                         |B|                   |A|
  |                                         +-+                   +-+
  |                                                               |B|
  |                                                               +-+
  |
  V                 nothing pushed       C in %rax;         B shuffled toward
stack               on machine stack;    A still on         %rsp; A materialized
grows               3 values on value    value stack
down                stack
```

Differential Revision: https://phabricator.services.mozilla.com/D52676

--HG--
extra : moz-landing-system : lando
2019-11-12 17:49:10 +00:00
Mirko Brodesser
1ae8f1b996 Bug 1591417: part 4) Adapt InsertTextIntoTextNodeWithTransaction to pass adjusted range to TopLevelEditSubActionDataRef.DidInsertText. r=masayuki
Otherwise, an invalid `EditorRawDOMPoint` was constructed by a test.

Differential Revision: https://phabricator.services.mozilla.com/D52344

--HG--
extra : moz-landing-system : lando
2019-11-13 09:16:06 +00:00
Mirko Brodesser
9997183bdd Bug 1591417: part 3) Add nsTStringRepr<T>::EqualsLatin1. r=froydnj
Needed to compare with `nsTextFragment::Get1b()` which returns latin1-encoded
characters. Used in a subsequent review.

Differential Revision: https://phabricator.services.mozilla.com/D52343

--HG--
extra : moz-landing-system : lando
2019-11-12 15:20:25 +00:00
Mirko Brodesser
c4342625ea Bug 1591417: part 2) Rename HasMutationEventListeners to MaybeHasMutationEventListeners. r=masayuki
After removing all mutation event listeners, the corresponding method
still returns `true`, so the new name is more accurate.

Differential Revision: https://phabricator.services.mozilla.com/D52342

--HG--
extra : moz-landing-system : lando
2019-11-12 15:20:20 +00:00
Mirko Brodesser
e5f7410403 Bug 1591417: part 1) Assert EditorDOMPointBase::ToRawRangeBoundary() uses valid offset. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D52341

--HG--
extra : moz-landing-system : lando
2019-11-12 15:20:13 +00:00
Nicolas Silva
cbf8d97b08 Bug 1594492 - Count the number of color/alpha passes instead of targets in the profiler HUD. r=gw
It's a more useful number since we also report the number of existing and rasterized picture cache tiles.
Also bump the expected number of alpha passes up to 2 since it is rather common.

Differential Revision: https://phabricator.services.mozilla.com/D52134

--HG--
extra : moz-landing-system : lando
2019-11-12 22:52:06 +00:00
Sylvestre Ledru
e7b21d82c2 Bug 1562642 - add missing license in python/l10n/convert_xul_to_fluent r=zbraniecki
Depends on D52590

Differential Revision: https://phabricator.services.mozilla.com/D52591

--HG--
extra : moz-landing-system : lando
2019-11-11 22:45:02 +00:00
Sylvestre Ledru
f66ec35a77 Bug 1562642 - add missing license in netwerk/base/rust-helper/src/lib.rs r=valentin
Depends on D52589

Differential Revision: https://phabricator.services.mozilla.com/D52590

--HG--
extra : moz-landing-system : lando
2019-11-11 21:43:55 +00:00
Sylvestre Ledru
5f7b538ccb Bug 1562642 - add missing license in docshell/resources/content/netError.js r=smaug
Depends on D52588

Differential Revision: https://phabricator.services.mozilla.com/D52589

--HG--
extra : moz-landing-system : lando
2019-11-12 08:26:18 +00:00
Sylvestre Ledru
5c8c384063 Bug 1562642 - add missing license in dom/manifest r=sebastian
Depends on D52585

Differential Revision: https://phabricator.services.mozilla.com/D52588

--HG--
extra : moz-landing-system : lando
2019-11-13 08:26:32 +00:00
Sylvestre Ledru
4d3436d676 Bug 1562642 - add acorn to the list of thirdparty code r=nchevobbe
Depends on D52583

Differential Revision: https://phabricator.services.mozilla.com/D52585

--HG--
extra : moz-landing-system : lando
2019-11-12 06:32:15 +00:00
Sylvestre Ledru
c786684183 Bug 1562642 - add missing license in media/webrtc/signaling/src/sdp/ r=drno
Depends on D52582

Differential Revision: https://phabricator.services.mozilla.com/D52583

--HG--
extra : moz-landing-system : lando
2019-11-11 21:42:41 +00:00
Logan Smyth
f2f4091f50 Bug 1590881 - Remove BreakpointSite .type/asWasm()/asJS() to simplify interface. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D52278

--HG--
extra : moz-landing-system : lando
2019-11-12 17:15:14 +00:00
Logan Smyth
f6d86f1046 Bug 1590874 - Rely on per-WasmInstance WasmBreakpointSite objects. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D52277

--HG--
extra : moz-landing-system : lando
2019-11-11 17:58:29 +00:00
Andi-Bogdan Postelnicu
a4b03d3e1f Bug 1406309 - add AUTOCLOBBER for our static-analysis targets. r=bastien
Differential Revision: https://phabricator.services.mozilla.com/D52169

--HG--
extra : moz-landing-system : lando
2019-11-12 14:01:46 +00:00
Narcis Beleuzu
e7c61f4a68 Backed out 8 changesets (bug 1588241) for wpt leaks on ChannelEvent/ChannelEventQueue. CLOSED TREE
Backed out changeset 6a4727c44078 (bug 1588241)
Backed out changeset 125430c4316a (bug 1588241)
Backed out changeset 449606f22baf (bug 1588241)
Backed out changeset c9a6203582ac (bug 1588241)
Backed out changeset 48362412c9d5 (bug 1588241)
Backed out changeset a21cd1c41c6c (bug 1588241)
Backed out changeset 8d2cf0fc6b9b (bug 1588241)
Backed out changeset 17e7f137067f (bug 1588241)
2019-11-13 09:24:22 +02:00
Edgar Chen
b47fa008ad Bug 1595050 - Update spec comment in CustomElementRegistry::Define to reflect the latest spec; r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D52348

--HG--
extra : moz-landing-system : lando
2019-11-08 13:18:53 +00:00
Scott
aef62fb9fe Bug 1595901 - Add spoc privacy modal fix, bug fixes, and personalization switch to New Tab Page r=Mardak
Differential Revision: https://phabricator.services.mozilla.com/D52769

--HG--
extra : moz-landing-system : lando
2019-11-12 23:28:32 +00:00
Cosmin Sabou
a055b60f76 Backed out changeset 8daa186bd18b (bug 1593399) for causing crashes @js::gcstats::Statistics. CLOSED TREE 2019-11-13 07:00:37 +02:00
Cosmin Sabou
ec14bf90ea Backed out changeset 4b4f0fb8292c (bug 1595220) for several reftest failures. 2019-11-13 06:59:07 +02:00
Cosmin Sabou
1d71e9f510 Backed out 4 changesets (bug 1594950) for turning bug 1405083 into permafail.
Backed out changeset 684a87e91d94 (bug 1594950)
Backed out changeset adea6912c3a3 (bug 1594950)
Backed out changeset aea7108204e9 (bug 1594950)
Backed out changeset 15baea8520de (bug 1594950)
2019-11-13 06:44:24 +02:00
Mark Hammond
e57be9d2f3 Bug 1594929 - Remove invalidateCertificate from FxAccountsKeys.jsm. r=rfkelly
Differential Revision: https://phabricator.services.mozilla.com/D52623

--HG--
extra : moz-landing-system : lando
2019-11-12 04:05:28 +00:00
Jean-Yves Avenard
ef186338d1 Bug 1588241 - P8. Use NeckoTargetChannelFunctionEvent with FTPChannelChild. r=mattwoodrow
Fix style consistency while at it and a couple of constness issues.

Depends on D52503

Differential Revision: https://phabricator.services.mozilla.com/D52505

--HG--
extra : moz-landing-system : lando
2019-11-12 01:17:59 +00:00
Jean-Yves Avenard
87b073987b Bug 1588241 - P7. Use NeckoTargetChannelFunctionEvent in DCC. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D52503

--HG--
extra : moz-landing-system : lando
2019-11-12 01:16:14 +00:00
Jean-Yves Avenard
92451b9f4c Bug 1588241 - P6. Disable test under fission. r=mattwoodrow
And amend comment on other bugs failing for the same reasons, linking to bug that is the cause.

Differential Revision: https://phabricator.services.mozilla.com/D52306

--HG--
extra : moz-landing-system : lando
2019-11-11 06:08:59 +00:00
Jean-Yves Avenard
e8161967cc Bug 1588241 - P5. Re-enable tests. r=mattwoodrow
This reverts bug 1590608 and bug 1590649.

Depends on D52263

Differential Revision: https://phabricator.services.mozilla.com/D52264

--HG--
extra : moz-landing-system : lando
2019-11-08 04:06:53 +00:00
Jean-Yves Avenard
d6b9a693d8 Bug 1588241 - P4. Remove nsIClassifiedChannel implementation from DocumentChannelChild. r=mattwoodrow
The information is now passed to the parent channel once replacement is completed.

Depends on D52262

Differential Revision: https://phabricator.services.mozilla.com/D52263

--HG--
extra : moz-landing-system : lando
2019-11-12 23:35:20 +00:00
Jean-Yves Avenard
eb8d755d99 Bug 1588241 - P3. Move classification methods to PHttpChannel. r=mayhemer
We can guarantee that those callbacks will occur prior the call to OnStartRequest.
By running them all on the PHttpChannel we remove the potential race between the PHttpChannel which runs on the main thread and PHttpBackroundChannel which runs on the necko thread.

Depends on D52261

Differential Revision: https://phabricator.services.mozilla.com/D52262

--HG--
extra : moz-landing-system : lando
2019-11-12 18:06:04 +00:00
Jean-Yves Avenard
a73521779e Bug 1588241 - P2. Add ability to use lambdas for channel event handlers. r=mayhemer
Remove the need to create separate runnable classes. It's far more readable and remove the need to duplicate lots of code.

We unfortunately need to capture "this" in a ref counter to get around the static analyzer complaining about capturing this by value, even thouch the ChannelEventQueue guarantees that this will outlive the event.

Depends on D52260

Differential Revision: https://phabricator.services.mozilla.com/D52261

--HG--
extra : moz-landing-system : lando
2019-11-13 04:01:30 +00:00
Jean-Yves Avenard
c3b93b9fbb Bug 1588241 - P1. Use move semantics with PrependEvent. r=mattwoodrow
PrepentEvent was already moving the argument passed by reference. This makes it clear that the object will be moved.

Differential Revision: https://phabricator.services.mozilla.com/D52260

--HG--
extra : moz-landing-system : lando
2019-11-07 23:25:20 +00:00
Matthew Noorenberghe
2461213d8f Bug 1595953 - Connect UITour-lib.js docs to sphinx-js to publish on firefox-source-docs. r=markh
Differential Revision: https://phabricator.services.mozilla.com/D52772

--HG--
extra : moz-landing-system : lando
2019-11-13 02:40:03 +00:00
Ted Campbell
95291b75f2 Bug 1594520 - Use full path to mach in .vscode/tasks.json on Windows r=jya
Current versions of mozilla-build ignore the current working directory
so use full path to mach. Due to path mangling issues copying from
vscode -> powershell -> msys-bash, I used a PowerShell fragment to
translate the path.

Differential Revision: https://phabricator.services.mozilla.com/D52084

--HG--
extra : moz-landing-system : lando
2019-11-12 12:54:18 +00:00
Ted Campbell
4e35fcaac4 Bug 1594520 - Use workspaceFolder in .vscode/tasks.json r=jya
The ${workspaceRoot} variable was deprecated when multi-folder workspaces
were added to VSCode.

Depends on D52082

Differential Revision: https://phabricator.services.mozilla.com/D52083

--HG--
extra : moz-landing-system : lando
2019-11-12 12:54:10 +00:00