| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google 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 are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #include "core/layout/ImageQualityController.h" | 31 #include "core/layout/ImageQualityController.h" |
| 32 | 32 |
| 33 #include "core/frame/FrameView.h" | 33 #include "core/frame/FrameView.h" |
| 34 #include "core/frame/LocalFrame.h" | 34 #include "core/frame/LocalFrame.h" |
| 35 #include "core/frame/Settings.h" |
| 35 #include "core/page/ChromeClient.h" | 36 #include "core/page/ChromeClient.h" |
| 36 #include "core/page/Page.h" | 37 #include "core/page/Page.h" |
| 37 | 38 |
| 38 namespace blink { | 39 namespace blink { |
| 39 | 40 |
| 40 const double ImageQualityController::cLowQualityTimeThreshold = 0.500; // 500 ms | 41 const double ImageQualityController::cLowQualityTimeThreshold = 0.500; // 500 ms |
| 41 const double ImageQualityController::cTimerRestartThreshold = 0.250; // 250 ms | 42 const double ImageQualityController::cTimerRestartThreshold = 0.250; // 250 ms |
| 42 | 43 |
| 43 static ImageQualityController* gImageQualityController = nullptr; | 44 static ImageQualityController* gImageQualityController = nullptr; |
| 44 | 45 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 // quality. | 160 // quality. |
| 160 if (!image || !image->isBitmapImage()) | 161 if (!image || !image->isBitmapImage()) |
| 161 return false; | 162 return false; |
| 162 | 163 |
| 163 if (!layer) | 164 if (!layer) |
| 164 return false; | 165 return false; |
| 165 | 166 |
| 166 if (object.style()->imageRendering() == ImageRenderingOptimizeContrast) | 167 if (object.style()->imageRendering() == ImageRenderingOptimizeContrast) |
| 167 return true; | 168 return true; |
| 168 | 169 |
| 170 if (LocalFrame* frame = object.frame()) { |
| 171 if (frame->settings() && frame->settings()->useDefaultImageInterpolation
Quality()) |
| 172 return false; |
| 173 } |
| 174 |
| 169 // Look ourselves up in the hashtables. | 175 // Look ourselves up in the hashtables. |
| 170 ObjectLayerSizeMap::iterator i = m_objectLayerSizeMap.find(&object); | 176 ObjectLayerSizeMap::iterator i = m_objectLayerSizeMap.find(&object); |
| 171 LayerSizeMap* innerMap = nullptr; | 177 LayerSizeMap* innerMap = nullptr; |
| 172 bool objectIsResizing = false; | 178 bool objectIsResizing = false; |
| 173 if (i != m_objectLayerSizeMap.end()) { | 179 if (i != m_objectLayerSizeMap.end()) { |
| 174 innerMap = &i->value.layerSizeMap; | 180 innerMap = &i->value.layerSizeMap; |
| 175 objectIsResizing = i->value.isResizing; | 181 objectIsResizing = i->value.isResizing; |
| 176 } | 182 } |
| 177 LayoutSize oldSize; | 183 LayoutSize oldSize; |
| 178 bool isFirstResize = true; | 184 bool isFirstResize = true; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 } | 220 } |
| 215 // This object has been resized to two different sizes while the timer | 221 // This object has been resized to two different sizes while the timer |
| 216 // is active, so draw at low quality, set the flag for animated resizes and | 222 // is active, so draw at low quality, set the flag for animated resizes and |
| 217 // the object to the list for high quality redraw. | 223 // the object to the list for high quality redraw. |
| 218 set(object, innerMap, layer, layoutSize, true); | 224 set(object, innerMap, layer, layoutSize, true); |
| 219 restartTimer(lastFrameTimeMonotonic); | 225 restartTimer(lastFrameTimeMonotonic); |
| 220 return true; | 226 return true; |
| 221 } | 227 } |
| 222 | 228 |
| 223 } // namespace blink | 229 } // namespace blink |
| OLD | NEW |