Firefox 5 웹 호환성 변경 사항

Firefox 5 정식 버전이 6월 22일 정식 출시되며, Firefox 4.0.1 사용자는 자동으로 업데이트됩니다.

Firefox 4 이후 부터 빠른 출시 주기로 인해 새로운 버전이 6주마다 정식 출시됩니다. 대부분 웹 페이지 호환성이 유지하도록 개발하고 있으나 최신 웹 표준 대응 및 다른 웹 브라우저와 호환성 확보를 위해 세부적인 부분이 조금식 변경됩니다. Firefox 5에서 바뀌는 부분을 간단하게 요약하였습니다.

더 자세한 것은 https://developer.mozilla.org/En/Firefox_5_for_developers (영문)을 참고하시기 바랍니다.

JavaScript 예약어 (다시) 추가
Firefox 5에서 차세대 다음의 키워드를 예약어로 추가됩니다 : class, enum, export, extends, import, super

Firefox 4에서는 strict 모드 이용 때만 이들을 예약어로 간주하나, Firefox 5는 strict 모드를 해제 시에도 예약어로 되고 따라서 이 키워드는 변수 이름으로 사용할 수 없습니다. (참고 문서)

엄격해진 JSON.parse () 구문
Firefox 5에서 JSON 문자열로 8진수 리터럴 (예 : JSON.parse (‘0123 ‘)), 소수점 이하 생략 숫자 (예 : JSON.parse (‘1’))는 허용되지 않습니다

ECMAScript 5th 사양에 JSON 지원이 추가되고, JSON.parse ()로 JSON 문자열 구문 해석이 이전보다 RFC 사양에 맞추어 바뀌게 됩니다. 그 결과 지금까지 사용 위반을 허용한 것을 오류로 처리합니다.

또한, 문자열에 직접 탭 문자를 포함(예 : JSON.parse ( ‘ “… \ t …”‘))는 Firefox 4 허용되지 않게되어 있습니다. 물론, 데이터 탭 문자로 취급할 수없는 것은 없습니다. JSON.parse ( ‘ “… \ \ t …”‘)와 같이하십시오. 또는 JSON으로 전달할 문자열 값 데이터에 다른 제어 문자를 포함하려면 Unicode 이스케이프를 사용합니다. 예를 들어 탭 문자이면 JSON.parse ( ‘ “… \ \ u0009 …”‘)처럼 \ u 뒤에 4 자리의 16 진수 코드를 지정합니다.
setTimeout ()의 최소 시간이 변경됩니다

setTimeout () 최소 시간 변경
Firefox 5에서 setTimeout ()에서 지정하는 최소 시간이 10ms에서 4ms로 단축됩니다. 한편 백그라운드 탭에서는 최대 1 초 1 회까지 밖에 호출되지 않습니다.

setTimeout () 및 setInterval ()로 지정하는 최소 시간은 HTML5에서 4ms로 규정 되었기 때문에 이에 맞추었습니다. JavaScript에서는 다수의 타이머를 사용하면 처리가 무거워되는 것으로 알려져 있습니다. 초당 수백 번 타이머 호출하는 페이지도 드물지 않아서 웹 페이지 낭비를 줄이기 위해 호출 간격에 제한이 있습니다.

애니메이션 타이머를 이용하는 경우, 빠른 애니메이션이 가능한 Request Animation Frame의 사용을 권장합니다 (Chrome도 동참하여 비슷한 기능을 지원 중임).

참고 : 다른 브라우저에서 타이머 사양 변경이 행해지고 있습니다. IE9에서는 일반적 4ms (배터리 동작 시에는 10 ~ 15ms, Canvas 렌더링 처리를 수반하는 경우는 약 3ms (사양 위반), Chrome 11 이후 Firefox 5 마찬가지로 백그라운드 탭에서 최대 1 초 1 시간까지 제한됩니다.

Blob의 slice () 메소드 제거
Firefox 5에서 Blob (및 파생된 File) 인터페이스에서 slice () 메소드가 제거되고 대신 인수의 취하는 방법이 다른 mozSlice () 메소드 추가를 통해 해결합니다.

기존의 Blob 인터페이스는 Array.slice ()와 String.slice ()와 인수의 취하는 방법이 다르게 표준 변경이 진행될 전망에서 그것에 맞게 구현을 변경했습니다.

Canvas 예외 처리 변경
Canvas 2D API 기능 중 translate (), transform (), rect (), clearRect () fillRect () strokeRect (), lineTo (), moveTo (), quadraticCurveTo (), arc () 메서드 호출 또는 globalAlpha 속성 잘못된 값을 준 경우 예외를 발생했지만, Firefox 5에서 아무것도하지 않고 그냥 무시됩니다.

WebGL 외부 도메인 리소스 사용 중단
Firefox 5에서 WebGL 텍스처 이미지에도 같은 도메인에서만 사용 가능하고, 다른 사이트의 이미지를 가져오려면 CORS를 사용해야합니다.

WebGL에서 텍스처 이미지 처리 시간을 측정하여 JavaScript에서 크로스 도메인 이미지 읽기가 가능하다 등의 보안 문제가 지적 되었기 때문에 그 문제를 해결하기 위해 현재 규격보다 엄격한 제한을 도입하게 했습니다. 자세한 내용은 다음 페이지를 참조하십시오 :

정규 표현식 함수로 호출 금지
Firefox 5에서 /RegExp/( “string”)와 같은 정규식 개체를 함수로 호출해서 사용할 수 없게됩니다. 원래 표준 사양도 없고 문서화되지도 않은 기능이었습니다. Firefox의 구현에 따라 WebKit에서도 지원되고 있었지만, 이번에 지원 중단합니다.

UTF-7, UTF-32 지원이 폐지
문자 인코딩 UTF-7 및 UTF-32는 HTML5 스펙에서는 지원되지 않습니다. 실제로 사용되고있는 것도 거의없고, 표준 준수를 위해 이러한 인코딩 지원은 폐지됩니다.

Keep-Alive 헤더 전송 안함
지금까지 Kee-Alive 요청 헤더를 보내 왔지만 형식이 잘못 된데다 원래 Connection 또는 Proxy-Connection 요청 헤더의 값으로 keep-alive를 지정하고 있었기 때문에 중복 트래픽이라 판단 하여 제거합니다.

작성자: Channy Yun

Channy Yun가 작성한 문서들…


댓글이 없습니다.

댓글 쓰기