Граф коммитов

1947 Коммитов

Автор SHA1 Сообщение Дата
Jan Beich 25e565834b Bug 1629300 - Add back CreateNotificationPipeForChild for Tier3 after bug 1623961. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D70614

--HG--
extra : moz-landing-system : lando
2020-04-13 21:38:51 +00:00
Mike Hommey 0e36d45b8a Bug 1628927 - Convert symbolstore.py to python 3. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D70467

--HG--
extra : moz-landing-system : lando
2020-04-12 00:03:54 +00:00
Csoregi Natalia 8ed108064b Backed out changeset 789cef4e9c6d (bug 1628927) for symbol related bustage. CLOSED TREE 2020-04-11 04:31:34 +03:00
Mike Hommey e62d5e9a93 Bug 1628927 - Convert symbolstore.py to python 3. r=rstewart
Differential Revision: https://phabricator.services.mozilla.com/D70467

--HG--
extra : moz-landing-system : lando
2020-04-10 21:42:18 +00:00
Gabriele Svelto 500082602d Bug 1627367 - Remove the content process crash annotation blacklist r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D70101

--HG--
extra : moz-landing-system : lando
2020-04-08 22:59:15 +00:00
Gabriele Svelto 969e685d94 Bug 1596210 - Prevent breakpad from spamming the log with error messages r=KrisWright
Setting breakpad minimum log severity level to CRITICAL should be enough to
quiet it completely since there are no statements in the code using it, the
"highest" I could find all use the ERROR level.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 20:28:14 +00:00
Gabriele Svelto 958361a3fb Bug 1614933 - Fix a deadlock in Breakpad crash generation on Windows; r=KrisWright
On Windows content process minidump generation goes through the following
steps:

* The child process exception handler invokes the `filter` callback. This is the
  `ChildFPEFilter()` function in nsExceptionHandler.cpp.
* If this callback returns true then the child process sends a request to the
  crash generation server living in the main process and then waits.
* The main process generates a minidump in response to this message.
* Once the minidump has been generated the crash generation server calls the
  `dump_callback` callback with the minidump filename. This is the
  `OnChildProcessDumpRequested()` function in nsExceptionHandler.cpp.
* Once this callback returns the main process signals the child process that
  it has finished generating the dump.
* The child process resumes execution in the exception handler and then
  terminates.

During this process we send crash annotations via a pipe from the child
process to the main process. The function responsible for this is
`PrepareChildExceptionTimeAnnotations()` in nsExceptionHandler.cpp and it's
called within `ChildFPEFilter()`. Because pipe writes are blocking if we send
enough annotations to fill the pipe buffer then the child process will get
stuck in `ChildFPEFilter()` and never request a dump from the main process. Thus
the content process will never shut down and the main process will never see
that it has crashed, it will only appear indefinitely stuck.

To solve this issue a few changes are necessary:

* The crash annotations are not sent from the `filter` callback, they are sent
  from the `minidump` callback which we did not use before. This callback is
  executed in the child process **after** signaling the main process.
* This is not enough to prevent the deadlock though, because the content
  process will still wait before the parent process has responded before
  invoking this new callback. The parent process on the other hand will
  generate the minidump and then call `OnChildProcessDumpRequest()` which will
  wait to read the annotations sent by the child process. Thus both processes
  would be stuck. To solve this other issue we change the order in which the
  parent process responds: instead of invoking the `dump_callback` first and
  then signaling the child process it does the opposite.

I've also added a new test that covers two separate issues solved by this
patch-set: that we don't deadlock when writing too much data (this issue) and
that we don't fail to send an annotation if it's too large (previously the
shared memory buffer was 16KiB in size so this annotation wouldn't fit).

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

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:41 +00:00
Gabriele Svelto 2bc88d71e0 Bug 1614933 - Gather content processes' crash annotations at exception time instead of using IPC; r=froydnj
Crash annotations in content processes are currently sent over IPC via
shared memory buffers. To pave the way for the Rust rewrite of the exception
handler we are removing this code and gathering all the crash annotations
within the content processes themselves. This patch causes annotations to be
stored in the global table of each content process. They are then streamed
out to the parent process by the exception handler together with the
exception-time annotations.

This has a number of benefits:

* we have one less channel to exchange data between content processes and
  the parent process
* we save memory because we don't need to allocate the shared memory buffers
* annotations are faster because we don't stream them all out every time one
  changes
* we won't truncate annotations anymore if we run out of space in the shared
  segment.
* we don't need delayed annotations anymore, so we can get rid of the
  associated machinery

As I refactored the code I tried to adjust all the obsolete comments,
consolidate shared code and remove the redundant steps that were sometimes
present. In many places we had two entire crash annotation tables we merged to
change just a couple; that comes from the fact that historically we loaded
them from disk. Now it doesn't matter anymore and we can just go ahead and
change the ones we care about.

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

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:40 +00:00
Chris Peterson d6d50e8392 Bug 1627496 - Replace MOZ_MUST_USE with [[nodiscard]] in toolkit/crashreporter. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D69740

--HG--
extra : moz-landing-system : lando
2020-04-05 06:45:04 +00:00
Gabriele Svelto 76c8b67932 Bug 1627360 - Document and fix the serialization of the SubmittedFromInfobar crash annotation r=mconley
Differential Revision: https://phabricator.services.mozilla.com/D69638

--HG--
extra : moz-landing-system : lando
2020-04-06 16:33:32 +00:00
Gabriele Svelto 87ab689c3c Bug 1616195 - Improve the Linux distribution version information included in crash reports r=KrisWright
We previously only included the contents of the /etc/lsb-release file, however
this file is not present in RedHat-based distributions which use
/etc/os-release instead. This patch will read the latter if the former is not
present.

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

--HG--
extra : moz-landing-system : lando
2020-03-31 15:57:15 +00:00
Stephen A Pohl b955a31d60 Bug 1625354: Two more switches to a non-deprecated API to load .nib files. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D68486

--HG--
extra : moz-landing-system : lando
2020-03-30 23:17:27 +00:00
Barret Rennie a179f89b61 Bug 1602918 - Report DOMFissionEnabled in crash pings r=nika
Differential Revision: https://phabricator.services.mozilla.com/D68660

--HG--
extra : moz-landing-system : lando
2020-03-30 16:24:30 +00:00
Daniel Varga 3a42a4012c Backed out changeset 78a429af0ec5 (bug 1622687) for build bustage
CLOSED TREE
2020-03-30 23:32:19 +03:00
sumagnadas dc9c74f709 Bug 1622687 - Fixed files in toolkit/crashreporter to make it flake8 compliant. r=froydnj
Changed .flake8 file to include the changes for flake8 compliance

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

--HG--
extra : moz-landing-system : lando
2020-03-30 16:10:03 +00:00
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

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

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
Nicholas Nethercote 0d565690c2 Bug 1574390 - Implement guard pages in PHC. r=glandium
Each allocation page is now bracketed by a guard page, and allocations are put
at the end of their page so that bounds violations trigger a crash.

Various operations (realloc(), free(), malloc_usable_size()) now require that
the pointer they are given points to the start of an allocation.

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

--HG--
rename : toolkit/crashreporter/test/unit_ipc/test_content_phc2.js => toolkit/crashreporter/test/unit_ipc/test_content_phc3.js
extra : moz-landing-system : lando
2020-03-27 00:14:53 +00:00
Gabriele Svelto 1974b2ed47 Bug 1622316 - Add buffering to the PlatformWriter to reduce the number of syscalls required to write the .extra file r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D67588

--HG--
extra : moz-landing-system : lando
2020-03-24 11:17:23 +00:00
Brindusan Cristian 4646c1f41f Backed out 2 changesets (bug 1614933) for bc failures at browser_tabicon_after_bg_tab_crash.js.
Backed out changeset 59503d3a702f (bug 1614933)
Backed out changeset 578c8ba9598f (bug 1614933)
2020-03-22 17:30:07 +02:00
Gabriele Svelto 322404bebb Bug 1614933 - Gather content processes' crash annotations at exception time instead of using IPC; r=froydnj
Crash annotations in content processes are currently sent over IPC via
shared memory buffers. To pave the way for the Rust rewrite of the exception
handler we are removing this code and gathering all the crash annotations
within the content processes themselves. This patch causes annotations to be
stored in the global table of each content process. They are then streamed
out to the parent process by the exception handler together with the
exception-time annotations.

This has a number of benefits:

* we have one less channel to exchange data between content processes and
  the parent process
* we save memory because we don't need to allocate the shared memory buffers
* annotations are faster because we don't stream them all out every time one
  changes
* we won't truncate annotations anymore if we run out of space in the shared
  segment.
* we don't need delayed annotations anymore, so we can get rid of the
  associated machinery

As I refactored the code I tried to adjust all the obsolete comments,
consolidate shared code and remove the redundant steps that were sometimes
present. In many places we had two entire crash annotation tables we merged to
change just a couple; that comes from the fact that historically we loaded
them from disk. Now it doesn't matter anymore and we can just go ahead and
change the ones we care about.

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

--HG--
extra : moz-landing-system : lando
2020-03-21 17:13:08 +00:00
Gabriele Svelto 9046efc64e Bug 1623961 - Adjust the dummy crash reporter to reflect the new prototype for SetRemoteExceptionHandler() r=froydnj,kats
Differential Revision: https://phabricator.services.mozilla.com/D67675

--HG--
extra : moz-landing-system : lando
2020-03-20 20:56:41 +00:00
Michael Forney 48e9b9c824 Bug 1615713 - Update breakpad to upstream revision 5bba75bfd6ec386b8e3af0b91332388a378135bf r=gsvelto
This includes several fixes required to build against musl libc.

Conflicts were resolved in 00-arm-exidx-rollup.patch and
10-json-upload.patch. 08-dont-add-sp-to-clobber-list.patch was
applied upstream and is no longer needed. The others applied cleanly.

breakpad_getcontext.S is now built conditionally based upon the
available of getcontext() from libc, rather than only on Android.
The profiler was updated to reflect this change.

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

--HG--
rename : toolkit/crashreporter/breakpad-patches/09-gnu-alt-form-minimal-support.patch => toolkit/crashreporter/breakpad-patches/08-gnu-alt-form-minimal-support.patch
rename : toolkit/crashreporter/breakpad-patches/10-json-upload.patch => toolkit/crashreporter/breakpad-patches/09-json-upload.patch
rename : toolkit/crashreporter/google-breakpad/src/common/android/breakpad_getcontext.S => toolkit/crashreporter/google-breakpad/src/common/linux/breakpad_getcontext.S
rename : toolkit/crashreporter/google-breakpad/src/common/android/breakpad_getcontext_unittest.cc => toolkit/crashreporter/google-breakpad/src/common/linux/breakpad_getcontext_unittest.cc
extra : moz-landing-system : lando
2020-03-19 22:52:26 +00:00
Gabriele Svelto d3eaf3858d Bug 1622452 - Remove the remote exception handler when a content process shuts down r=froydnj
This works on all platforms with the exception of Linux where we remove the
exception handler only if the sandbox is disabled. With the sandbox enabled we
would have to whitelist sigaltstack() which breakpad uses to remove the
alternate signal stack which is not worth the fuss.

Besides this patch refactors the code that sets and unsets the exception
handler, cutting down on the duplication:

* The XRE_UnsetRemoteExceptionHandler() call is removed from XULAppAPI.h since it
  was no longer used
* The duplicate checks for the special strings used to disable the remote exception
  handler have been removed from CrashReporter::UnsetRemoteExceptionHandler()
  leaving them in the calling code
* The SetRemoteExceptionHandler() function was consolidated into only one
  piece of code with only one non-platform-specific shared prototype
* Some additional code was factored out to improve the readability

These changes pave the way both for bug 1614933 and for the oxidation of the
exception handler code.

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

--HG--
extra : moz-landing-system : lando
2020-03-19 14:06:31 +00:00
Mike Hommey 646579d57d Bug 1618781 - Use the taskcluster artifact for pdbstr on both Windows native and cross builds. r=froydnj
And make it an explicit dependency of the build system.

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

--HG--
extra : moz-landing-system : lando
2020-03-18 04:21:18 +00:00
Ciure Andrei 19d8351b5f Backed out 2 changesets (bug 1618781) for toolchain bustages CLOSED TREE
Backed out changeset 83026834b242 (bug 1618781)
Backed out changeset ac168e956e3a (bug 1618781)
2020-03-18 05:32:00 +02:00
Mike Hommey 570134e4a8 Bug 1618781 - Use the taskcluster artifact for pdbstr on both Windows native and cross builds. r=froydnj
And make it an explicit dependency of the build system.

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

--HG--
extra : moz-landing-system : lando
2020-03-17 14:01:46 +00:00
Ed Lee acb960676c Bug 1620556 - Automatic code fixes for Prettier 1.19.1 upgrade. r=Standard8,remote-protocol-reviewers,marionette-reviewers,webcompat-reviewers,perftest-reviewers,sparky,whimboo,denschub
Differential Revision: https://phabricator.services.mozilla.com/D66128

--HG--
extra : moz-landing-system : lando
2020-03-13 23:38:52 +00:00
Jason Adler f7585987c9 Bug 1609823 Make about:crashes an HTML file r=ntim
Differential Revision: https://phabricator.services.mozilla.com/D66253

--HG--
rename : toolkit/crashreporter/content/crashes.xhtml => toolkit/crashreporter/content/crashes.html
extra : moz-landing-system : lando
2020-03-11 19:15:12 +00:00
Bogdan Tara fb2b3d4e41 Backed out 2 changesets (bug 1614933) for busages complaining about IdleSchedulerChild.cpp CLOSED TREE
Backed out changeset ff92f800a74e (bug 1614933)
Backed out changeset 5cee8f603ae4 (bug 1614933)
2020-03-10 17:21:55 +02:00
Gabriele Svelto 9336e8143b Bug 1614933 - Gather content processes' crash annotations at exception time instead of using IPC; r=froydnj
Crash annotations in content processes are currently sent over IPC via
shared memory buffers. To pave the way for the Rust rewrite of the exception
handler we are removing this code and gathering all the crash annotations
within the content processes themselves. This patch causes annotations to be
stored in the global table of each content process. They are then streamed
out to the parent process by the exception handler together with the
exception-time annotations.

This has a number of benefits:

* we have one less channel to exchange data between content processes and
  the parent process
* we save memory because we don't need to allocate the shared memory buffers
* annotations are faster because we don't stream them all out every time one
  changes
* we won't truncate annotations anymore if we run out of space in the shared
  segment.
* we don't need delayed annotations anymore, so we can get rid of the
  associated machinery

As I refactored the code I tried to adjust all the obsolete comments,
consolidate shared code and remove the redundant steps that were sometimes
present. In many places we had two entire crash annotation tables we merged to
change just a couple; that comes from the fact that historically we loaded
them from disk. Now it doesn't matter anymore and we can just go ahead and
change the ones we care about.

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

--HG--
extra : moz-landing-system : lando
2020-03-10 14:59:22 +00:00
Simon Giesecke 8ad76c7e47 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in toolkit. r=mossop
Depends on D66008

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

--HG--
extra : moz-landing-system : lando
2020-03-10 08:48:24 +00:00
Gabriele Svelto 7e978643d5 Bug 1618879 - Do not send the telemetry session ID along with crash reports r=mconley
The telemetry session ID annotation is only used to correlate crash pings with
main pings, it does not need to be sent along with crash reports as we have no
use for it there.

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

--HG--
extra : moz-landing-system : lando
2020-03-05 16:00:43 +00:00
Simon Giesecke 69b996524d Bug 1618165 - Provide BaseAutoLock and BaseAutoUnlock deduction guides for Mutex references. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64359

--HG--
extra : moz-landing-system : lando
2020-02-28 07:59:30 +00:00
Andrew McCreight 4babb2b5ab Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 17:39:15 +00:00
Ciure Andrei 00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Mike Hommey d747b65211 Bug 1617794 - Wrap Windows tools with Wine on cross builds. r=dmajor
Windows programs run via Wine don't like Unix absolute paths (they look
like command line arguments), so we need to use relative paths.

Mingw already run fxc2 via wine, but for some reason it doesn't care
about the Unix absolute paths. genshaders does need some adjustements to
run properly with the real fxc.

Now, on actual Windows, because the temporary directory where
tempfile.NamedTemporaryFile creates files by default is not necessarily
on the same drive as where the command runs from, a relative path can't
be constructed. So we also force the temporary file to be created in the
current (obj) directory.

There is no similar concern for other files because we only go from
objdir to srcdir, and the build system already doesn't support both
being on a separate drive.

While here, flush stdout when the genshared script writes to it, so that
the messages are printed out immediately rather than randomly, later,
after output from subprocesses.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 04:42:57 +00:00
Andrew McCreight b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

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

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Gabriele Svelto 978898caaa Bug 1617202 - Handle TelemetrySessionId like a regular crash annotation r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63687

--HG--
extra : moz-landing-system : lando
2020-02-25 07:25:20 +00:00
Sylvestre Ledru 767a63976f Bug 1617369 - Reformat toolkit/crashreporter/ & toolkit/library/rust/ using rustfmt r=gsvelto
Depends on D63952

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

--HG--
extra : moz-landing-system : lando
2020-02-25 07:44:53 +00:00
Eric Rahm b224a7461c Bug 1617334 - Remove nsAutoPtr usage from toolkit. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D63746

--HG--
extra : moz-landing-system : lando
2020-02-22 14:50:52 +00:00
Arnaud Renevier 9d7abb9383 Bug 1607364 - CrashReporting API r=baku
Implement Crash Report for Reporting API.

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

--HG--
extra : moz-landing-system : lando
2020-02-21 17:40:30 +00:00
Mike Shal c8abdd68c2 Bug 1616630 - Use py3_action for GENERATED_FILES that already support it; r=firefox-build-system-reviewers,kvark,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D63438

--HG--
extra : moz-landing-system : lando
2020-02-21 00:05:17 +00:00
Csoregi Natalia 6360b24e80 Backed out 2 changesets (bug 1616630) for Android bustage. CLOSED TREE
Backed out changeset 15016546c954 (bug 1616630)
Backed out changeset dcb7dc51633b (bug 1616630)
2020-02-20 21:24:11 +02:00
Mike Shal 39492660f4 Bug 1616630 - Use py3_action for GENERATED_FILES that already support it; r=firefox-build-system-reviewers,kvark,rstewart
Depends on D63437

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

--HG--
extra : moz-landing-system : lando
2020-02-20 16:21:55 +00:00
Mike Shal d8e4653d19 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-14 13:22:46 +00:00
Cosmin Sabou ff39f9206d Backed out 2 changesets (bug 1613263, bug 1611326) for presummably causing l10n langpack bustages. a=backout
Backed out changeset 77e54e76848a (bug 1611326)
Backed out changeset 36ba18ac3a68 (bug 1613263)
2020-02-14 15:02:21 +02:00
Mike Shal ad0c283ab2 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 23:07:04 +00:00
Brindusan Cristian e2fb6b8344 Backed out changeset 7fefed11f117 (bug 1611326) for build bustages at update-1.xpi.stub. CLOSED TREE 2020-02-13 23:33:34 +02:00
Mike Shal e6464dd404 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 20:31:50 +00:00
Kristen Wright cc862d2d30 Bug 1539944 - Get rid of NS_NewThread r=froydnj
Gets rid of `NS_NewThread`. Where it was used in testing, I gave the new named threads names relevant to their tests.

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

--HG--
extra : source : 541b98270c9985c5bd3569ff3ff8bc6c3d3c650a
2020-02-11 21:01:56 +00:00