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

4701 Коммитов

Автор SHA1 Сообщение Дата
Perry Jiang 7215838dc1 Bug 1575092 - don't spawn Shared/Service Workers in "web COOP+COEP" processes r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D50815

--HG--
extra : moz-landing-system : lando
2019-11-20 20:02:23 +00:00
Ehsan Akhgari 659d5a38ee Bug 1596843 - Part 4: Remove some native only methods from nsIPermissionManager; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D53240

--HG--
extra : moz-landing-system : lando
2019-11-17 22:22:34 +00:00
Karl Tomlinson 5104cdfad1 Bug 1565956 adjust IsCurrentThreadRunningChromeWorker() for worklet threads r=baku
Depends on D53135

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

--HG--
extra : moz-landing-system : lando
2019-11-17 21:17:40 +00:00
Karl Tomlinson 2d84aace80 Bug 1565956 run worker-specific MessagePort close on initialize on only worker threads r=baku
MessagePorts will be initialized also on worklet threads.

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

--HG--
extra : moz-landing-system : lando
2019-11-17 21:09:52 +00:00
Noemi Erli 117375bafe Backed out 4 changesets (bug 1596843) for causing nsPermissionManager related failures
Backed out changeset 48577632f4b3 (bug 1596843)
Backed out changeset b9061f93d045 (bug 1596843)
Backed out changeset 691397c2fde6 (bug 1596843)
Backed out changeset 88e8383dc3e4 (bug 1596843)
2019-11-17 23:00:23 +02:00
Ehsan Akhgari ce669bf3af Bug 1596843 - Part 4: Remove some native only methods from nsIPermissionManager; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D53240

--HG--
extra : moz-landing-system : lando
2019-11-17 20:06:11 +00:00
Gurzau Raul a6a14f9410 Backed out 2 changesets (bug 1575092) for causing Bug 1596556 and Bug 1596556.
Backed out changeset 8dc03b744500 (bug 1575092)
Backed out changeset e28e46ca4a17 (bug 1575092)
2019-11-17 13:58:56 +02:00
Gurzau Raul 9c990aad98 Backed out 4 changesets (bug 1596843) for XPCShellTestsTests build bustage ona CLOSED TREE.
Backed out changeset 69ee727d5b45 (bug 1596843)
Backed out changeset a9827fae8655 (bug 1596843)
Backed out changeset 8b2220bc47af (bug 1596843)
Backed out changeset b10aec041377 (bug 1596843)
2019-11-17 11:07:15 +02:00
Ehsan Akhgari 0ad4207862 Bug 1596843 - Part 4: Remove some native only methods from nsIPermissionManager; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D53240

--HG--
extra : moz-landing-system : lando
2019-11-17 07:23:39 +00:00
Eden Chuang c2e2e5965d Bug 1546331 - Missing call to WaitForIsDebuggerRegistered r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D52139

--HG--
extra : moz-landing-system : lando
2019-11-13 12:56:27 +00:00
Nazım Can Altınova bc87c9100f Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D51859

--HG--
extra : moz-landing-system : lando
2019-11-14 12:26:25 +00:00
Yaron Tausky e65a2c3ebb Bug 1591892 - Expose {window, self}.crossOriginIsolated r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D52532

--HG--
extra : moz-landing-system : lando
2019-11-15 12:25:57 +00:00
Perry Jiang cee88a4060 Bug 1575092 - don't spawn Shared/Service Workers in "web COOP+COEP" processes r=asuth
Preventing RemoteWorkerService from existing in "web COOP+COEP" content
processes prevents Shared/ServiceWorkers from being spawned in them because there
won't be an associated RemoteWorkerServiceParent that registers with the parent
process RemoteWorkerManager.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 15:46:05 +00:00
Randell Jesup a42777ee14 Bug 1594015: Ensure that threads with odd ProcessNextEvent loops get correct event delays r=froydnj
Socket Thread and Worker Threads use custom event loops and don't wait in
calls to ProcessNextEvent all the time; this can lead to odd Responsiveness numbers.

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

--HG--
extra : moz-landing-system : lando
2019-11-08 21:07:52 +00:00
Perry Jiang 5b6e37c114 Bug 1588353 - Remove unnecessary Unused << for non-MOZ_MUST_USE function return value r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D52131

--HG--
extra : moz-landing-system : lando
2019-11-07 19:29:59 +00:00
Ciure Andrei b7c3599997 Backed out 3 changesets (bug 1572337, bug 1594015) for causing linting failures and build bustages CLOSED TREE
Backed out changeset 25f074eb5074 (bug 1594015)
Backed out changeset fc8a37c2c22c (bug 1572337)
Backed out changeset 913d6bd82284 (bug 1572337)
2019-11-07 16:37:00 +02:00
Randell Jesup 2d00745133 Bug 1594015: Ensure that threads with odd ProcessNextEvent loops get correct event delays r=froydnj
Socket Thread and Worker Threads use custom event loops and don't wait in
calls to ProcessNextEvent all the time; this can lead to odd Responsiveness numbers.

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

--HG--
extra : moz-landing-system : lando
2019-11-07 12:53:41 +00:00
Nika Layzell 8378700163 Bug 1590908 - Part 2: Don't require passing JSContext* to CallerInnerWindow, r=kmag
The JSContext* is already fetched from within GetIncumbentGlobal, so the get is
guaranteed not to fail. This simplifies the callsite, making it easier to call.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 15:05:49 +00:00
Eden Chuang bbec89c3ed Bug 1590320 - enable dom/workers/test/test_multi_sharedWorker.html for fission. r=perry
Could not reproduce the test fail locally and on tryserver.
Enable the mochitest dom/workers/test/test_multi_sharedWorker.html for fission

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

--HG--
extra : moz-landing-system : lando
2019-10-30 16:32:46 +00:00
Simon Giesecke 8e4f7b783e Bug 1586189 - Fix behaviour of ThirdPartyUtil::IsThirdPartyWindow with Fission. r=ttung,Ehsan,kmag
Differential Revision: https://phabricator.services.mozilla.com/D49157

--HG--
extra : moz-landing-system : lando
2019-10-31 08:31:39 +00:00
Tom Tung ad81303d2e Bug 1562667 - P1 - Refine isCrossOriginIsolated check and agentcluster check for postmessage; r=nika
This patch does:
- Rename CanShareMemory to IsCrossOriginIsolated
- Only check COOP and COEP on the serializing side
- Check if the caller AgentClusterId is same as target on the deserializng side

Note that this patch assumes that it's safe to not throw for the case that the
target window is navigated to another origin but in the same agent cluster while
the MessageEvent is in-flight.

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

--HG--
extra : moz-landing-system : lando
2019-10-30 11:01:42 +00:00
Boris Zbarsky 033a03eb89 Bug 1591491. Add more use of FakeString::ShareOrDependUpon. r=froydnj
If someone then saves the resulting string, this will let us avoid a copy.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 20:41:59 +00:00
Cosmin Sabou 208a0cc372 Bug 1564700 - Disable test_bug949946.html on win32 and linux64. r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D50415

--HG--
extra : moz-landing-system : lando
2019-10-25 18:20:07 +00:00
Csoregi Natalia 0e8b885146 Backed out 3 changesets (bug 1575090) for web platform failures on e.g. nested-sharedworker-success.https.html. CLOSED TREE
Backed out changeset 3791b3afbb44 (bug 1575090)
Backed out changeset 224ad4adb49e (bug 1575090)
Backed out changeset efb654c201a3 (bug 1575090)
2019-10-24 21:52:16 +03:00
Perry Jiang 9fe3c257a0 Bug 1575090 - add NS_GetCrossOriginEmbedderPolicyFromHeader r=JuniorHsu
Differential Revision: https://phabricator.services.mozilla.com/D46178

--HG--
extra : moz-landing-system : lando
2019-10-24 15:48:57 +00:00
Perry Jiang 8140fd1dc1 Bug 1575090 - set COEP for all workers and enforce it when loading Dedicated Workers r=asuth
Differential Revision: https://phabricator.services.mozilla.com/D46177

--HG--
extra : moz-landing-system : lando
2019-10-24 15:48:50 +00:00
Tom Tung 5a885c18a1 Bug 1583251 - P4 - Allow deserialize shared memory for Workers; r=nika,perry
Differential Revision: https://phabricator.services.mozilla.com/D48560

--HG--
extra : moz-landing-system : lando
2019-10-23 07:20:35 +00:00
Tom Tung adbf55ab7b Bug 1587394 - Provide a pref to bypass postMessage COOP and COEP check on Nightly and Dev; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48713

--HG--
extra : moz-landing-system : lando
2019-10-21 14:47:52 +00:00
Razvan Maries f9d8db28af Backed out 5 changesets (bug 1583251) for rust build bustages. CLOSED TREE
Backed out changeset bfe390ad771b (bug 1583251)
Backed out changeset 0113c698b44d (bug 1583251)
Backed out changeset 248ad59168dd (bug 1583251)
Backed out changeset 5d5e3dc17118 (bug 1583251)
Backed out changeset 9e9eaa78c436 (bug 1583251)
2019-10-18 17:59:20 +03:00
Geoff Brown 32490358c2 Bug 1585119 - Re-enable many more mochitests on Android; r=geckoview-reviewers,snorp
Most of these tests have been disabled for a long time; they run well
in the current test environment.
I intend to enable still more mochitests in a future patch.

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

--HG--
extra : moz-landing-system : lando
2019-10-18 14:35:20 +00:00
Tom Tung b9dbb55e08 Bug 1583251 - P4 - Allow deserialize shared memory for Workers; r=nika,perry
Differential Revision: https://phabricator.services.mozilla.com/D48560

--HG--
extra : moz-landing-system : lando
2019-10-17 18:52:53 +00:00
Bogdan Tara 74f9b0c67c Backed out changeset 667e16c6814c (bug 1587394) for pref lint failure CLOSED TREE 2019-10-17 18:55:15 +03:00
Tom Tung 48bfc7dee9 Bug 1587394 - Provide a pref to bypass postMessage COOP and COEP check on Nightly and Dev; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D48713

--HG--
extra : moz-landing-system : lando
2019-10-17 14:15:58 +00:00
Jan de Mooij 026691dc76 Bug 1588810 - Fix ctypes UnicodeToNative callback to not assume null-terminated strings. r=bzbarsky
Bug 1586683 replaced the JS_FlattenString in the caller with JS_EnsureLinearString but
I wasn't aware of the nsDependentString vs nsDependentSubstring distinction.

This fixes assertion failures when starting the browser with non-null-terminated
JS strings.

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

--HG--
extra : moz-landing-system : lando
2019-10-16 06:13:07 +00:00
Perry Jiang 87c3eb5a96 Bug 1575185 - Subscribe content processes spawning Service Workers to permission updates r=asuth
Previously, Service Workers could spawn in a process that isn't subscribed
to permission updates, which could happen if that process hadn't loaded any
same-origin documents. To address this, parent-process logic for spawning
Service Workers would snapshot the permissions state to be sent to a content
process.

Unfortunately, this approach could lead to outdated, unsynchronized permissions.
Note that nsIPermissionManager::SetPermissionsWithKey is only used to initialize
permissions for a given key and is a no-op if already called with the same key
in a given process. As a result, the following sequence of events could happen:

Assume a content process CP that isn't subscribed to permission changes for an
origin A:

1) Parent process decides to spawn an origin A Service Worker in CP,
snapshotting a value V for permission P.
2) The Service Worker is spawned in CP, setting CP's permission manager's
permission P to value V (for origin A).
3) Parent process updates its permission P to a value A', which is not
broadcasted to CP (because it's not subscribed).
4) By now, the initial Service Worker has been terminated, and the parent
process decides once again to spawn an origin A Service Worker in CP.
5) The Service Worker is spawned in CP, but the call to SetPermissionsWithKey
is a no-op, leaving CP1 with a mismatched value for permission P.

An additional scenario is if the parent process updates a permission during a
remote Service Worker's lifetime.

This patch, which would subscribe CP1 to permission updates when the parent
process knows a Service Worker would be spawned in CP1, prevents these problems.

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

--HG--
extra : moz-landing-system : lando
2019-10-09 02:23:41 +00:00
Tom Ritter 23ba7b6fe3 Bug 1583949 - Add a check for IsEvalAllowed to the worker callpath for eval() r=ckerschb,baku
This patch does several things.  Because Workers aren't on the main thread,
many of the things done are in the name of off main thread access.

1) Changes a parameter in IsEvalAllowed from a nsIPrincipal to a bool.
   We only used the principal to determined if it was the System Principal.
   Principals aren't thread safe and can only be accessed on Main Thread, so
   if we passed a Principal in, we would be in error. Instead only pass in
   the bool which - for workers - comes from a thread-safe location.

2) Separates out the Telemetry Event Recording and sending a message to the
   console into a new function nsContentSecurityUtils::NotifyEvalUsage. (And
   creates a runnable that calls it.)

   We do this because we will need to only call this method on the main thread.

   Telemetry Event Recording has only ever been called on the Main Thread.
   While I possibly-successfully cut it over to happen Off Main Thread (OMT)
   by porting preferences to StaticPrefs, I don't know if there were other
   threading assumptions in the Telemetry Code. So it would be much safer to
   just continue recording Event Telemetry on the main thread.

   Sending a message to the console requires calling GetStringBundleService()
   which requires main thread. I didn't investigate if this could be made
   thread-safe, I just threw it onto the main thread too.

   If, in IsEvalAllowed, we are on the main thread - we call NotifyEvalUsage
   directly. If we are not, we create a runnable which will then call
   NotifyEvalUsage for us on the main thread.

3) Ports allow_eval_with_system_principal and allow_eval_in_parent_process
   from bools to RelaxedAtomicBool - because we now check these prefs OMT.

4) In RuntimeService.cpp, adds the call to IsEvalAllowed.

5) Add resource://gre/modules/workers/require.js to the allowlist of eval
   usage. This was the script that identified this gap in the first place.
   It uses eval (twice) for structural reasons (scope and line number
   massaging.)  The contents of the eval are the result of a request to a
   uri (which may be internal, like resource://). The whole point of this
   is to implement a CommonJS require() api.

   This usage of eval is safe because the only way an attacker can inject
   into it is by either controlling the response of the uri request or
   controlling (or appending to) the argument. If they can do that, they
   are able to inject script into Firefox even if we cut this usage of eval
   over to some other type of safe(r) script loader.

   Bug 1584564 tracks making sure calls to require.js are safe.

6) Adds cld-worker.js to the allowlist. Bug 1584605 is for refactoring that
   eval usage, which is decidedly non-trivial.

7) Does _not_ enforce the eval restrictions for workers. While I've gotten
   try to be green and not throw up any instances of eval-usage by workers,
   it is much safer to deploy this is Telemetry-only mode for Workers for
   a little bit to see if anything pops up from the Nightly population.

   Bug 1584602 is for enforcing the checks.

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

--HG--
extra : moz-landing-system : lando
2019-10-08 17:31:35 +00:00
Brindusan Cristian bb90c3cbf6 Backed out changeset 41c6b7e917fd (bug 1367251) for mochitest failures at test_conformance__textures__image_bitmap_from_blob__tex-2d-luminance-luminance-unsigned_byte.html. CLOSED TREE 2019-10-07 04:46:13 +03:00
aardgoose 730d95aa10 Bug 1367251 - add bindings for options to createImageBitmap and support flipY r=bzbarsky,aosmond
implementation of imageOrientation: none|flipY.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 15:20:53 +00:00
Tom Ritter cdd2029b79 Bug 1576254 - Cut WorkerPrincipal over to a real object and implement isSystemOrAddonPrincipal r=baku
Unlike WorkletPrincipal, a WorkerPrincipal had been a simple static object shared by
all Workers. We never needed to consult it about an individual Worker before. Now we
do. So we cut it over from a static object to individual objects for each Worker.

We have an off main thread access problem for the Principal however, WorkerPrivate
has a method UsesSystemPrincipal that returns a bool that was initialized from the
Principal on the main thread. We copy that pattern and add a
UsesAddonOrExpandedAddonPrincipal method that will be called by the
isSystemOrAddonPrincipal method we must implement so we can inheirt from JSPrincipal.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:37:09 +00:00
Tom Ritter cac810aea7 Bug 1576254 - Update wasmForTrustedPrinciples to use a separate pref r=luke
Differential Revision: https://phabricator.services.mozilla.com/D47474

--HG--
extra : moz-landing-system : lando
2019-10-04 17:36:08 +00:00
Tom Ritter 754ebbc4d7 Bug 1576254 - Add a wasmForTrustedPrinciples bool onto ContextOptions that (currently) behaves the exact same as the wasm bool r=luke
In a future commit we will tie this boolean to its own preference value, but here we
initialize it with the same value as the wasm boolean.

We also update wasm::HasSupport to check the to-be-added isSystemOrAddonPrincipal()
method on JSPrincipals to determine which member (wasm or wasmForTrustedPrinciples)
to consult.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:35:46 +00:00
Tom Ritter 206eea6eb4 Bug 1576254 - Move Clamping and Jittering from RealmCreationOptions to Behaviors r=luke
CreationOptions are intended to be immutable and not change during realm operation.
Behaviors change, and clamping/jittering should reside on behaviors.

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

--HG--
extra : moz-landing-system : lando
2019-10-04 17:35:26 +00:00
Dzmitry Malyshau b91906eeac Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

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

--HG--
rename : dom/webgpu/InputState.cpp => dom/webgpu/DeviceLostInfo.cpp
rename : dom/webgpu/Fence.h => dom/webgpu/DeviceLostInfo.h
rename : dom/webgpu/BlendState.cpp => dom/webgpu/OutOfMemoryError.cpp
rename : dom/webgpu/LogEntry.h => dom/webgpu/OutOfMemoryError.h
rename : dom/webgpu/BindGroup.h => dom/webgpu/ProgrammablePassEncoder.cpp
rename : dom/webgpu/BlendState.cpp => dom/webgpu/RenderBundle.cpp
rename : dom/webgpu/BlendState.h => dom/webgpu/RenderBundle.h
rename : dom/webgpu/AttachmentState.cpp => dom/webgpu/ValidationError.cpp
rename : dom/webgpu/AttachmentState.h => dom/webgpu/ValidationError.h
extra : moz-landing-system : lando
2019-10-02 16:46:03 +00:00
Steve Fink 91b1ffaac3 Bug 1560667 - Collection of fixes for things uncovered by improvements to the hazard analysis. r=bzbarsky
Differential Revision: https://phabricator.services.mozilla.com/D46534

--HG--
extra : moz-landing-system : lando
2019-10-02 03:20:33 +00:00
Brindusan Cristian 8416452282 Backed out changeset 1ca9b7056c58 (bug 1581710) for mochitest failures at test_enabled.html. CLOSED TREE
--HG--
rename : dom/webgpu/ValidationError.cpp => dom/webgpu/AttachmentState.cpp
rename : dom/webgpu/ValidationError.h => dom/webgpu/AttachmentState.h
rename : dom/webgpu/RenderBundle.cpp => dom/webgpu/BlendState.cpp
rename : dom/webgpu/RenderBundle.h => dom/webgpu/BlendState.h
rename : dom/webgpu/DeviceLostInfo.cpp => dom/webgpu/InputState.cpp
rename : dom/webgpu/OutOfMemoryError.h => dom/webgpu/LogEntry.h
2019-10-02 06:04:25 +03:00
Dzmitry Malyshau 068927599a Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

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

--HG--
rename : dom/webgpu/InputState.cpp => dom/webgpu/DeviceLostInfo.cpp
rename : dom/webgpu/Fence.h => dom/webgpu/DeviceLostInfo.h
rename : dom/webgpu/BlendState.cpp => dom/webgpu/OutOfMemoryError.cpp
rename : dom/webgpu/LogEntry.h => dom/webgpu/OutOfMemoryError.h
rename : dom/webgpu/BindGroup.h => dom/webgpu/ProgrammablePassEncoder.cpp
rename : dom/webgpu/BlendState.cpp => dom/webgpu/RenderBundle.cpp
rename : dom/webgpu/BlendState.h => dom/webgpu/RenderBundle.h
rename : dom/webgpu/AttachmentState.cpp => dom/webgpu/ValidationError.cpp
rename : dom/webgpu/AttachmentState.h => dom/webgpu/ValidationError.h
extra : moz-landing-system : lando
2019-10-02 01:42:07 +00:00
Andrew McCreight dca80bb570 Bug 1579835, part 5 - Fix remote type matching in SelectTargetActorForServiceWorker. r=asuth
With Fission, the remote type can have the form webIsolated= in
addition to web. IsWebRemoteType() handles both of these cases.

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

--HG--
extra : moz-landing-system : lando
2019-09-25 22:40:49 +00:00
Anny Gakhokidze f1c694e18f Bug 1582531 - Update fission annotations for skipped tests that are now passing succesfully, r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D47347

--HG--
extra : moz-landing-system : lando
2019-09-27 14:25:10 +00:00
Tom Tung 27676f6b0d Bug 1562663 - P4b - Enable SAB for window.postMessage and worker.postMessage; r=nika
Differential Revision: https://phabricator.services.mozilla.com/D43243

--HG--
extra : moz-landing-system : lando
2019-09-23 09:57:24 +00:00
Tom Tung be1286818d Bug 1562663 - P4a - Deny sharing memery by default for DataClonePolicy; r=nika,lth
Differential Revision: https://phabricator.services.mozilla.com/D45187

--HG--
extra : moz-landing-system : lando
2019-09-26 13:27:25 +00:00