Commit Graph

785 Commits

Author SHA1 Message Date
Kartikaya Gupta
a8f112f62d Bug 763570 - Part 2 - Add a scrollframe from frameset documents on Fennec, so that they work with async pan/zoom and touch events. r=bz 2012-06-15 17:49:53 -04:00
Boris Zbarsky
34f805faee Bug 763424. Dynamic changes to generated content don't work correctly on frames which pass a child content insertion frame to ProcessChildren (e.g. <td>). r=dbaron 2012-06-11 18:21:35 -04:00
Ed Morley
7d13aab294 Backout 61fd66629c4f, 7c8121f8d3af & 2a2e9cf8fd41 (bug 539356), e31a5e6545d3 (bug 761884), 85fa80bd9792, a284ccb25b83, 2865904db9fc, 34e07b09c426, e9b3d41e0360, cef00ebcd6c8, f943b729ac14 & 783f298401b6 (bug 539356), 330a086f1570 (bug 741682), d80219c8842c (bug 739671), e8c96b4fd4da, 313af486e68d, 0adc41ff56dc, 0cd288a38085, f1d43208825c, 4859876972f3, eec8ef3ebe48, f7f29fcd1845, 6079b229d306, f23c3a7e7ce0, 9824458a41e2 & 6748b5496059 (bug 539356) for mochitest-4 orange & talos regressions on multiple platforms 2012-06-11 10:08:32 +01:00
Matt Woodrow
5076b975a0 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt
* * *
Bug 539356 - Part 9a - Add new display list invalidation API to nsDisplayItem and implement it. r=roc
* * *
Bug 539356 - Part 9b - Add new frame invalidation API. r=roc
* * *
Bug 539356 - Part 9c - Remove old invalidation code. r=bz
* * *
Bug 539356 - Part 9d - Make SVG support the new invalidation model. r=jwatt
* * *
Bug 539356 - Part 9e - FrameLayerBuilder changes for display list invalidation. r=roc
* * *
Bug 539356 - Part 9f - Compute the invalid area of the layer tree and pass this to the widget. r=roc
* * *
Bug 539356 - Part 9g - Modify MozAfterPaint code to work with the new invalidation model. r=roc
2012-06-11 16:45:30 +12:00
Mounir Lamouri
65040cbb94 Bug 760848 - Make select.size reflection follow the specifications. r=smaug 2012-06-07 01:27:53 +02:00
Ehsan Akhgari
ccdd37d975 Merge mozilla-central into mozilla-inbound 2012-06-06 12:46:50 -04:00
Ehsan Akhgari
d54aaab73b Bug 157681 - Part 2: Optimize positioned frame offset changes by moving the frame as opposed to reflowing it in case we know that the size of the frame will not change; r=dbaron
This patch adds a change hint to signal that one of the offsets on a
frame has been changed.  When processing the hint, we do one of the
following things based on the position property of the frame.

* For static frames, we ignore the offset changes completely, as they
  will not change the layout.
* For relative positioned frames, this patch refactors the
  nsHTMLReflowState::ComputeRelativeOffsets function so that it can be
  used from other callers, and it uses that to compute the new relative
  offsets, and uses the offsets computed previously to compute the new
  position of the frame.
* For absolute positioned frames, we set up a fake parent reflow state
  object, and then we create a new reflow state object for the frame in
  question.  This setup is similar to what nsFrame::BoxReflow does.
  Once we have the new reflow state object, we use it to compute the
  absolute offsets, and then we use the computed offsets to set the new
  position of the frame.  The offset computation is similar to what
  nsAbsoluteContainingBlock::ReflowAbsoluteFrame does.  In some cases
  where it is possible for the dimensions of the frame to change based
  on the offset changes, we fall back to a full reflow.
2012-06-06 00:53:48 -04:00
Boris Zbarsky
6543d621c5 Bug 464758. Don't try to check for :before/:after pseudos for frames that can't have them. r=dbaron 2012-05-29 23:45:17 -04:00
Boris Zbarsky
e7ff5ec8dd Bug 758885. Don't apply the dynamic :hover reresolution skipping optimization to selectors which can match on mutable state other than :hover. r=dbaron 2012-05-29 00:17:45 -04:00
Neil Deakin
994d3d4070 Bug 757485, remove nsIXBLService and use nsXBLService directly, r=bz 2012-05-23 14:46:04 -04:00
Gervase Markham
87620f5676 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Benjamin Smedberg
2187798a40 Bug 734847 part 2 - treewide changes resulting from the default-infallibility of hashtables; either remove useless result checks, or use the fallible version of APIs, depending on context, r=jlebar
--HG--
extra : rebase_source : 844b008c5167e6ca39a7ba9eeec8b30672938704
2012-05-18 13:30:49 -04:00
Aryeh Gregor
7cb03d1868 Bug 756045 - Turn "ASSERTION: anonymous nodes should not be in child lists" into an NS_WARNING; r=bz 2012-05-18 09:20:49 +03:00
Jonathan Watt
c8b52ec634 Bug 734082 - Compute and store bounds and visual overflow bounds for both SVG leaf and container frames. r=roc. 2012-05-17 05:05:09 +01:00
Vincent LAMOTTE
2c02cd383c Bug 657953 (1/2) - Implement the layout part of the meter element. r=roc 2012-05-16 17:47:10 +02:00
Boris Zbarsky
15639de868 Bug 751012. When saving frame state, make sure to walk through placeholders so we save the state of out-of-flow descendants properly. Also make sure to walk the continuations and special siblings of the root frame that we're saving state for. r=roc 2012-05-09 21:27:47 -04:00
Ehsan Akhgari
2be6b796b2 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).
2010-11-16 15:45:49 -05:00
Daniel Holbert
f5e19aafd6 Bug 745991: In nsCSSFrameConstructor::MaybeRecreateContainerForFrameRemoval, add explicit parenthesis around '&&' within '||' to silence GCC warning. r=smontagu 2012-04-17 09:56:15 -07:00
Mats Palmgren
7c5f8ba182 Bug 740743 - Implement CSS overflow for <legend>. r=bz 2012-04-13 17:52:13 +02:00
Phil Ringnalda
62e25bcddc Back out b00bf7f3869c (bug 737976) for apparently causing mochitest-1 leaks on a CLOSED TREE 2012-03-28 22:43:09 -07:00
Kyle Huey
5639dfdb41 Bug 737976: Remove nsINodeInfo. rs=bent 2012-03-28 19:07:37 -07:00
Daniel Holbert
5f9dc21353 Bug 740067: Make nsCSSFrameConstructor::CreateNeededTablePseudos return void. r=bz 2012-03-28 12:43:15 -07:00
Alexander Surkov
a9082ae143 Bug 656225 - XUL listbox accessible tree doens't get updated, r=tbsaunde, bz 2012-03-27 16:29:51 +09:00
Daniel Holbert
1081c5960c Bug 739439: Make nsFrameConstructorState::GetGeometricParent() a const method. r=bz 2012-03-26 15:36:13 -07:00
Daniel Holbert
a41e5d0dfb Bug 738007: Minor code cleanup in nsCSSFrameConstructor::FlushAccumulatedBlock. r=bz 2012-03-22 10:31:19 -07:00
Jim Mathies
b3261a33f5 Bug 737983 - win8 fixup for generic keyword collision, r=smaug. 2012-03-22 09:18:41 -05:00
Daniel Holbert
8e81617ab4 Bug 737313: Make nsCSSFrameConstructor::ConstructInline more robust when one of its child frames fails to construct. r=bz 2012-03-20 10:23:03 -07:00
Jonathan Watt
c9836192c8 Bug 734079, part 2 - Use a mark and asynchronously sweep scheme (similar to HTML reflow) to invalidate and update SVG frame bounds. r=longsonr. 2012-03-20 12:15:53 +00:00
Boris Zbarsky
42379a0010 Bug 537624. Don't set up undisplayed entries until we're sure we're creating frames from the relevant FrameConstructionItemList. r=roc 2012-03-19 18:22:02 -04:00
Boris Zbarsky
09fd9002b2 Bug 732667. Only do checks for :hover selectors when hover state changes on nodes which have relevant hover rules. r=dbaron 2012-03-12 22:54:15 -05:00
Boris Zbarsky
dd4557672b Bug 705877 part 6. Make frame construction use ancestor filters when resolving style. r=dbaron 2012-03-12 22:54:15 -05:00
Phil Ringnalda
47dd3c842e Back out 83a33626d965:6e9330f5a9bd (bug 732667 and bug 705877) for Windows build bustage 2012-03-12 22:12:41 -07:00
Boris Zbarsky
82ab90bd3f Bug 732667. Only do checks for :hover selectors when hover state changes on nodes which have relevant hover rules. r=dbaron 2012-03-12 22:54:15 -05:00
Boris Zbarsky
afdc791a4a Bug 705877 part 6. Make frame construction use ancestor filters when resolving style. r=dbaron 2012-03-12 22:54:15 -05:00
Daniel Holbert
9c55e83277 Bug 640443: Allow positioned display:-moz-box elements to be containers for absolutely-positioned content. r=bz 2012-03-10 14:49:10 -08:00
Boris Zbarsky
8ef15bf2e4 Bug 734406. Fix printing and print preview for <canvas> by checking for script-enabled on the original document, not on the printing document. r=tnikkel 2012-03-09 22:32:51 -06:00
Jonathan Watt
667ba4d4ec Bug 734218 - nsChangeHint_RepaintFrame should only invalidate the bounds of SVG frames, not update them. r=dholbert. 2012-03-09 08:55:28 +00:00
Nathan Froyd
7adb7a65ea Bug 731615 - Eliminate duplicate headers in layout. rs=smontagu 2012-02-29 10:57:47 -05:00
Mats Palmgren
4055535431 Bug 727601 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint" with display:table. r=roc 2012-03-01 13:34:19 +01:00
David Bolter
38d7fde319 Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
Ed Morley
d9eda11faf Backout 547de632a3e2 (bug 495912) for mochitest-a11y orange 2012-02-29 18:42:58 +00:00
David Bolter
28fe167db3 Bug 495912 - Expose content in HTML canvas elements. r=bz,roc r=surkov(tests)
layout-mentor: bz (mucho thanks!)

We make html canvas frame a container and render frames for its content which makes a lot of what we need for accessibility "just work".
2012-02-17 23:26:37 -05:00
Boris Zbarsky
3361b1a265 Bug 728516. Refactor frame construction for things that want to wrap kids in a block. r=roc 2012-02-21 18:01:40 -05:00
Boris Zbarsky
d389408e85 Bug 728111. Fix the block inside foreignObject to really be the absolute containing block for its kids. r=roc 2012-02-21 18:01:40 -05:00
Mats Palmgren
40d237437d Bug 725535 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint". r=roc 2012-02-12 22:21:50 +01:00
Phil Ringnalda
e66d5e8494 Back out 1cd8c9b40035 (bug 725376), df43cc1f72e1 (bug 725535), and 8a820e4ee7f6 (bug 726364) for reftest orange 2012-02-12 14:01:58 -08:00
Mats Palmgren
d8827751c4 Bug 725535 - "ASSERTION: Only transformed frames should have UpdateTransformLayer hint". r=roc 2012-02-12 22:21:50 +01:00
Chris Lord
a9e19ab710 Bug 722325 - Revert bug 720987 for transformed frames. r=roc
The fix checked in for bug 720987 caused a major rendering regression with
native fennec. Revert it for transformed frames until the correct fix is found.
2012-02-09 16:42:14 +01:00
Robert O'Callahan
3f0ffee8df Bug 722923. Part 1: Strip opacity/transform update hints when we recursively invalidate over our children. r=mats 2012-02-08 11:52:59 +13:00
Mats Palmgren
9a96be0645 Bug 724432 - Skip UpdateOverflow if we did Reflow. Don't propagate UpdateOverflow in ReResolveStyleContext. r=roc 2012-02-07 12:31:47 +01:00
Mats Palmgren
8725a003ca merge backout 2012-02-07 12:31:08 +01:00
Mats Palmgren
1cf7c40a90 Backout bug 722325 (a8b8c4489e4e). r=roc 2012-02-07 12:31:03 +01:00
Chris Lord
d3facdaf33 Bug 722325 - Revert bug 720987 for transformed frames. r=roc
The fix checked in for bug 720987 caused a major rendering regression with
native fennec. Revert it for transformed frames until the correct fix is found.
2012-02-01 08:50:24 +00:00
Mats Palmgren
cc0eaa8b82 Bug 720987 - Don't use the existing overflow areas when calculating the new overflow areas after a style change. r=roc 2012-01-28 04:35:58 +01:00
Simon Montagu
3ed3fbe05b Recreate content when a deleted frame is the only child of a bidi continuation frame. Bug 718236, r=roc 2012-01-26 00:04:22 -08:00
Mats Palmgren
ae61295f82 Bug 524925 - Update the overflow for all the affected frames, not just the primary frame. And the ancestors of those. part=2/6 r=roc 2012-01-18 21:04:51 +01:00
Benjamin Stover
a371dc7830 Bug 524925 - Recompute overflow without reflowing for transforms. part=1/6 r=dbaron
Add an extra change hint, UpdateOverflow, that can be used to specify that
a frame's overflow areas may have changed and that they need to be recalculated.
When a transform on a frame changes, instead of marking it for reflow, set this
hint instead.

There is an added virtual function on nsIFrame, UpdateOverflow, which is called
recursively on a frame when the corresponding hint is set, to allow it to
update its overflow areas.
2011-06-15 14:03:49 -07:00
Cameron McCormack
e429013df1 Bug 724706 - Use NS_NewBlockFormattingContext instead of NS_NewBlockFrame with the bfc flags. r=roc 2012-02-07 10:49:08 +11:00
Robert Longson
e7583c378e Bug 616892 - Make more updates honour suspendRedraw. r=roc 2012-02-04 13:58:46 +00:00
Jonathan Watt
15b82e8416 Bug 714839 - Make nsCSSFrameConstructor inherit nsFrameManager. r=bz.
--HG--
extra : rebase_source : 23c36617c5088884b7e1ecea48e6c09aa8757690
2012-02-02 10:06:46 +00:00
Markus Stange
1cedbde342 Bug 598482 part 19 - Remove unused aViewManager argument. r=roc 2011-12-23 22:52:24 -05:00
Markus Stange
464140fc29 Bug 598482 part 15 - Rename view update batches to refresh disable batches and only use them in the two places that can enter reflow (where synchronous painting is permitted). r=roc 2011-12-23 22:52:23 -05:00
Markus Stange
d13d62c3a3 Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05:00
Robert Longson
48d9142be8 Bug 607854 - implement SVGTests interface. r=jwatt 2011-12-31 09:44:03 +00:00
Mats Palmgren
ecaac9ba30 Bug 515530 - Remove nsHTMLContainerFrame. r=roc 2011-12-27 21:18:48 +01:00
Phil Ringnalda
3cce1527f8 Back out 1ac4cb2e7c32 to c631f9c3e9a9 (bug 598482) for Android reftest failures 2011-12-23 22:21:58 -08:00
Markus Stange
16016338ca Bug 598482 part 19 - Remove unused aViewManager argument. r=roc 2011-12-23 22:52:24 -05:00
Markus Stange
d377851c88 Bug 598482 part 15 - Rename view update batches to refresh disable batches and only use them in the two places that can enter reflow (where synchronous painting is permitted). r=roc 2011-12-23 22:52:23 -05:00
Markus Stange
352b17f6aa Bug 598482 part 7 - Remove NS_VMREFRESH_* flags. NS_VMREFRESH_NO_SYNC is now the unchangable default. r=roc 2011-12-23 22:52:22 -05:00
Boris Zbarsky
26c6c71812 Bug 302566. Show canvas fallback content when script is disabled. r=tnikkel 2011-12-21 16:50:39 -05:00
Jonathan Watt
623f86d555 Bug 704706 - Fix crash @ nsSVGPathGeometryFrame::UpdateCoveredRegion. r=longsonr. 2011-12-13 17:50:30 +00:00
Brian O'Keefe
755f228bc5 Bug 708846 - Clean up the SVG namespace checks to use nsIContent::IsSVG() instead; r=longsonr 2011-12-15 14:47:03 +00:00
Masatoshi Kimura
26a3901298 Bug 704820 - Simplify nsContentUtils::ReportToConsole. r=smaug 2011-12-15 14:47:03 +00:00
Boris Zbarsky
74aef0d2d5 Bug 709256 part 3. Skip calling PresShell::FlushPendingNotifications altogether if there might not be anything to flush. r=roc 2011-12-14 23:42:15 -05:00
Robert Longson
44824c6d1e Bug 696078 - Move filter attribute processing to frame classes. r=jwatt
--HG--
rename : layout/svg/base/src/nsSVGLeafFrame.cpp => layout/svg/base/src/SVGFELeafFrame.cpp
extra : rebase_source : 74ac4d84da2f0a99272e83590a9adc1dc8511fce
2011-11-19 17:53:52 +00:00
David Zbarsky
71021df43b Bug 660959 - Update link state less lazily r=bz 2011-11-14 16:24:41 +13:00
Ehsan Akhgari
dbe53002d5 Backout changeset be42bc18185a (bug 612128) because of bug 688423 2011-10-25 22:32:55 -04:00
Ehsan Akhgari
317cb20a80 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).

--HG--
extra : rebase_source : 37317b4d95c2ea957be81420583a98a24f0864ac
2010-11-16 15:45:49 -05:00
Kang-Hao (Kenny) Lu
ca8175d0d8 Bug695538 - Make sure that trailing spaces don't get dropped by nsCSSFrameConstructor::CreateNeededTablePseudos in certain cases. r=bz 2011-10-20 10:09:33 +02:00
Olli Pettay
a86b1a4d43 Bug 682420 - Rename nsINode::GetOwnerDoc to nsINode::OwnerDoc, part 1, r=jst
--HG--
extra : rebase_source : baf1a25cdea68d499a7673fdf96e27b5a12dc83c
2011-10-18 13:53:36 +03:00
Ehsan Akhgari
2a602a5685 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Jeff Walden
b7753477cf Bug 693469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. (Exceptions: assigning to static initializers, use in static assertions, as template parameters, etc. These will go away when the relevant compilers have C++11 constexpr support.) r=cjones
--HG--
extra : rebase_source : b4bae9a0f85abf2feb828609b50e756916b99a6f
2011-10-10 22:50:08 -07:00
Jeff Walden
eb2cb918a4 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
77ebbde4ab Bug 639469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. r=cjones
--HG--
extra : rebase_source : 860a8271bf7e51cde358f2a4185c410de1fc2960
2011-10-10 22:50:08 -07:00
Daniel Holbert
682ed444b5 Bug 691959: Remove unused variable 'bool done' from nsCSSFrameConstructor.cpp. r=dbaron 2011-10-08 14:44:26 -07:00
Ehsan Akhgari
82c43f09d4 Bug 656130 - Part 1: Make sure that the absolute containing frame to be returned is actually marked as such in the frame tree; r=bzbarsky 2011-05-11 19:53:34 -04:00
Ehsan Akhgari
ef73506d4d Bug 10209 - Part 5: Allow table elements to act as absolute positioning containers; r=roc 2011-05-09 20:36:10 -04:00
Ehsan Akhgari
b273fc68d8 Bug 10209 - Part 2: Implement the absolute positioning support for all frames; r=roc 2011-04-29 19:02:33 -04:00
Ehsan Akhgari
47d44b9dc3 Bug 10209 - Part 1: Add an API for absolute container support for all frame types; r=roc 2011-04-27 19:41:43 -04:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Ehsan Akhgari
85e673bce7 Backout changeset a72195ce0eaa (bug 612128) becasue of Fennec regressions 2011-09-22 18:09:44 -04:00
Boris Zbarsky
e88e132dc5 Bug 686656. Make sure to skip animation rules as well as transition rules when we're reparenting a style context when not processing an animation restyle. r=dbaron 2011-09-20 23:52:44 -04:00
Ehsan Akhgari
ec2d83e852 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).
2010-11-16 15:45:49 -05:00
Mats Palmgren
ba8355dd94 Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc
Make nsCSSFrameConstructor::ConstructTable return a null frame if
creating the inner table frame fails.  Simplify some code since we can
now depend on the invariant that a properly created outer table frame
always has a non-null inner table frame.
2011-09-12 09:08:07 -07:00
Mats Palmgren
4a82c200c1 Bug 685154 - Cleanup nsIFrame::GetParentStyleContextFrame and related code. r=roc
Make nsIFrame::GetParentStyleContextFrame return the frame directly
instead of indirectly through an out parameter.  Remove the unused
nsPresContext parameter.
2011-09-12 09:08:07 -07:00
L. David Baron
fe83f8c9e2 Add comment pointing out reason for distinguishing anonymous blocks for positioned inlines. No bug. 2011-09-09 12:50:20 -07:00
Mats Palmgren
2a1e806d9f Bug 653649 - New way of getting child lists from frames. (part 5/5) r=roc
Add a kPrincipalList alias in nsCSSFrameConstructor.cpp to avoid
the nsIFrame:: prefix in numerous places.
2011-08-24 22:54:30 +02:00
Mats Palmgren
6894179e71 Bug 653649 - New way of getting child lists from frames. (part 4/5) r=roc
Remove the nsIAtom* child list names and use child list ID enum instead.
2011-08-24 22:54:30 +02:00
Mats Palmgren
f06792a6ef Bug 653649 - New way of getting child lists from frames. (part 3/5) r=roc
Update GetAdditionalChildListName consumers to use the new
child list iterator instead.
2011-08-24 22:54:29 +02:00
Jonathan Hage
822cfb4c1d Bug 668204 - Merge nsMathMLmunderFrame and nsMathMLmoverFrame into nsMathMLmunderoverFrame. r=karlt 2011-08-13 17:22:12 +02:00