forked from mirrors/gecko-dev
		
	 361f923f82
			
		
	
	
		361f923f82
		
	
	
	
	
		
			
			Based on the spec, if the aspect-ratio property value is: 1) auto: we should always use content-box dimensions. 2) <ratio>: the aspect-ratio works with box sizing dimensions. 3) auto && <ratio>: we use content-box dimensions in all cases. So we need an extra flag to address that we should use box-sizing or always use content-box dimensions while computing the size in ratio-dependent axis. This also updates some wpts for non-replaced elements because we should use content-box if aspect-ratio is 'auto && <ratio>'. Differential Revision: https://phabricator.services.mozilla.com/D100072
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 | |
| /* This Source Code Form is subject to the terms of the Mozilla Public
 | |
|  * License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
|  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 | |
| 
 | |
| #include "AspectRatio.h"
 | |
| 
 | |
| #include "mozilla/WritingModes.h"
 | |
| 
 | |
| namespace mozilla {
 | |
| 
 | |
| nscoord AspectRatio::ComputeRatioDependentSize(
 | |
|     LogicalAxis aRatioDependentAxis, const WritingMode& aWM,
 | |
|     nscoord aRatioDeterminingSize,
 | |
|     const LogicalSize& aContentBoxSizeToBoxSizingAdjust) const {
 | |
|   MOZ_ASSERT(*this,
 | |
|              "Infinite or zero ratio may have undefined behavior when "
 | |
|              "computing the size");
 | |
|   const LogicalSize& boxSizingAdjust = mUseBoxSizing == UseBoxSizing::No
 | |
|                                            ? LogicalSize(aWM)
 | |
|                                            : aContentBoxSizeToBoxSizingAdjust;
 | |
|   return aRatioDependentAxis == LogicalAxis::eLogicalAxisInline
 | |
|              ? ConvertToWritingMode(aWM).ApplyTo(aRatioDeterminingSize +
 | |
|                                                  boxSizingAdjust.BSize(aWM)) -
 | |
|                    boxSizingAdjust.ISize(aWM)
 | |
|              : ConvertToWritingMode(aWM).Inverted().ApplyTo(
 | |
|                    aRatioDeterminingSize + boxSizingAdjust.ISize(aWM)) -
 | |
|                    boxSizingAdjust.BSize(aWM);
 | |
| }
 | |
| 
 | |
| }  // namespace mozilla
 |