| 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 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 { | 138 { |
| 139 if (!supportTargetDensityDPI && !wideViewportQuirkEnabled && loadWithOvervie
wMode && !nonUserScalableQuirkEnabled) | 139 if (!supportTargetDensityDPI && !wideViewportQuirkEnabled && loadWithOvervie
wMode && !nonUserScalableQuirkEnabled) |
| 140 return; | 140 return; |
| 141 | 141 |
| 142 const float oldInitialScale = m_pageDefinedConstraints.initialScale; | 142 const float oldInitialScale = m_pageDefinedConstraints.initialScale; |
| 143 if (!loadWithOverviewMode) { | 143 if (!loadWithOverviewMode) { |
| 144 bool resetInitialScale = false; | 144 bool resetInitialScale = false; |
| 145 if (description.zoom == -1) { | 145 if (description.zoom == -1) { |
| 146 if (description.maxWidth.isAuto() || description.maxWidth.type() ==
ExtendToZoom) | 146 if (description.maxWidth.isAuto() || description.maxWidth.type() ==
ExtendToZoom) |
| 147 resetInitialScale = true; | 147 resetInitialScale = true; |
| 148 if (useWideViewport || description.maxWidth == Length(100, ViewportP
ercentageWidth)) | 148 if (useWideViewport || description.maxWidth.type() == DeviceWidth) |
| 149 resetInitialScale = true; | 149 resetInitialScale = true; |
| 150 } | 150 } |
| 151 if (resetInitialScale) | 151 if (resetInitialScale) |
| 152 m_pageDefinedConstraints.initialScale = 1.0f; | 152 m_pageDefinedConstraints.initialScale = 1.0f; |
| 153 } | 153 } |
| 154 | 154 |
| 155 float adjustedLayoutSizeWidth = m_pageDefinedConstraints.layoutSize.width(); | 155 float adjustedLayoutSizeWidth = m_pageDefinedConstraints.layoutSize.width(); |
| 156 float adjustedLayoutSizeHeight = m_pageDefinedConstraints.layoutSize.height(
); | 156 float adjustedLayoutSizeHeight = m_pageDefinedConstraints.layoutSize.height(
); |
| 157 float targetDensityDPIFactor = 1.0f; | 157 float targetDensityDPIFactor = 1.0f; |
| 158 | 158 |
| 159 if (supportTargetDensityDPI) { | 159 if (supportTargetDensityDPI) { |
| 160 targetDensityDPIFactor = computeDeprecatedTargetDensityDPIFactor(descrip
tion, deviceScaleFactor); | 160 targetDensityDPIFactor = computeDeprecatedTargetDensityDPIFactor(descrip
tion, deviceScaleFactor); |
| 161 if (m_pageDefinedConstraints.initialScale != -1) | 161 if (m_pageDefinedConstraints.initialScale != -1) |
| 162 m_pageDefinedConstraints.initialScale *= targetDensityDPIFactor; | 162 m_pageDefinedConstraints.initialScale *= targetDensityDPIFactor; |
| 163 m_pageDefinedConstraints.minimumScale *= targetDensityDPIFactor; | 163 m_pageDefinedConstraints.minimumScale *= targetDensityDPIFactor; |
| 164 m_pageDefinedConstraints.maximumScale *= targetDensityDPIFactor; | 164 m_pageDefinedConstraints.maximumScale *= targetDensityDPIFactor; |
| 165 if (wideViewportQuirkEnabled && (!useWideViewport || description.maxWidt
h == Length(100, ViewportPercentageWidth))) { | 165 if (wideViewportQuirkEnabled && (!useWideViewport || description.maxWidt
h.type() == DeviceWidth)) { |
| 166 adjustedLayoutSizeWidth /= targetDensityDPIFactor; | 166 adjustedLayoutSizeWidth /= targetDensityDPIFactor; |
| 167 adjustedLayoutSizeHeight /= targetDensityDPIFactor; | 167 adjustedLayoutSizeHeight /= targetDensityDPIFactor; |
| 168 } | 168 } |
| 169 } | 169 } |
| 170 | 170 |
| 171 if (wideViewportQuirkEnabled) { | 171 if (wideViewportQuirkEnabled) { |
| 172 if (useWideViewport && (description.maxWidth.isAuto() || description.max
Width.type() == ExtendToZoom) && description.zoom != 1.0f) { | 172 if (useWideViewport && (description.maxWidth.isAuto() || description.max
Width.type() == ExtendToZoom) && description.zoom != 1.0f) { |
| 173 adjustedLayoutSizeWidth = layoutFallbackWidth; | 173 adjustedLayoutSizeWidth = layoutFallbackWidth; |
| 174 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); | 174 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); |
| 175 } else if (!useWideViewport) { | 175 } else if (!useWideViewport) { |
| 176 const float nonWideScale = description.zoom < 1 && !description.maxW
idth.isViewportPercentage() ? -1 : oldInitialScale; | 176 const float nonWideScale = description.zoom < 1 && description.maxWi
dth.type() != DeviceWidth && description.maxWidth.type() != DeviceHeight ? -1 :
oldInitialScale; |
| 177 adjustedLayoutSizeWidth = getLayoutWidthForNonWideViewport(viewSize,
nonWideScale) / targetDensityDPIFactor; | 177 adjustedLayoutSizeWidth = getLayoutWidthForNonWideViewport(viewSize,
nonWideScale) / targetDensityDPIFactor; |
| 178 float newInitialScale = targetDensityDPIFactor; | 178 float newInitialScale = targetDensityDPIFactor; |
| 179 if (m_userAgentConstraints.initialScale != -1 && (description.maxWid
th == Length(100, ViewportPercentageWidth) || ((description.maxWidth.isAuto() ||
description.maxWidth.type() == ExtendToZoom) && description.zoom == -1))) { | 179 if (m_userAgentConstraints.initialScale != -1 && (description.maxWid
th.type() == DeviceWidth || ((description.maxWidth.isAuto() || description.maxWi
dth.type() == ExtendToZoom) && description.zoom == -1))) { |
| 180 adjustedLayoutSizeWidth /= m_userAgentConstraints.initialScale; | 180 adjustedLayoutSizeWidth /= m_userAgentConstraints.initialScale; |
| 181 newInitialScale = m_userAgentConstraints.initialScale; | 181 newInitialScale = m_userAgentConstraints.initialScale; |
| 182 } | 182 } |
| 183 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); | 183 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); |
| 184 if (description.zoom < 1) { | 184 if (description.zoom < 1) { |
| 185 m_pageDefinedConstraints.initialScale = newInitialScale; | 185 m_pageDefinedConstraints.initialScale = newInitialScale; |
| 186 m_pageDefinedConstraints.minimumScale = std::min<float>(m_pageDe
finedConstraints.minimumScale, m_pageDefinedConstraints.initialScale); | 186 m_pageDefinedConstraints.minimumScale = std::min<float>(m_pageDe
finedConstraints.minimumScale, m_pageDefinedConstraints.initialScale); |
| 187 m_pageDefinedConstraints.maximumScale = std::max<float>(m_pageDe
finedConstraints.maximumScale, m_pageDefinedConstraints.initialScale); | 187 m_pageDefinedConstraints.maximumScale = std::max<float>(m_pageDe
finedConstraints.maximumScale, m_pageDefinedConstraints.initialScale); |
| 188 } | 188 } |
| 189 } | 189 } |
| 190 } | 190 } |
| 191 | 191 |
| 192 if (nonUserScalableQuirkEnabled && !description.userZoom) { | 192 if (nonUserScalableQuirkEnabled && !description.userZoom) { |
| 193 m_pageDefinedConstraints.initialScale = targetDensityDPIFactor; | 193 m_pageDefinedConstraints.initialScale = targetDensityDPIFactor; |
| 194 m_pageDefinedConstraints.minimumScale = m_pageDefinedConstraints.initial
Scale; | 194 m_pageDefinedConstraints.minimumScale = m_pageDefinedConstraints.initial
Scale; |
| 195 m_pageDefinedConstraints.maximumScale = m_pageDefinedConstraints.initial
Scale; | 195 m_pageDefinedConstraints.maximumScale = m_pageDefinedConstraints.initial
Scale; |
| 196 if (description.maxWidth.isAuto() || description.maxWidth.type() == Exte
ndToZoom || description.maxWidth == Length(100, ViewportPercentageWidth)) { | 196 if (description.maxWidth.isAuto() || description.maxWidth.type() == Exte
ndToZoom || description.maxWidth.type() == DeviceWidth) { |
| 197 adjustedLayoutSizeWidth = viewSize.width() / targetDensityDPIFactor; | 197 adjustedLayoutSizeWidth = viewSize.width() / targetDensityDPIFactor; |
| 198 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); | 198 adjustedLayoutSizeHeight = computeHeightByAspectRatio(adjustedLayout
SizeWidth, viewSize); |
| 199 } | 199 } |
| 200 } | 200 } |
| 201 | 201 |
| 202 m_pageDefinedConstraints.layoutSize.setWidth(adjustedLayoutSizeWidth); | 202 m_pageDefinedConstraints.layoutSize.setWidth(adjustedLayoutSizeWidth); |
| 203 m_pageDefinedConstraints.layoutSize.setHeight(adjustedLayoutSizeHeight); | 203 m_pageDefinedConstraints.layoutSize.setHeight(adjustedLayoutSizeHeight); |
| 204 } | 204 } |
| 205 | 205 |
| 206 } // namespace WebCore | 206 } // namespace WebCore |
| OLD | NEW |