1 /* Copyright 2013 The Chromium Authors. All rights reserved. 2 * Use of this source code is governed by a BSD-style license that can be 3 * found in the LICENSE file. */ 4 5 body { 6 background-color: #E6E6E6; 7 font-family: Helvetica, Arial, sans-serif; 8 font-size: 10pt; 9 margin: 50px 40px 20px 40px; 10 } 11 12 #main-frame-error { 13 margin: auto; 14 max-width: 540px; 15 min-width: 200px; 16 } 17 18 /* Don't use the main frame div when the error is in a subframe. */ 19 html[subframe] #main-frame-error { 20 display: none; 21 } 22 23 /* Don't use the subframe error div when the error is in a main frame. */ 24 html:not([subframe]) #sub-frame-error { 25 display: none; 26 } 27 28 #box { 29 background-color: #fbfbfb; 30 border: 1px solid #AAA; 31 border-bottom: 1px solid #888; 32 border-radius: 3px; 33 color: black; 34 <if expr="not is_android and not is_ios"> 35 /* Not done on mobile for performance reasons. */ 36 box-shadow: 0px 2px 2px #AAA; 37 </if> 38 } 39 40 #diagnose-button { 41 margin-top: 20px; 42 margin-bottom: 10px; 43 -webkit-margin-start: 0px; 44 } 45 46 #content-top #buttons, 47 #content-top h1 { 48 color: #666; 49 margin: 10px 0px 25px 0px; 50 font-weight: normal; 51 font-size: 1.5em; 52 text-align: center; 53 } 54 55 h2 { 56 color: #666; 57 font-size: 1.2em; 58 font-weight: normal; 59 margin: 10px 0; 60 } 61 62 a { 63 color: #15c; 64 text-decoration: none; 65 } 66 67 .icon { 68 -webkit-user-select: none; 69 } 70 71 .icon-generic { 72 /** 73 * Can't access chrome://theme/IDR_ERROR_NETWORK_GENERIC from an untrusted 74 * renderer process, so embed the resource manually. 75 */ 76 content: -webkit-image-set( 77 url('../../app/theme/default_100_percent/common/error_network_generic.png') 1x, 78 url('../../app/theme/default_200_percent/common/error_network_generic.png') 2x); 79 } 80 81 .icon-offline { 82 content: -webkit-image-set( 83 url('../../app/theme/default_100_percent/common/error_network_offline.png') 1x, 84 url('../../app/theme/default_200_percent/common/error_network_offline.png') 2x); 85 } 86 87 #content-top { 88 margin: 20px 20px 20px 25px; 89 } 90 91 #help-box-outer { 92 overflow: hidden; 93 -webkit-transition: height ease-in 218ms; 94 } 95 96 #help-box-inner { 97 background-color: #f9f9f9; 98 border-top: 1px solid #EEE; 99 color: #444; 100 padding: 25px 20px; 101 text-align: start; 102 } 103 104 #suggestions { 105 margin-top: 15px; 106 } 107 108 #sub-frame-error-details { 109 color: #8F8F8F; 110 <if expr="not is_android and not is_ios"> 111 /* Not done on mobile for performance reasons. */ 112 text-shadow: 0 1px 0 rgba(255,255,255,0.3); 113 </if> 114 } 115 116 [jscontent=failedUrl] { 117 overflow-wrap: break-word; 118 } 119 120 button { 121 border: 1px solid rgba(0, 0, 0, 0.25); 122 border-radius: 2px; 123 color: #444; 124 margin: 0px 5px; 125 min-height: 29px; 126 min-width: 65px; 127 -webkit-user-select: none; 128 padding: 8px 13px; 129 <if expr="not is_android"> 130 /* iOS does not support linear-gradient without a prefix. */ 131 background-image: -webkit-linear-gradient(#ededed, #ededed 38%, #dedede); 132 text-shadow: 0 1px 0 rgb(240, 240, 240); 133 </if> 134 <if expr="is_android"> 135 /* Android uses flat background colors. */ 136 background-color: #ededed; 137 font-weight: bold; 138 </if> 139 <if expr="not is_android and not is_ios"> 140 /* Not done on mobile for performance reasons. */ 141 box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08), inset 0 1px 2px rgba(255, 255, 255, 0.75); 142 </if> 143 } 144 145 button:hover { 146 border: 1px solid rgba(0, 0, 0, 0.3); 147 color: #000; 148 <if expr="not is_android"> 149 background-image: -webkit-linear-gradient(#f0f0f0, #f0f0f0 38%, #e0e0e0); 150 </if> 151 <if expr="is_android"> 152 background-color: #f0f0f0; 153 </if> 154 <if expr="not is_android and not is_ios"> 155 box-shadow: 0 1px 0 rgba(0, 0, 0, 0.12), inset 0 1px 2px rgba(255, 255, 255, 0.95); 156 </if> 157 } 158 159 button:active { 160 border: 1px solid rgba(0, 0, 0, 0.3); 161 color: #444; 162 <if expr="not is_android"> 163 background-image: -webkit-linear-gradient(#e7e7e7, #e7e7e7 38%, #d7d7d7); 164 </if> 165 <if expr="is_android"> 166 background-color: #e7e7e7; 167 </if> 168 <if expr="not is_android and not is_ios"> 169 box-shadow: none; 170 </if> 171 } 172 173 #reload-button { 174 color: #fff; 175 <if expr="not is_android"> 176 background-image: -webkit-linear-gradient(#5d9aff, #5d9aff 38%, #5891f0); 177 border: 1px solid rgba(45, 102, 195, 1); 178 text-shadow: 0 1px 0 rgba(0,0,0,0.5); 179 </if> 180 <if expr="is_android"> 181 background-color: rgb(39, 180, 231); 182 border: 1px solid rgb(0, 152, 206); 183 </if> 184 <if expr="not is_android and not is_ios"> 185 box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 1px 2px rgba(255, 255, 255, 0.2); 186 </if> 187 } 188 189 #reload-button:hover { 190 <if expr="not is_android"> 191 background-image: -webkit-linear-gradient(#659efd, #659efd 38%, #6097f1); 192 border: 1px solid rgba(45, 102, 195, 1); 193 </if> 194 <if expr="not is_android and not is_ios"> 195 box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25), inset 0 1px 2px rgba(255, 255, 255, 0.2); 196 </if> 197 } 198 199 #reload-button:active { 200 <if expr="not is_android"> 201 background-image: -webkit-linear-gradient(#6095ed, #6095ed 38%, #6095ed); 202 border: 1px solid rgb(38, 84, 160); 203 </if> 204 <if expr="is_android"> 205 background-color: rgb(0, 152, 206); 206 </if> 207 <if expr="not is_android and not is_ios"> 208 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.1); 209 </if> 210 } 211 212 .hidden { 213 display: none; 214 } 215 216 .suggestions { 217 margin-top: 18px; 218 } 219 220 .suggestion-header { 221 font-weight: bold; 222 margin-bottom: 4px; 223 } 224 225 .suggestion-body { 226 color: #777; 227 } 228 229 .error-code { 230 color: #A0A0A0; 231 margin-top: 15px; 232 } 233 234 /* Increase line height at higher resolutions. */ 235 @media (min-width: 641px) and (min-height: 641px) { 236 #help-box-inner { 237 line-height: 18px; 238 } 239 } 240 241 /* Decrease padding at low sizes. */ 242 @media (max-width: 640px), (max-height: 640px) { 243 body { 244 margin: 15px; 245 } 246 h1 { 247 margin: 10px 0px 15px 0px; 248 } 249 #content-top { 250 margin: 15px; 251 } 252 #help-box-inner { 253 padding: 20px; 254 } 255 .suggestions { 256 margin-top: 10px; 257 } 258 .suggestion-header { 259 margin-bottom: 0px; 260 } 261 .error-code { 262 margin-top: 10px; 263 } 264 } 265 266 /* Don't allow overflow when in a subframe. */ 267 html[subframe] body { 268 overflow: hidden; 269 } 270 271 #sub-frame-error { 272 -webkit-align-items: center; 273 background-color: #DDD; 274 display: -webkit-flex; 275 -webkit-flex-flow: column; 276 height: 100%; 277 -webkit-justify-content: center; 278 left: 0px; 279 position: absolute; 280 top: 0px; 281 width: 100%; 282 } 283 284 #sub-frame-error:hover { 285 background-color: #EEE; 286 } 287 288 #sub-frame-error-details { 289 margin: 0 10px; 290 visibility: hidden; 291 } 292 293 /* Show details only when hovering. */ 294 #sub-frame-error:hover #sub-frame-error-details { 295 visibility: visible; 296 } 297 298 /* If the iframe is too small, always hide the error code. */ 299 /* TODO(mmenke): See if overflow: no-display works better, once supported. */ 300 @media (max-width: 200px), (max-height: 95px) { 301 #sub-frame-error-details { 302 display: none; 303 } 304 } 305