| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2012 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 bool havePendingAnimation = m_timelineState == SuspendedWithAnimationPending; | 75 bool havePendingAnimation = m_timelineState == SuspendedWithAnimationPending; |
| 76 m_timelineState = Running; | 76 m_timelineState = Running; |
| 77 | 77 |
| 78 // If an animation frame was pending/requested while animations were | 78 // If an animation frame was pending/requested while animations were |
| 79 // suspended, schedule a new animation frame. | 79 // suspended, schedule a new animation frame. |
| 80 if (!havePendingAnimation) | 80 if (!havePendingAnimation) |
| 81 return; | 81 return; |
| 82 scheduleAnimation(nullptr); | 82 scheduleAnimation(nullptr); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void SVGImageChromeClient::scheduleAnimation(Widget*) { | 85 void SVGImageChromeClient::scheduleAnimation(FrameViewBase*) { |
| 86 // Because a single SVGImage can be shared by multiple pages, we can't key | 86 // Because a single SVGImage can be shared by multiple pages, we can't key |
| 87 // our svg image layout on the page's real animation frame. Therefore, we | 87 // our svg image layout on the page's real animation frame. Therefore, we |
| 88 // run this fake animation timer to trigger layout in SVGImages. The name, | 88 // run this fake animation timer to trigger layout in SVGImages. The name, |
| 89 // "animationTimer", is to match the new requestAnimationFrame-based layout | 89 // "animationTimer", is to match the new requestAnimationFrame-based layout |
| 90 // approach. | 90 // approach. |
| 91 if (m_animationTimer->isActive()) | 91 if (m_animationTimer->isActive()) |
| 92 return; | 92 return; |
| 93 // Schedule the 'animation' ASAP if the image does not contain any | 93 // Schedule the 'animation' ASAP if the image does not contain any |
| 94 // animations, but prefer a fixed, jittery, frame-delay if there're any | 94 // animations, but prefer a fixed, jittery, frame-delay if there're any |
| 95 // animations. Checking for pending/active animations could be more | 95 // animations. Checking for pending/active animations could be more |
| (...skipping 21 matching lines...) Expand all Loading... |
| 117 // | 117 // |
| 118 // TODO(Oilpan): move (SVG)Image to the Oilpan heap, and avoid | 118 // TODO(Oilpan): move (SVG)Image to the Oilpan heap, and avoid |
| 119 // this explicit lifetime check. | 119 // this explicit lifetime check. |
| 120 if (ThreadHeap::willObjectBeLazilySwept(m_image->getImageObserver())) | 120 if (ThreadHeap::willObjectBeLazilySwept(m_image->getImageObserver())) |
| 121 return; | 121 return; |
| 122 | 122 |
| 123 m_image->serviceAnimations(monotonicallyIncreasingTime()); | 123 m_image->serviceAnimations(monotonicallyIncreasingTime()); |
| 124 } | 124 } |
| 125 | 125 |
| 126 } // namespace blink | 126 } // namespace blink |
| OLD | NEW |