Commit Graph

360 Commits

Author SHA1 Message Date
Daniel Holbert
5f943d14e5 Bug 666041 patch 5: Use flex-basis in place of main-size property, when computing the main size of a flex item. r=dbaron 2012-09-05 14:13:37 -07:00
Ehsan Akhgari
89cd886155 Bug 785720 - Move the MathML token frame leading/trailing whitespace trimming logic to nsTextFrame; r=roc 2012-08-30 21:32:02 -04:00
Jonathan Watt
38a0ba3182 Bug 786387 - Add comments to document the subtleties of nsFrame::Reflow and better document the main dirty frame bits. r=bz. 2012-08-29 09:01:09 +01:00
Ehsan Akhgari
0fd9123eac Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Jonathan Kew
0f3953fc35 bug 769303 - precompute intrinsic width of floats. r=roc 2012-08-10 12:16:52 +01:00
Ms2ger
3f950b5744 Bug 780387 - Part b: Stop using PRIntn; r=bsmedberg 2012-08-09 09:09:40 +02:00
David Zbarsky
72cd4190b0 [Bug 780439] Kill off the remains of nsIBox r=roc 2012-08-05 23:00:57 -04:00
David Zbarsky
d50e4a7565 [Bug 780428] Don't include nsIFrame.h in places where it's not necessary r=roc 2012-08-05 23:00:56 -04:00
Cameron McCormack
c819a0d0ac Bug 655877 - Part 16: Treat all values of display other than 'none' as 'inline' in SVG text frames. r=roc 2012-08-02 21:38:51 +10:00
Cameron McCormack
ba7efb66ff Bug 655877 - Part 15: Don't treat SVG text frames as being positioned. r=roc 2012-08-02 21:38:50 +10:00
Cameron McCormack
f41c8a5fe8 Bug 655877 - Part 14: Ignore float in SVG text frames. r=roc 2012-08-02 21:38:49 +10:00
Cameron McCormack
e8c382e651 Bug 655877 - Part 11: Ignore vertical-align and map dominant-baseline to vertical-align in SVG text frames. r=roc 2012-08-02 21:38:48 +10:00
Cameron McCormack
9e9a90293b Bug 655877 - Part 7: Add IsSVGText helper function to nsIFrame. r=roc 2012-08-02 21:38:46 +10:00
Cameron McCormack
1070e55b13 Bug 655877 - Part 3: Add a frame state bit and anonymous box pseudo for SVG text frames. r=roc 2012-08-02 21:38:46 +10:00
David Zbarsky
f386a1e940 Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-31 10:28:21 -07:00
Mark Finkle
70a01196ec Backout 169ff207ed19, a34baed70c1b, f9ccdd490bd7, 39550ed860e6, 2194a2dd66b2, 908eb2e26843, a76e0a267f26 due to mobile viewport bustage (bug 778580) 2012-07-30 14:36:12 -04:00
Aryeh Gregor
e806eeab4f Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
David Zbarsky
5a900008c4 Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-27 13:23:44 -07:00
Ed Morley
be8bf4beae Backout 1244b8a8e57a (bug 755084), 32d16d0f87c9 (bug 706179), 8548e016d4a9 (bug 768440), 697f5b87eae9 (bug 768440), 808fc2bd4e8c (bug 755084), 54b1484cd125 (bug 755084), 876726b632c0 (bug 706179) for xul android R3 failures 2012-07-25 16:37:04 +01:00
David Zbarsky
0fe356e5ed Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-25 01:48:09 -07:00
Matt Brubeck
2e41f92cb5 Back out f4f5189b1d0c, 3b4f0606c547, b8a5a1ab8a5f, 5078933d6954, 7e0260c45de9 (bug 768440, bug 755084, bug 706179) because of reftest failures 2012-07-23 20:25:51 -07:00
David Zbarsky
5deebe2e9b Bug 755084 Part 2: Perform CSS animations of transform and opacity on the compositor r=roc, dbaron 2012-07-23 17:34:46 -07:00
Matt Woodrow
35775825fa Bug 539356 - Part 28 - Cached nsDisplayBackground rasterizations with BasicLayers. r=roc 2012-07-23 15:00:36 +12:00
Matt Woodrow
0bc8f48c38 Bug 741682 - Flatten component alpha layers into their parent layer with BasicLayers. r=roc 2012-07-23 15:00:36 +12:00
Jonathan Watt
77a641125d Bug 614732 - Implement display list based painting and hit-testing for SVG. r=roc.
--HG--
extra : rebase_source : 77e55885fbbf428008f5be787ddeb7e561c0d9bd
2012-07-20 14:12:29 -04:00
Daniel Holbert
67a78e931c (no bug) Fix typo in parameter name, in documentation for nsIFrame::InsertFrames and nsIFrame::AppendFrames. Comment-only, DONTBUILD 2012-07-15 16:21:00 -04:00
Rafael Ávila de Espíndola
d64f5bd247 Bug 774025 - Remove extra ;. r=roc. 2012-07-15 00:14:06 -04:00
Cameron McCormack
bd91987c75 Bug 771879 - Minor code formatting tweaks. r=roc 2012-07-09 11:09:50 +10:00
Ehsan Akhgari
5e6974df88 Backout changeset f568fc280fb0 (bug 539356) because of performance and correctness regressions 2012-07-03 20:24:55 -04:00
Ehsan Akhgari
9f0ed28993 Backout changeset ba840bf34511 (bug 539356) because of performance and correctness regressions 2012-07-03 20:20:24 -04:00
Ehsan Akhgari
392100a449 Backout changeset 65410094add4 (bug 539356) because of performance and correctness regressions 2012-07-03 20:19:18 -04:00
Ehsan Akhgari
d717fc9221 Backout changeset 3c553c4b10e9 (bug 539356) because of performance and correctness regressions 2012-07-03 20:15:23 -04:00
Ehsan Akhgari
64c98e2147 Backout changeset 6234134d4430 (bug 539356) because of performance and correctness regressions 2012-07-03 20:08:19 -04:00
Ehsan Akhgari
5681317888 Backout changeset 071d6332729b (bug 770058 part 1) because DLBI is being backed out 2012-07-03 19:38:00 -04:00
Robert O'Callahan
16e3ef3b5f Bug 770058. InvalidateFrame doesn't need flags, we can just avoid calling ScheduleRepaint if we find any ancestor frame with a descendant that needs invalidation. r=mattwoodrow 2012-07-03 14:24:14 +12:00
Matt Woodrow
660deac456 Bug 539356 - Part 28 - Cached nsDisplayBackground rasterizations with BasicLayers. r=roc 2012-06-30 15:06:14 +12:00
Matt Woodrow
dbca7f19d8 Bug 539356 - Part 18 - Mark frames with only invalid children as an optimization to use when invalidating further frames. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
ffcd727240 Bug 741682 - Disable component alpha layers with BasicLayers. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
6b8da8ec1c Bug 539356 - Part 11 - Reimplement empty transactions. r=roc 2012-06-30 15:06:12 +12:00
Matt Woodrow
cbd39105d9 Bug 539356 - Part 9 - Implement DLBI. r=roc,bz,jwatt 2012-06-30 15:06:11 +12:00
Jonathan Watt
678c10801d Bug 767823 - Make nsAutoFilterInstance take frame rects and stop using GetCoveredRegion. r=longsonr. 2012-06-26 11:49:23 +01:00
Jonathan Watt
6380335603 Bug 767388 - Kill NS_DEBUG. r=bz.
--HG--
extra : rebase_source : d045208a26345712dbb4628c973c616cd9504f28
2012-06-25 20:59:42 +01:00
Mounir Lamouri
744531ad99 Back out bug 766007, bug 703241 and bug 752796 due to perma-orange (419f0d1b848b to 8661c74deeb5). 2012-06-22 11:13:32 +02:00
Robert O'Callahan
d9153fe2d6 Bug 703241. PresShell::DoScrollContentIntoView and PresShell::ScrollFrameRectIntoView should take transforms into account. r=matspal 2012-06-22 17:06:49 +12:00
Boris Zbarsky
6e136586b6 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
Robert O'Callahan
05d68e6828 Bug 758179. Part 2: Add flags parameter to GetContentOffsetsFromPoint(External). r=mats 2012-05-30 01:13:36 +12:00
Trevor Saunders
3b1f9183dc bug 759033 - nsAccessible -> Accessible and nsAccessibleWrap -> AccessibleWrap r=surkov
--HG--
rename : accessible/src/atk/nsAccessibleWrap.cpp => accessible/src/atk/AccessibleWrap.cpp
rename : accessible/src/atk/nsAccessibleWrap.h => accessible/src/atk/AccessibleWrap.h
rename : accessible/src/base/nsAccessible.cpp => accessible/src/generic/Accessible.cpp
rename : accessible/src/base/nsAccessible.h => accessible/src/generic/Accessible.h
rename : accessible/src/mac/nsAccessibleWrap.h => accessible/src/mac/AccessibleWrap.h
rename : accessible/src/mac/nsAccessibleWrap.mm => accessible/src/mac/AccessibleWrap.mm
rename : accessible/src/msaa/nsAccessibleWrap.cpp => accessible/src/msaa/AccessibleWrap.cpp
rename : accessible/src/msaa/nsAccessibleWrap.h => accessible/src/msaa/AccessibleWrap.h
rename : accessible/src/other/nsAccessibleWrap.cpp => accessible/src/other/AccessibleWrap.cpp
rename : accessible/src/other/nsAccessibleWrap.h => accessible/src/other/AccessibleWrap.h
2012-05-28 21:18:45 -04:00
Gervase Markham
ca171eec44 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Jonathan Watt
75835eecfc 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
Robert O'Callahan
dcc4fc6d0f Bug 735898. Part 7: Remove expensive nsIFrame::HasBorder checks, just check style instead. r=dbaron,a=blocking-fennec 2012-04-18 17:14:31 +12:00
L. David Baron
8c67e2ae8b Add a font inflation data structure per block formatting context. (Bug 706193, patch 2) r=roc
This structure is per block formatting context because we have to make a
single inflation decision for things like consecutive runs of paragraphs
of text.  Inflating some paragraphs and not others (within the same
sequence of adjacent paragraphs) based on the amount of text in each one
would be disastrous.  Otherwise it's ideal for the units to be as small
as possible as long as they merge such sequences; therefore this uses a
definition corresponding to CSS's idea of elements that establish new
block formatting contexts.
2012-04-16 15:32:12 -07:00
Ehsan Akhgari
fe02fdb396 Bug 726592 - Uninitialised value use in nsTextFrame::GetChildFrameContainingOffset; r=roc
--HG--
extra : rebase_source : 3e5d2fafc028edb2940bef07302161670692d5a1
2012-03-26 09:09:38 -07:00
Henri Sivonen
0b5228046a Bug 738572 - #include nsIHTMLContentSink.h in fewer places. r=bzbarsky. 2012-03-23 17:21:44 +02:00
Scott Johnson
473dddfa8f Bug 711418 - Enable font inflation for body and html elements with fixed heights. [r=dbaron] 2012-03-23 22:47:43 -05:00
Simon Montagu
a2edafefab Add a mParagraphDepth member to BidiParagraphData and cache it on frames to track nested bidi-isolated paragraphs. Use mParagraphDepth (* 2 + isRTL in order to keep LTR even and RTL odd) as the initial paragraph embedding level instead of pushing a stack of embedding codes. Pass the <bdi> frame instead of its first-child to BidiParagraphData::Reset and save a call to GetParent(). Split inline ancestors before and after bidi-isolated paragraphs, in the same way that we currently do between runs in different directions. This required also adding code to SplitInlineAncestors to handle situations where the parent frame is being split before its first child or after its last child. In JoinInlineAncestors, prevent frames that belong to paragraphs isolated from one another from being rejoined. Bug 712600, r=ehsan, roc 2012-01-11 21:26:02 +02:00
Daniel Holbert
7dcfb057c4 Bug 732610 - Make nsIFrame::ComputeSize take a bitfield 'aFlags' instead of a bool 'aShrinkWrap'. r=dbaron 2012-03-16 11:01:05 -07:00
Boris Zbarsky
5de63bd68d Bug 705877 part 5. Make style reresolution actually use ancestor filters. r=dbaron 2012-03-12 22:54:15 -05:00
Phil Ringnalda
b1d1a41987 Back out 83a33626d965:6e9330f5a9bd (bug 732667 and bug 705877) for Windows build bustage 2012-03-12 22:12:41 -07:00
Boris Zbarsky
8469637d0c Bug 705877 part 5. Make style reresolution actually use ancestor filters. r=dbaron 2012-03-12 22:54:15 -05:00
Matt Woodrow
49bb21ce6d Bug 731777 - Correctly recompute overflow areas for frames with transform perspective applied. r=roc 2012-03-12 15:04:25 +13:00
Mats Palmgren
6fca6aec5e Bug 728906 - Make nsIFrame::GetChildList return const nsFrameList&. r=bz 2012-03-08 02:57:37 +01:00
Jonathan Watt
2034ac9bbc Bug 731959 - Display list support for the 'clip' property in SVG means referring to "AbsPos" clip is misleading. r=bz. 2012-03-02 08:28:56 +00:00
Matt Woodrow
cca8fbcca8 Bug 721082 - Make perspective-origin relative to the parent elements border box. r=roc 2012-02-15 22:28:22 +13:00
Matt Woodrow
6905e450dd Bug 721082 - Constify nsIFrame::GetParentStyleContextFrame. r=roc 2012-02-15 22:28:21 +13:00
L. David Baron
06fe8e9788 Add a frame state bit for whether a frame is a container for font size inflation (Bug 706609, patch 1) r=roc
This moves the logic currently in
nsLayoutUtils::IsContainerForFontSizeInflation into frame initialization
so that we can (later, for bug 706193) make that logic more complicated.
2012-01-24 17:21:28 -08:00
Benjamin Stover
0a52de4032 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
Robert O'Callahan
0fb0f8bbd4 Bug 591718. Part 1: rename some poorly-named methods, rework global-transform methods to avoid computing bounding-boxes more than once when there are are multiple transformed ancestors, make sure nsIFrame::GetTransformMatrix can stop at any desired ancestor. r=mats 2011-12-28 16:24:18 +13:00
Mats Palmgren
1e2a52a8bd Bug 619273 - Move the selection state bit from frames to content nodes. r=smaug 2011-12-20 10:15:41 +01:00
Robert O'Callahan
854ef91454 Bug 699351. Add nsIFrameLoader::clipSubdocument API to allow XUL <iframe> and <browser> to not clip the subdocument. r=tnikkel,sr=bzbarsky 2011-12-06 01:38:46 +13:00
Brad Lassey
8d2f605b6d Bug 687972 - backing out changesets b17ab862bbc1 and a6db0c6c94a3 r=orange 2011-11-30 22:59:00 -05:00
Robert O'Callahan
a86c192475 Bug 699351. Add nsIFrameLoader::clipSubdocument API to allow XUL <iframe> and <browser> to not clip the subdocument. r=tnikkel,sr=bzbarsky 2011-11-30 21:14:26 -05:00
L. David Baron
3305bb2f9c Don't duplicate frame state bits, so that we can assert about NS_FRAME_IN_REFLOW during painting. (Bug 627842, patch 3.5) r=roc 2011-11-23 18:48:23 -08:00
L. David Baron
532d22e477 Set an NS_FRAME_IN_CONSTRAINED_HEIGHT state bit on frames that are in a constrained space. (Bug 627842, patch 2) r=roc 2011-11-23 18:48:23 -08:00
Scott Johnson
3a74456f46 Bug 666446, Part 4/10 - Implement refresh driver based animations in nsImageLoadingContent to improve efficiency of animated GIF images. [r=roc][sr=mats] 2011-11-09 13:39:16 -08:00
Justin Lebar
86c0378be8 Back out bug 666446 due to Talos regression. 2011-11-02 20:11:01 -04:00
Scott Johnson
7d86e5fc20 Bug 666446, Part 4/10 - Implement refresh driver based animations in nsImageLoadingContent to improve efficiency of animated GIF images. [r=roc][sr=mats] 2011-11-01 11:06:53 -04:00
Timothy Nikkel
df8878f8ed Bug 658005. Part 4. Remove nsIFrame::AreAncestorViewsVisible now that it is unused. r=roc 2011-10-26 18:57:55 -05:00
Timothy Nikkel
09778341dc Bug 658005. Part 2. Add a frame visibility API that takes into account everything we need, and use it. r=roc 2011-10-26 18:57:55 -05:00
Matt Woodrow
b18a7f9176 Bug 695275 - Add CheckAndClearPaintedState to test painting. r=roc 2011-10-26 16:23:26 +13: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
Matt Woodrow
d7e185cd24 Bug 691864 - Recompute preserve-3d children overflow areas after all needed sizes are available. r=roc 2011-10-15 09:43:38 +13:00
Scott Johnson
d7adce1370 Backout cset 9d3ac2d3da11 from bug 666446 while we sort out regressions 2011-10-07 00:25:36 -07:00
Scott Johnson
e317548311 Bug 666446, Part 4/18 - Implement refresh driver based animations in nsImageLoadingContent to improve efficiency of animated GIF images. [r=roc][sr=mats] 2011-10-03 13:39:05 -07:00
Ehsan Akhgari
c15d8c0733 Bug 10209 - Part 6: Implement the CSS "containing block" concept correctly as a binary relation, as opposed to a unary relation; r=bzbarsky 2011-05-12 00:04:30 -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
Adam Dane [:hobophobe]
35dfe378d7 bug 591249 - event dragleave not properly dispatched if drag-and-drop aborted with ESC within iframe. r=smaug 2011-09-26 15:55:04 -05: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
Daniel Holbert
85cc006afe (no bug) Fix 2 typos within comments in nsIFrame.h DONTBUILD 2011-09-07 17:19:32 -07:00
Matt Woodrow
ec5a391004 Bug 505115 - Part 14b - Layout support for -moz-transform-style. r=roc 2011-08-27 12:01:46 +12: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
90d0315f85 Bug 653649 - New way of getting child lists from frames. (part 2/5) r=roc sr=dbaron
Implement GetChildList(ChildListID) and GetChildLists(nsTArray<ChildList>*)
for various frame classes.  Remove GetAdditionalChildListName(PRInt32)
methods and associated macros and list index constants.
2011-08-24 22:54:29 +02:00
Vitor Menezes
e28c55c2e9 Fix text-decoration positioning in quirks mode and set overflow areas to match. (Bug 403524) r=dbaron
Change the quirks mode text-decoration code (soon to be used for all
modes) to follow CSS 2.1's rules for positioning of decoration lines.
Decorations are now drawn at a constant vertical position established by
the element creating the decoration, and more than one of the same type
(underline, overline, line-through) of decoration are supported on the
same piece of text.

This means that text-decorations can now significantly overflow a text
frame, since the vertical-alignment of the element with text-decoration
may be substantially different from the vertical alignment of the text.
Set overflow areas for text frames with text decorations in
nsLineLayout::RelativePositionFrames since it must happen *after*
vertical alignment is done, and when relative positioning data are
consistent (nsIFrame::GetRelativeOffset matches the offset that has been
applied).
2011-08-03 11:30:58 -07:00
Matt Woodrow
6366c7e2e7 Bug 505115 - Part 5 - Use gfx3DMatrix in layout. r=roc 2011-07-23 10:28:51 +12:00
Neil Deakin
4bf3881ba3 Bug 670148, remove nsIBoxLayout, r=roc 2011-07-11 10:05:10 -04:00
Neil Deakin
eb070d343a Bug 666927, clean up nsBoxFrame::GetLayoutManager to return value, r=roc 2011-07-04 10:39:10 -04:00
Ehsan Akhgari
c4436101c8 Back out bug 10209 and bug 656875 (its regression fix) from Aurora because the work on this bug has not been finished yet
--HG--
extra : transplant_source : t%9F%EB%2Aa%A4%C0%9Ab%A5%DDQ%3EMD%5E%01h%E7%2A
2011-06-01 16:18:15 -04:00
Robert O'Callahan
59cfc47b23 Bug 637852. Part 17: Tighten up AreLayersMarkedActive so we track exactly what properties are changing. Also, clamp resolution to power-of-2 only if the frame's transform has a scale. r=tnikkel
This lets us avoid clamping the scale in more situations. We should only clamp the scale when we think
the scale is changing due to a changing transform --- the goal of clamping is to not have to redraw the content
too often when the content is zooming in or out.
2011-06-23 00:11:28 +12:00
L. David Baron
21f6d8d9c6 Remove notion of percentage of intrinsic size: remove code that handles percentages (which are no longer set thanks to the previous patch) and make them invalid. (Bug 611099) r=dholbert
Needed to help CSS 2.1 meet Proposed Recommendation entrance criteria.
2011-06-12 18:52:32 -07:00