Firefox 6 웹 호환성 변경 사항

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

Set-Cookie 헤더 처리 버그 수정

Set-Cookie 헤더의 path에 대해 이중 인용부호를 포함한 경우의 해석 처리가 수정됩니다.

지금까지 Set-Cookie 헤더로 path 를 지정할 때 값에 이중 인용부호(“)가 포함되어 있었을 경우, 그것은 리터럴의 path 값의 일부로서 해석되고 있었습니다. 그러나, RFC표준에서는 이중 인용부호는 quoted-string 를 딜리미터로서 정의되고 있어 Firefox 6 에서는 사양 그대로의 해석을 따라갑니다.

document.width/height 폐지

document.width 및 document.height 프로퍼티는 폐지됩니다.향후 body 요소의 width/height 스타일 값을 이용하시기 바랍니다.

document.width/height 프로퍼티는 표준이 아니며 Opera 나 IE 등의 브라우저에서는 지원 되지 않습니다. 브라우저와의 호환성 때문에 DOM 0 프로퍼티 지원은 중단됩니다.

아래와 같이 body 요소에 대해서 getComputedStyle()를 사용해 주시기 바랍니다.


var body = document.getElementsByTagName('body')[0];
var width = window.getComputedStyle(body, null).width);

window.top 읽기 전용

지금까지 글로벌 변수 top (windows.top)은 읽기 전용 프로퍼티가 아니라 임의 변수를 대입 되어 있었으나, Firefox 6 에서는 오류 처리됩니다.

글로벌 변수 top (window.top)은 window.open() 메소드로 열리는 윈도우 계층의 최상위 윈도우를 나타내는 것이고, Firefox 5 까지는 이것에 임의의 값이 대입도어 있었습니다.(윈도우 계층에는 영향을 주지 않음)

다른 많은 브라우저에서는 window.top에 임의의 값을 대입하지 못하고, 다음과 같이 잘못하여 var를 쓰지 않고 코드를 만들면, Firefox 만으로 동작하는 호환성 문제가 생기는 코드가 됩니다.


top = document.body.offsetTop;
top +=5;
myDiv.style.top = top + "px";

이 때문에 Firefox 6 에서는 window.top은 읽기 전용 프로퍼티로서 값을 대입할 수 없게 됩니다.

호환 모드 .classname:hover 유효함

지금까지 호환 모드에서 무효였던 클래스 선택자 :hover 유사 클래스가 유효하게 됩니다.

이전에는 호환 모드(Quirks Mode)에서는 .classname:hover와 같이 클래스 선택자에 :hover 유사 클래스를 사용한 선택자는 사용하지 않습니다. 하지만, 최근 다른 브라우저의 Quirks Mode가 삭제되고 있기 때문에 호환성이기 때문에 Firefox 6 이후 호환 모드에서는 이 유사 클래스가 유효합니다.

편입 함수로서 new 사용 불가능

일부 편입 함수에 대해서 new eval()와 같이 new 연산자가 사용할 수 없게 됩니다.

지금까지 표준 사양에서는 허가되어 있지 않았지만, 실제로는 eval, parseInt, Date.parse 등의 함수에 대해서 new 연산자를 사용할 수 있었으나, 앞으로는 불가능하게 됩니다. 공식적으로 이를 주로 사용하지 않았기 때문에 호환성의 문제를 일으킬 것은 없을 것입니다.

addEventListener()의 제 3 인수 생략 가능

addEventListener()나 removeEventListener()에서는 지금까지 필수로 되어 있던 제 3 인수 useCapture는 생략 가능합니다.

addEventListener() 이벤트 useCapture의 제 3 인수는 지금까지 사양에서도 Firefox 구현에서도 필수로 되어 있었으나, 웹킷(WebKit)에서는 이를 생략 가능하게 하고 있어 호환성 문제가 발생하고 있었습니다. Firefox 6 이후의 구현을 고쳐 useCapture 속성을 생략 가능하게 하게 되었습니다.

기존 Firefox 지원 웹 페이지에서는 문제가 없지만 웹킷에서만 되던 홈페이지들 일부가 Firefox 에서도 동작하게 됩니다.

canvas내 width/height를 0px 로 설정 가능

canvas의 width/heigth에 0px 는 지정할 수 없었으나 Firefox 6 에서는 설정 가능합니다. 지금까지는 0px 를 지정하면 무시되어 300px 로서 처리되고 있었습니다.

textarea 포커스 시 커서 선두로 위치

Firefox 6에서는 textarea에 포커스 했을 때 기본 커서 위치가 입력 끝난 텍스트의 끝이 아니고 선두가 됩니다

다른 브라우저와의 호환성이기 때문에 변경되었습니다. 커서의 기본 위치에 의존하고 있는 코드를 이용하고 있는 경우는 수정이 필요합니다.

input 텍스트 maxwidth 속성 폐지

input 요소로 입력 텍스트를 제한하는 size 속성 뿐만이 아니라 maxwidth도 이용할 수 있었으나 앞으로 size 속성 밖에 사용할 수 없게 됩니다.

이는 XUL 요소 속성이 HTML 요소에도 같이 구현되면서 생긴 문제이고, HTML 사양에도 반하는 것이라 maxwidth 속성은 폐지됩니다. (물론 HTML은 아니고 XUL에서는 계속해 사용할 수 있습니다).

비지원 속성과 프로퍼티 대개 폐지

구현되지 않거나 완성되지 않은 상태에 있던 속성과 프로퍼티를 폐지합니다.

  • navigator.securityPolicy 프로퍼티
  • CSS 의 azimuth 프로퍼티
  • DocumentType 객체의 entities, notations 프로퍼티
  • document.domConfig 프로퍼티
  • document.strictErrorChecking

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

작성자: Channy Yun

Channy Yun가 작성한 문서들…


댓글이 없습니다.

댓글 쓰기