зеркало из https://github.com/mozilla/pjs.git
Fixing parsing of opacity components of rgba() and hsla() that are out of the0 <= x <= 1 range. Bug 379316, r+sr=dbaron
This commit is contained in:
Родитель
8d704ce7c4
Коммит
bc7f58eced
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body style="color: black; background: white;">
|
||||
<div style="opacity: 0">Test 1</div>
|
||||
<div style="opacity: 0">Test 2</div>
|
||||
<div style="opacity: 0">Test 3</div>
|
||||
<div style="opacity: 0">Test 4</div>
|
||||
<div style="opacity: 1">Test 5</div>
|
||||
<div style="opacity: 1">Test 6</div>
|
||||
<div style="opacity: 1">Test 7</div>
|
||||
<div style="opacity: 1">Test 8</div>
|
||||
|
||||
<div style="opacity: 0">Test 9</div>
|
||||
<div style="opacity: 0">Test 10</div>
|
||||
<div style="opacity: 0">Test 11</div>
|
||||
<div style="opacity: 0">Test 12</div>
|
||||
|
||||
<div style="opacity: 1">Test 13</div>
|
||||
<div style="opacity: 1">Test 14</div>
|
||||
<div style="opacity: 1">Test 15</div>
|
||||
<div style="opacity: 1">Test 16</div>
|
||||
|
||||
<div style="opacity: 0.5">Test 17</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<body style="background: white">
|
||||
<div style="opacity: 0">Test 1</div>
|
||||
<div style="opacity: -1">Test 2</div>
|
||||
<div style="opacity: -0.5">Test 3</div>
|
||||
<div style="opacity: -6.7">Test 4</div>
|
||||
<div style="opacity: 1">Test 5</div>
|
||||
<div style="opacity: 1.5">Test 6</div>
|
||||
<div style="opacity: 2">Test 7</div>
|
||||
<div style="opacity: 7.3">Test 8</div>
|
||||
|
||||
<div style="color: rgba(0, 0, 0, 0)">Test 9</div>
|
||||
<div style="color: rgba(0, 0, 0, -1)">Test 10</div>
|
||||
<div style="color: rgba(0, 0, 0, -0.5)">Test 11</div>
|
||||
<div style="color: rgba(0, 0, 0, -6.7)">Test 12</div>
|
||||
|
||||
<div style="color: rgba(0, 0, 0, 1)">Test 13</div>
|
||||
<div style="color: rgba(0, 0, 0, 1.5)">Test 14</div>
|
||||
<div style="color: rgba(0, 0, 0, 2)">Test 15</div>
|
||||
<div style="color: rgba(0, 0, 0, 7.3)">Test 16</div>
|
||||
|
||||
<div style="color: rgba(0, 0, 0, 0.5)">Test 17</div>
|
||||
</body>
|
||||
</html>
|
|
@ -223,3 +223,4 @@ fails-if(MOZ_WIDGET_TOOLKIT=="cocoa") == 372037-1.html 372037-1-ref.html # bug 3
|
|||
fails == 376484-1.html 376484-1-ref.html
|
||||
== 377603-1.html 377603-1-ref.html
|
||||
== 378535-1.html 378535-1-ref.html
|
||||
== 379316-1.html 379316-1-ref.html
|
||||
|
|
|
@ -3155,16 +3155,22 @@ PRBool CSSParserImpl::ParseColorOpacity(nsresult& aErrorCode, PRUint8& aOpacity)
|
|||
return PR_FALSE;
|
||||
}
|
||||
|
||||
PRInt32 value = nsStyleUtil::FloatToColorComponent(mToken.mNumber);
|
||||
if (mToken.mNumber < 0.0f) {
|
||||
mToken.mNumber = 0.0f;
|
||||
} else if (mToken.mNumber > 1.0f) {
|
||||
mToken.mNumber = 1.0f;
|
||||
}
|
||||
|
||||
PRUint8 value = nsStyleUtil::FloatToColorComponent(mToken.mNumber);
|
||||
NS_ASSERTION(fabs(mToken.mNumber - value/255.0f) <= 0.5f,
|
||||
"FloatToColorComponent did something weird");
|
||||
|
||||
if (!ExpectSymbol(aErrorCode, ')', PR_TRUE)) {
|
||||
REPORT_UNEXPECTED_TOKEN(PEExpectedCloseParen);
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
if (value < 0) value = 0;
|
||||
if (value > 255) value = 255;
|
||||
aOpacity = (PRUint8)value;
|
||||
aOpacity = value;
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче