Firefox 3 for developers

  • 리비전 슬러그: Firefox_3_for_developers
  • 리비전 제목: Firefox 3 for developers
  • 리비전 아이디: 164507
  • 제작일시:
  • 만든이: Hwasung
  • 현재 리비전인가요? 아니오
  • 댓글 번역되지 않은 부분 번역함

리비전 내용

차세대 Firefox에 맞추어 웹 애플리케이션과 확장 기능, 웹 사이트 등에 최신 기술을 적용해 볼 수 있습니다. 다양한 개발자들의 기호에 맞추어 최신의 기술들을 살펴 보시고 적용해 보시기 바랍니다.

Firefox 3의 주요 신 기술

Firefox 3의 출시까지는 오래 남았지만, 관심을 끌만한 바뀐 점들이 이미 다수가 구현돼 있습니다. 아래는 새로운 기능들의 일부를 담고 있는 불완전한 목록입니다. 부담없이 목록에 새로운 내용을 더하거나 목록을 고치세요.

일러두기: 특정 기능이 구현됐고 문서화될 준비가 됐음을 알게 됐을 때, 문서화 작업을 시작할 수 있도록 그 사실을 이 페이지에 언급해준다면 매우 도움이 될 것입니다. 고맙습니다!

웹사이트 및 응용프로그램 개발자에게 도움이 되는 정보

웹사이트에 영향을 미치는 Gecko 1.9의 바뀐 점도 보세요.

HTML 기본

  • <FRAME>과 <IFRAME> 요소의 잠재적인 보안 문제를 해결했습니다. 앞으로는 부모창과 프레임 문서가 같은 서버에 있어도 프레임이 부모 문서의 문자셋을 상속하지 않습니다. 자세한 사항은 {{template.Bug(35620)}}를 참고하십시오.

Web Applications 1.0

마크 핑클(#devmo의 mfinkle)이 Web Applications 1.0의 문서화 작업을 이끌고 있습니다.

대체 스타일 쉬트 API는 스타일 쉬트 겍체 모델에서 표준화가 진행 중입니다.
Web Applications 1.0(HTML5, XHTML5)은 아직 최종안이 아니고 작업초안입니다.

Offline resources

구현 과정은 진행중입니다. {{template.Bug(367447)}}과 의존하는 것들을 참고하세요. 작업 중인 명세는 에 있습니다.

크로스 사이트 XMLHttpRequest

  • {{template.Bug(389508)}} 원격 도메인간 XMLHttpRequest 지원 (Ajax 개발 시 다른 도메인 간 호출 허용.)

CSS

에릭 셰퍼드(#devmo의 sheppy)가 Firefox 3의 CSS 문서화를 이끌고 있습니다.

  • {{template.Cssxref("display")}} 속성의 값으로 inline-blockinline-table을 구현했습니다.
  • 이제 {{template.Cssxref("font-size-adjust")}} 속성이 모든 플랫폼에서 작동합니다(예전에는 윈도에서만 지원됐습니다).
  • {{template.Cssxref("font-size-adjust")}}가 이제 모든 플랫폼에서 작동 ({{template.Bug(130473)}})
  • {{template.Cssxref("color")}}의 값으로 rgba()hsla() 지원 ({{template.Bug(147017)}})
  • {{template.Cssxref(":default")}} 슈도 클래스(pseudo-class) 지원 ({{template.Bug(302186)}})
  • {{template.Cssxref("width")}}, {{template.Cssxref("min-width")}}, {{template.Cssxref("max-width")}}에 -moz-max-content, -moz-min-content, -moz-fit-content, and -moz-available 값이 추가됐습니다. ({{template.Bug(311415)}}, {{template.Bug(402706)}})
  • HTML 소프트 하이픈 (&shy;) 지원
  • CSS 2.1 표준 명세를 따라서, 미리 규정된 탭이 비례간격(proportional) 글꼴에서 제대로 작동합니다.
  • {{template.Cssxref("ime-mode")}} 속성 지원
  • HTML에 {{template.Cssxref("text-rendering")}} 속성 지원 ({{template.Bug(387969)}})
  • -moz-border-*-start-moz-border-*-end 속성들 구현 ({{template.Bug(74880)}})
  • 남아있는 CSS 속성 대부분에 -moz-initial 구현(단, {{template.Cssxref("quotes")}}와 -moz-border-*-colors는 제외) ({{template.Bug(80887)}})
  • {{mediawiki.internal('DOM:window.getComputedStyle}window.getComputedStyle', "ko")}}이 지원하는 모든 CSS 속성을 지원하도록 함 ({{template.Bug(316981)}})
  • {{template.Cssxref("content")}}의 값으로 none 지원 {{template.Bug(378535)}}

DOM

JavaScript

  • JavaScript 1.8을 구현하고 있습니다({{template.Bug(380236)}}). 존 레식이 문서화 작업을 이끌 것입니다.
    • 구현된 모든 것은 이미 JavaScript 1.8 페이지에 문서화되어 있습니다.
    • 추가 정보를 보려면 이 블로그 글을 보세요.
  • Script 객체는 더이상 지원되지 않습니다. 그것은 표준이 아니었고 오랫동안 없어져야 할 필요가 있었습니다. 자세한 내용은 Firefox 3를 위한 웹 사이트 업데이트를 참고하세요.

XSLT/XPath

  • Firefox 3는 XSLT의 확장인 EXSLT의 기본적인 부분을 지원합니다. 지원하는 모듈은 common, math, regexp, set, 그리고 str입니다. 이들의 모든 함수는 아니지만 대부분이 지원됩니다.

SVG

  • foreignObject 요소 지원 ({{template.Bug(326966)}}, 명세, 관련 글). mfinkle
  • pattern 요소 지원 (명세)
  • mask 요소 지원 (명세)
  • SVG 필터 지원 (명세)
    • filter
    • feDistantLight
    • fePointLight
    • feSpotLight
    • feBlend
    • feColorMatrix
    • feConvolveMatrix
    • feComponentTransfer, feFuncR, feFuncG, feFuncB, feFuncA
    • feComposite
    • feConvolveMatrix
    • feDiffuseLighting
    • feDistantLight
    • feFlood
    • feGaussianBlur
    • feMerge, feMergeNode
    • feMorphology
    • feOffset
    • fePointLight
    • feSpecularLighting
    • feTurbulence
    • feTile
  • SVG에 포함된 <a> 요소를 다루는 과정의 여러 버그를 고쳤습니다. {{template.Bug(267664)}}, {{template.Bug(268135)}}, {{template.Bug(316248)}}, {{template.Bug(317270)}} 그리고 {{template.Bug(320724)}}를 참고하세요.
  • SVG DOM 메소드인 getNumberOfChars(), getComputedTextLength(), getSubStringLength(), getStartPositionOfChar(), getEndPositionOfChar(), getRotationOfChar(), 그리고 getCharNumAtPosition()이 구현되었습니다.
  • xml:space 속성 지원 (명세)
  • fallback fill/stroke are now supported (spec)
  • 길이를 나타내는 단위인 emex를 지원합니다. ({{template.Bug(305859)}})

그림

  • 움직이는 PNG(APNG) 지원 (명세)

쿠키

XUL 및 확장 기능 개발자용

XUL

새로운 XUL 요소

마크 핑클(#devmo의 mfinkle)이 새로운 XUL 요소의 문서화를 이끌고 있습니다.

Firefox 3에서 XUL은 다수의 새로운 요소를 지원합니다:

  • 새로운 <scale> 요소는 사용자가 특정 범위 안에서 어떤 값을 고를 수 있게 하는 미끄러져 움직이는 눈금자를 만듭니다. 예를 들어 일반적으로 이 위젯은 소리 크기 컨트롤을 만드는 데 쓰입니다.
  • 글상자(textbox)의 type 속성을 새로운 값 'number'로 지정하면 숫자만 넣어야 하는 글상자를 만듭니다. 게다가 값을 키우거나 줄이는 데 쓰는 화살표 버튼이 한쪽에 보이게 됩니다. {{mediawiki.interwiki('wikimo', 'XUL:Specs:NumberBox', '자세한 내용')}} ({{template.Bug(345510)}})
  • 메뉴 같은 위젯을 XBL 바인딩으로 만들 때 쓸만한 <dropmarker> 요소가 추가됐습니다. ({{template.Bug(348614)}})
  • 위젯을 XBL 바인딩으로 만들 때 쓰일 수 있는 <spinbuttons> 요소가 추가됐습니다. ({{template.Bug(155053)}})
  • <datepicker><timepicker> 두 위젯이 날짜 및 시각을 넣게 하는 데 쓰일 수 있습니다. datepicker는 type 속성으로 여러 모양으로 표현할 수 있어서, 글상자 및 달력 모양에서 입력하게 할 수 있습니다. {{mediawiki.interwiki('wikimo', 'XUL:Specs:DateTimePickers', '자세한 내용')}} Datepicker 참고 Timepicker 참고 ({{template.Bug(92174)}})
  • <panel> 요소가 메뉴가 없는 팝업을 위해 만들어졌습니다. 다양한 형식의 컨텐츠를 지원합니다. <menupopup> 요소는 메뉴에서만 사용해야 하고 메뉴는 키보드 네비게이션 및 서브 메뉴 열고 닫기를 지원 합니다.
트리 구조 개선점
  • 트리 구조가 이제 횡스크롤을 지원합니다. 횡스크롤바는 열(column)들이 이용 가능한 너비에 맞지 않을 때 보이게 됩니다. 열들의 지정된 너비를 합한 게 이용 가능한 빈 공간의 너비보다 길 때 일어납니다. ({{template.Bug(212789)}})
  • 새로운 선택 스타일이 행 전체 대신에 셀 하나하나를 선택할 수 있게 합니다. 트리 구조의 seltype 속성을 'cell'로 설정해서 써야 합니다. ({{template.Bug(296040)}})
  • 트리 구조가 이제 셀 하나하나를 편집하는 것을 지원합니다. 편집 가능한 셀을 더블클릭하면 셀의 내용을 편집할 수 있는 글상자를 보여줄 것입니다. {{mediawiki.interwiki('wikimo', 'XUL:Tree', '자세한 내용')}} ({{template.Bug(201499)}})
  • <treecol> 요소가 이제 overflow 속성을 지원합니다. 이 속성의 값이 'true'이면 텍스트가 너무 길어 셀 안에 들어가지 않을 때 이웃의 빈 셀로 확장되도록 허용합니다.
메뉴 개선점

<menu><menulist> 요소를 일부분 개선했습니다({{template.Bug(333023)}}):

  • 그림을 지정하는 데 image 속성이 일관되게 쓰입니다.
  • 항목을 선택할 때 menulist가 선택 이벤트를 발생합니다.
  • menulistinputFieldeditable 프로퍼티가 추가됐습니다.
  • <menu>, <menuitem>, <menuseparator>에 읽기전용인 selected 프로퍼티가 추가됐습니다. 이 프로퍼티는 <menulist>의 항목의 선택 여부를 담게 됩니다.
  • <menu>, <menuitem>, <menuseparator> 요소에 읽기전용인 control 프로퍼티가 추가됐습니다. 이 속성은 에워싼 <menulist>를 넘겨줍니다.
  • <menu>, <menuitem>, <menuseparator> 요소는 이제 상응하는 속성을 설정하는 accessKey, disabled, crop, image, label 프로퍼티를 지원합니다.
  • 이제 <menu> 요소에 메뉴항목을 덧붙이고, 끼워넣고, 없애는 메소드가 있습니다. ({{template.Bug(372552)}})
  • 편집 가능한 menulist의 글상자에 쓰이는 내부 nsIEditor를 넘겨주는 editor 프로퍼티를 지원합니다. ({{template.Bug(312867)}})
  • 이제 플랫폼이 지원하면 메뉴를 반투명하게 만들 수 있습니다. ({{template.Bug(70798)}})
글상자(Textbox) 개선점
  • textboxspellcheck 속성을 'true'로 설정하면 입력할 때마다 바로바로 맞춤법을 검사합니다(inline spellchecking). ({{template.Bug(346787)}})
  • 이제 <textbox>에 글상자의 값을 기본값으로 되돌리는 reset() 메소드가 있습니다. 글상자의 기본값을 가져오고 바꾸는 데 defaultValue 프로퍼티가 쓰이게 됩니다. ({{template.Bug(312867)}})
  • 텍스트 필드의 내부 nsIEditor를 넘겨주는 editor 프로퍼티를 지원합니다. ({{template.Bug(312867)}})
  • 글상자가 이제 붙여넣은 텍스트의 줄바꿈 기호를 처리하는 방법을 지정하는 newlines 속성을 지원합니다. ({{template.Bug(253481)}}) 쓸 수 있는 값은 다음과 같습니다.
    • pasteintact - 모두 그대로 붙여넣음
    • pastetofirst - (기본값) 첫 줄바꿈 기호까지만 붙여넣음
    • replacewithspaces - 줄바꿈 기호를 빈 칸으로 바꿈
    • replacewithcommas - 줄바꿈 기호를 반점(,)으로 바꿈
    • strip - 모든 줄바꿈 기호를 없앰
    • stripsurroundingwhitespace - 모든 줄바꿈 기호와 에워싼 공백문자를 없앰
그 밖의 요소 개선점
  • 마우스 버튼을 누르고 있는 동안 명령(command) 이벤트를 되풀이하여 발생하는 버튼을 만들려면 <button>type 속성을 'repeat'로 설정해야 합니다. ({{template.Bug(331055)}})
  • 이제 buttondisabledaccept 속성을 <dialog> 요소에 써서 확인 버튼을 초기에 비활성화할 수 있습니다. ({{template.Bug(247849)}})
  • <titlebar> 요소가 이제 allowevents 속성을 지원합니다. 이 속성은 titlebar의 자식에게 이벤트를 넘겨줄 수 있게 합니다. ({{template.Bug(361425)}})
  • <splitter>가 이제 collapse 속성의 부가적인 값으로 'both'를 지원합니다. 이 값은 스플릿터를 마우스로 끌 때 양쪽의 요소를 접을 수 있음을 가리킵니다. substate 속성은 어느 쪽이 접혔는지(앞(before) 또는 뒤(after))를 나타냅니다. ({{template.Bug(337955)}})
  • <richlistbox> 요소가 이제 다중 선택을 지원합니다. 이 기능을 켜려면 seltype 속성을 'multiple'로 설정하세요.
  • <radio> 요소에는 자신이 속하게 될 <radiogroup> 요소의 id로 설정될 group 속성이 있습니다. 이것은 라디오 버튼들 모두를 하나의 radiogroup 안에 둘 때 어울리지 않게 배열할 수 있게 합니다.
  • 메뉴, 패널, 그리고 툴팁이 두 개의 추가 메소드 openPopupopenPopupAtScreen을 지원합니다. 이들은 쓰기에 헷갈리는 것으로 알려진 showPopup 대신에 쓰일 것입니다.
템플릿 바뀐 점

템플릿 문서화는 마크 핑클(#devmo의 mfinkle)이 이끌고 있습니다.

템플릿은 Firefox 3에서 두드러지게 향상됐습니다. 주 개선점은 맞춤 쿼리 처리기를 쓸 수 있게 해서 RDF 외에 다른 형식의 데이터 소스를 다룰 수 있게 했다는 것입니다. 새로운 쿼리 문법이 이것을 가능하게 합니다. XML 소스에 대한 지원 역시 제공됩니다. 템플릿에 쓸 수 있는 새로운 기능의 자세한 내용은 {{mediawiki.interwiki('wikimo', 'XUL:Template_Features_in_1.9', '여기')}}에 있습니다. ({{template.Bug(285631)}})

그 밖의 템플릿 개선점:

  • 규칙에 결과를 맞추는 것을 더 정밀하게 제어하게 하는 관계 조건문이 추가됐습니다. 예를 들어 관계 조건문은 어떤 문자열로 시작하거나 끝나는 결과를 구하거나, 문자열이 다른 값의 앞이나 뒤에 있는 결과를 구하는 것을 가능하게 합니다.
  • 결과의 한 단계만 만들어지는 것과 같은 일로 재귀가 발생하지 않게 예방하는 'dont-recurse' 플래그가 추가됐습니다.
  • 출력 항목을 나타내는 결과 목적어를 구하는 API들이 템플릿 빌더에 추가됐습니다.
  • XUL 정렬 서비스가 더 튼튼하고, 컨텐트 및 비컨텐트 나무구조 둘 다 더 잘 정렬합니다. 템플릿으로 만들지 않은 컨텐트를 정렬하는 것 역시 가능하게 합니다. ({{template.Bug(335122)}})
그 밖의 변경 사항
  • JavaScript 1.8이 XUL 스크립트와 XPCOM 컴포넌트의 기본 버전입니다. 지시자명으로 let이나 yield와 같은 키워드를 사용하면 문제가 될 수 있습니다.
  • {{template.XULElem("tabbrowser")}} 요소는 더이상 "toolkit"의 일부분이 아닙니다. 즉, XUL 어플리케이션과 확장기능에서 더이상 이 요소를 쓸 수 없음을 의미합니다({{template.Bug(339964)}}). 하지만, Firefox 메인창(browser.xul)에서는 계속 쓸 수 있습니다.

XBL

여러 XML 파일에서 데이터를 읽어오는 대신 data:가 URL을 XBL로 바로 바인딩합니다. 이에 대한 자세한 사항은 XBL binding을 참고하십시오 ({{template.Bug(366770)}}).

부가 기능 관리자

부가 기능 메타 데이터 번역

Firefox 3는 부가 기능의 메타데이터를 지역화하는 데 쓰이는 새로운 메소드를 제공합니다. 이것은 부가 기능을 내려받자마자 지역화된 내용을 이용할 수 있게 하고 부가 기능이 사용되지 않을 때도 이용할 수 있게 할 뿐만 아니라 잠재적으로 addons.mozilla.org의 사정을 나아지게 할 것입니다.

자세한 내용은 확장 기능 기술 지역화하기를 참고하세요.

Toolkit target application for add-ons

Firefox 3(그리고 어떤 Gecko 1.9 기반의 애플리케이션)는 애플리케이션의 실제 id를 지정하는 파일 (install.rdf, update.rdf) 어디라도 targetApplication 항목을 toolkit@mozilla.org id로 지정할 수 있게 합니다. 이것은 그 부가 기능이 어떤 툴킷 애플리케이션과도 호환된다는 것을 밝힐 수 있게 합니다. 관련된 minVersion과 maxVersion은 해당 애플리케이션의 툴킷 버전과 비교됩니다(예를 들어 Firefox 3의 툴킷 버전은 1.9입니다).

부가 기능의 보안상 제약

이제 안전한 업데이트 방법을 제공하는 부가 기능만 설치할 수 있습니다. addons.mozilla.org에 등록된 것들은 알아서 제공됩니다. 자세한 내용은 안전한 업데이트를 보세요.

Other platform functionality

이벤트
  • Some events that were not previously are now reflected as attributes, such as 'onscroll'. Attributes are now available for the scroll, resize, DOMMouseScroll, DOMFocusIn, DOMFocusOut events as well as for the various mutation events.
  • Two new drag related events are available. The drag event is fired on the source element during the drag. The dragend event is fired on the source node when a drag is complete.
DOM changes

Added privileged-code-only getters for Node.nodePrincipal, Node.baseURIObject, and document.documentURIObject.

Chrome code must not touch (get or set) these properties on an unwrapped content object (e.g. on a wrappedJSObject of an XPCNativeWrapper), see {{template.Bug(324464)}} for details.

Full page zoom

The {{template.Interface("nsIMarkupDocumentViewer")}} interface now includes support for full page zoom as well as text zoom. ({{template.Bug(4821)}})

Idle Service

A new service has been added to determine how long the user has been idle (that is, since the last time they pressed a key or moved their mouse). This service implements the nsIIdleService interface.

XPCOM
XPCOM cycle collector
Base64 conversion in JavaScript components

Two new global functions have been added for use by JavaScript XPCOM components: atob() and btoa(). These function identically to the DOM functions by the same names (see atob() and btoa() for details). ({{template.Bug(326854)}})

XPCSafeJSObjectWrapper

XPConnect now exposes the XPCSafeJSObjectWrapper JavaScript class, which is used to wrap XPCNativeWrapper.wrappedJSObject to provide improved security ({{template.Bug(355766)}}. In addition, the sandbox now provides several new methods to support this.

Should update the XPCNativeWrapper page, link the "several new methods" from here.

Thread manager
JavaScript modules (Components.import)

Components.utils.import can now be used for sharing code among different scopes.

Some modules are shipped with Firefox and other applications:

Removed interfaces

Certain interfaces have been removed from Gecko in version 1.9:

  • nsIDOMPaintListener
  • nsIDOMScrollListener
  • nsIDOMMutationListener
  • nsIDOMPageTransitionListener

Code that makes use of any of these interfaces will need to be updated.

신규 Firefox API

플레이스

  • 방문기록 및 북마크 API 추가
  • 관련 정보 추가
  • 방문기록, 북마크, 관련 정보 등을 DB형으로 쿼리 가능
  • 방문기록, 북마크 이벤트
  • 동기화
  • Places 위젯

자세한 사항은 Places을 참고하세요.

다운로드 관리자
  • 다운로드 관리자 API에 새로운 기능들이 추가되었으며, 다중 진행 리스너(multiple progress listener)를 지원합니다. 또한 백엔드 데이터 관리가 RDF에서 mozStorage로 변경되었습니다. 세부 API는 nsIDownloadManager, nsIDownload, nsIDownloadProgressListener를 참조하고, 예제는 Monitoring downloads에서 볼 수 있습니다.
    • 백엔드가 RDF에서 mozStorage로 바뀌었습니다(결과적으로 nsIDownloadManager 및 nsIDownload의 API가 바뀌었습니다). ({{template.Bug(380250)}})
    • 다운로드 관리자가 이제 다수의 경과 청취자를 지원합니다. ({{template.Bug(289540)}})
    • 다운로드 관리자에 retryDownload 메소드가 추가되었습니다. ({{template.Bug(382825)}})
    • getDownload 메소드는 현재 다운로드중인 것과 이전의 것들 모두를 반환합니다. ({{template.Bug(382839)}})
    • 부가적인 정보를 얻으려면 이 페이지를 참고하세요.
  • {{template.Interface("nsIDownloadManagerUI")}} 인터페이스를 구현하여 다운로드 관리자의 사용자 인터페이스를 변경할 수 있습니다.
Login manager

The Password Manager has been replaced by the new Login Manager. For details, see the following articles:

Site-specific preferences

Firefox 3 includes a service for getting and setting arbitrary site-specific (a.k.a. per-site) preferences that extensions as well as core code can use to keep track of their users' preferences for individual sites.

기타 버그 수정 내용

  • 오버레이를 구문 분석할 때 오류가 발생하면 오버레이는 적용되지 않습니다. 구문해석 오류는 오류 콘솔에 기록됩니다. ({{template.Bug(355755)}})
  • <menupopup>이 메뉴 및 메뉴같은 요소에 붙여질 때 바인딩 안에 있을 수 있게 고쳤습니다. ({{template.Bug(345896)}})
  • 버튼의 dlgType 프로퍼티가 이제 제대로 작동합니다. ({{template.Bug(308591)}})
  • event.initEventcanBubble 인수가 이제 제대로 작동해서 넘치지 않는 이벤트를 발생할 수 있습니다. ({{template.Bug(330190)}})
  • DOMAttrModified 이벤트가 이제 네임스페이스가 지정된 속성을 제대로 다룹니다. ({{template.Bug(247095)}})
  • <?xml-stylesheet ?>와 같은 XML 처리 명령(processing instructions)이 이제 XUL 문서의 DOM에 추가됐습니다. 이것은 document.firstChild가 루트 요소라는 것을 보장하지 않는 것을 의미합니다. 그 대신에 document.documentElement를 쓰세요. 또한 문서 서두에 있지 않은 <?xml-stylesheet ?><?xul-overlay ?> 처리 명령은 이제 효과가 없습니다. ({{template.Bug(319654)}})
  • getElementsByAttributeNS 함수가 XUL 요소 및 문서에 추가됐습니다. ({{template.Bug(239976)}})
  • XUL 문서에서 요소를 옮기거나 없앨 때 이벤트 경청자(listeners)를 보존합니다. ({{template.Bug(286619)}})
  • 보이지 않는 문서의 변화 이벤트(mutation events)도 발생합니다. ({{template.Bug(201238)}})
  • 요소가 잘못된 순서로 그려지는 것과 관련된 여러 문제를 고쳤습니다. ({{template.Bug(317375)}})
  • getElementsByTagName() has been fixed to work correctly on subtrees that have elements with namespace prefixes in their tag names ({{template.Bug(206053)}}).
  • The DOMNodeInserted and DOMNodeRemoved events now properly apply to the correct nodes ({{template.Bug(367164)}}).

참고 사항

{{ wiki.languages( { "en": "en/Firefox_3_for_developers", "es": "es/Firefox_3_para_desarrolladores", "fr": "fr/Firefox_3_pour_les_d\u00e9veloppeurs", "ja": "ja/Firefox_3_for_developers", "pl": "pl/Firefox_3_dla_programist\u00f3w", "pt": "pt/Firefox_3_para_desenvolvedores" } ) }}

리비전 소스

<p>차세대 Firefox에 맞추어 웹 애플리케이션과 확장 기능, 웹 사이트 등에 최신 기술을 적용해 볼 수 있습니다.  다양한 개발자들의 기호에 맞추어 최신의 기술들을 살펴 보시고 적용해 보시기 바랍니다.
</p>
<ul><li> <a href="ko/Updating_extensions_for_Firefox_3">Firefox 3를 위한 확장 기능 업데이트</a>
</li><li> <a href="ko/Updating_web_applications_for_Firefox_3">Firefox 3를 위한 웹 사이트 업데이트</a>
</li></ul>
<h2 name="Firefox_3.EC.9D.98_.EC.A3.BC.EC.9A.94_.EC.8B.A0_.EA.B8.B0.EC.88.A0">Firefox 3의 주요 신 기술</h2>
<p>Firefox 3의 출시까지는 오래 남았지만, 관심을 끌만한 바뀐 점들이 이미 다수가 구현돼 있습니다. 아래는 새로운 기능들의 일부를 담고 있는 불완전한 목록입니다. 부담없이 목록에 새로운 내용을 더하거나 목록을 고치세요.
</p>
<div class="note"><b>일러두기:</b> 특정 기능이 구현됐고 문서화될 준비가 됐음을 알게 됐을 때, 문서화 작업을 시작할 수 있도록 그 사실을 이 페이지에 언급해준다면 매우 도움이 될 것입니다. 고맙습니다!</div>
<h3 name=".EC.9B.B9.EC.82.AC.EC.9D.B4.ED.8A.B8_.EB.B0.8F_.EC.9D.91.EC.9A.A9.ED.94.84.EB.A1.9C.EA.B7.B8.EB.9E.A8_.EA.B0.9C.EB.B0.9C.EC.9E.90.EC.97.90.EA.B2.8C_.EB.8F.84.EC.9B.80.EC.9D.B4_.EB.90.98.EB.8A.94_.EC.A0.95.EB.B3.B4">웹사이트 및 응용프로그램 개발자에게 도움이 되는 정보</h3>
<p><a href="ko/Gecko_1.9_Changes_affecting_websites">웹사이트에 영향을 미치는 Gecko 1.9의 바뀐 점</a>도 보세요.
</p>
<h4 name="HTML_.EA.B8.B0.EB.B3.B8">HTML 기본</h4>
<ul><li> &lt;FRAME&gt;과 &lt;IFRAME&gt; 요소의 잠재적인 보안 문제를 해결했습니다. 앞으로는 부모창과 프레임 문서가 같은 서버에 있어도 프레임이 부모 문서의 문자셋을 상속하지 않습니다. 자세한 사항은 {{template.Bug(35620)}}를 참고하십시오.
</li></ul>
<h4 name="Web_Applications_1.0">Web Applications 1.0</h4>
<p><i>마크 핑클(#devmo의 mfinkle)이 Web Applications 1.0의 문서화 작업을 이끌고 있습니다.</i>
</p>
<ul><li><code><a href="ko/HTML/Element/a">&lt;a ping&gt;</a></code> 실험적 지원 ({{template.Bug(319368)}}, <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/#ping">현재 명세</a>)
</li><li><code><a href="ko/DOM/window.navigator.registerProtocolHandler">navigator.registerProtocolHandler()</a></code> 메소드를 이용하여 웹 애플리케이션 프로토콜 핸들러를 등록할 수 있습니다.
</li><li>이제 WHATWG <a href="ko/Online_and_offline_events">온라인/오프라인 이벤트</a>를 지원해서, 인터넷에 연결돼 있는 지를 응용프로그램과 확장 기능이 알아서 동작하도록 할 수 있습니다..
<ul><li><a href="ko/DOM/window.navigator.onLine">navigator.onLine</a>
</li></ul>
</li><li>대체 스타일 쉬트 API ({{template.Bug(200930)}})
<ul><li><a href="ko/DOM/document.preferredStyleSheetSet">preferredStyleSheetSet</a>
</li><li><a href="ko/DOM/document.selectedStyleSheetSet">selectedStyleSheetSet</a>
</li><li><a href="ko/DOM/document.styleSheetSets">styleSheetSets</a>
</li><li><a href="ko/DOM/document.lastStyleSheetSet">lastStyleSheetSet</a>
</li><li><a href="ko/DOM/document.enableStyleSheetsForSet">enableStyleSheetsForSet</a>
</li></ul>
</li></ul>
<div class="note">대체 스타일 쉬트 API는 <a class="external" href="http://dev.w3.org/csswg/cssom/Overview.html#documentstyle">스타일 쉬트 겍체 모델</a>에서 표준화가 진행 중입니다.</div>
<ul><li><code><a href="ko/DOM/document.getElementsByClassName">getElementsByClassName()</a></code> DOM 메소드를 이제 지원합니다.
</li><li><code>&lt;canvas&gt;</code>요소 기능 확장
<ul><li> <code>transform()</code>와<code>setTransform()</code>메소드 지원 ({{template.Bug(357450)}}, <a class="external" href="http://whatwg.org/specs/web-apps/current-work/#transform">현재 표준 명세</a>)
</li><li> 아직 비표준인 텍스트 그리기 API 참조 <a href="ko/Drawing_text_using_a_canvas">캔버스를 이용한 텍스트 그리기</a>
</li></ul>
</li><li><code><a href="ko/DOM/element.contentEditable">contentEditable</a></code> 메소드 지원 (<a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/#contenteditable1">현재 표준 명세</a>)
</li><li>드래그 앤 드롭 이벤트 지원 {{template.Bug(375681)}}
</li><li>포커스 관리 API 지원 {{template.Bug(337631)}} <a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/#focus-management">표준안</a>
<ul><li><a href="ko/DOM/document.activeElement">activeElement</a> 지원
</li><li><a href="ko/DOM/document.hasFocus">hasFocus</a> 지원
</li></ul>
</li></ul>
<div class="note"><a class="external" href="http://www.whatwg.org/specs/web-apps/current-work/">Web Applications 1.0</a>(HTML5, XHTML5)은 아직 최종안이 아니고 작업초안입니다.</div>
<h4 name="Offline_resources"> Offline resources </h4>
<p>구현 과정은 진행중입니다. {{template.Bug(367447)}}과 의존하는 것들을 참고하세요. 작업 중인 명세는 <a class="external" href="http://www.campd.org/stuff/Offline%20Cache.html">에 있습니다.
</a></p><a class="external" href="http://www.campd.org/stuff/Offline%20Cache.html">
</a><ul><a class="external" href="http://www.campd.org/stuff/Offline%20Cache.html"></a><li><a class="external" href="http://www.campd.org/stuff/Offline%20Cache.html"><code></code></a><code><a href="ko/DOM/window.navigator.offlineResources">offlineResources</a></code> 지원  ({{template.Bug(372970)}})
</li><li><code><a href="ko/DOM/window.navigator.isLocallyAvailable">isLocallyAvailable</a></code> 지원  ({{template.Bug(373231)}}
</li><li><code><a href="ko/DOM/window.navigator.pendingOfflineLoads">pendingOfflineLoads</a></code>  지원 ({{template.Bug(372969)}}
</li><li>{{template.Bug(371432)}} 오프라인 시<code>&lt;input type="file"&gt;</code> 데이터 저장 및 온라인 시 업로드 하는 API 필요.
<ul><li><code><a href="ko/HTML/input.fileList">fileList</a></code>  지원 
</li><li><a href="ko/NsIDOMFile">nsIDOMFile</a>  지원 
</li><li><code>XMLHttpRequest.sendAsBinary</code>  지원 
</li></ul>
</li></ul>
<h4 name=".ED.81.AC.EB.A1.9C.EC.8A.A4_.EC.82.AC.EC.9D.B4.ED.8A.B8_XMLHttpRequest"> 크로스 사이트 XMLHttpRequest </h4>
<ul><li>{{template.Bug(389508)}} 원격 도메인간 XMLHttpRequest 지원 (Ajax 개발 시 다른 도메인 간 호출 허용.)
</li></ul>
<h4 name="CSS"><a href="ko/CSS">CSS</a></h4>
<p><i>에릭 셰퍼드(#devmo의 sheppy)가 Firefox 3의 CSS 문서화를 이끌고 있습니다.</i>
</p>
<ul><li> {{template.Cssxref("display")}} 속성의 값으로 <code>inline-block</code>과 <code>inline-table</code>을 구현했습니다.
</li><li> 이제 {{template.Cssxref("font-size-adjust")}} 속성이 모든 플랫폼에서 작동합니다(예전에는 윈도에서만 지원됐습니다).
</li><li> {{template.Cssxref("font-size-adjust")}}가 이제 모든 플랫폼에서 작동 ({{template.Bug(130473)}})
</li><li> {{template.Cssxref("color")}}의 값으로 <code>rgba()</code>와 <code>hsla()</code> 지원 ({{template.Bug(147017)}})
</li><li> {{template.Cssxref(":default")}} 슈도 클래스(pseudo-class) 지원 ({{template.Bug(302186)}})
</li><li> {{template.Cssxref("width")}}, {{template.Cssxref("min-width")}}, {{template.Cssxref("max-width")}}에 <code>-moz-max-content</code>, <code>-moz-min-content</code>, <code>-moz-fit-content</code>, and <code>-moz-available</code> 값이 추가됐습니다. ({{template.Bug(311415)}}, {{template.Bug(402706)}})
</li><li> HTML 소프트 하이픈 (<code>&amp;shy;</code>) 지원
</li><li> CSS 2.1 표준 명세를 따라서, 미리 규정된 탭이 비례간격(proportional) 글꼴에서 제대로 작동합니다.
</li><li> {{template.Cssxref("ime-mode")}} 속성 지원
</li><li> HTML에 {{template.Cssxref("text-rendering")}} 속성 지원 ({{template.Bug(387969)}})
</li><li> <code>-moz-border-<i>*</i>-start</code>와 <code>-moz-border-<i>*</i>-end</code> 속성들 구현 ({{template.Bug(74880)}})
</li><li> 남아있는 CSS 속성 대부분에 <code>-moz-initial</code> 구현(단, {{template.Cssxref("quotes")}}와 <code>-moz-border-<i>*</i>-colors</code>는 제외) ({{template.Bug(80887)}})
</li><li> <code>{{mediawiki.internal('DOM:window.getComputedStyle}window.getComputedStyle', "ko")}}</code>이 지원하는 모든 CSS 속성을 지원하도록 함 ({{template.Bug(316981)}})
</li><li> {{template.Cssxref("content")}}의 값으로 <code>none</code> 지원 {{template.Bug(378535)}}
</li></ul>
<h4 name="DOM">DOM</h4>
<ul><li> IE의 DOM 확장인 <code><a href="ko/DOM/element.clientTop">clientTop</a></code>과 <code><a href="ko/DOM/element.clientLeft">clientLeft</a></code>가 지원됩니다.
</li><li> <code><a href="ko/DOM/window.fullScreen">window.fullScreen</a></code> 프로퍼티가 컨텐츠 어디에서 읽더라도 정확하게 참조할 수 있습니다. 과거에는 <code>false</code>를 보내기도 했습니다.  ({{template.Bug(127013)}})
</li><li> DOM 확장인 <code><a href="ko/DOM/element.getClientRects">getClientRects</a></code>와 <code><a href="ko/DOM/element.getBoundingClientRect">getBoundingClientRect</a></code>가 지원됩니다. ({{template.Bug(174397)}})
</li><li> IE의 DOM 확장인 <code><a href="ko/DOM/document.elementFromPoint">elementFromPoint</a></code>가 지원됩니다. ({{template.Bug(199692)}})
</li><li> IE의 DOM 확장인 <code><a href="ko/DOM/element.oncut">oncut</a></code>, <code><a href="ko/DOM/element.oncopy">oncopy</a></code> <code><a href="ko/DOM/element.onpaste">onpaste</a></code>, <code><a href="ko/DOM/element.onbeforecut">onbeforecut</a></code>, <code><a href="ko/DOM/element.onbeforepaste">onbeforecopy</a></code>, 그리고 <code><a href="ko/DOM/element.onbeforepaste">onbeforepaste</a></code>가 지원됩니다. ({{template.Bug(280959)}})
</li></ul>
<h4 name="JavaScript">JavaScript</h4>
<ul><li><a href="ko/New_in_JavaScript_1.8">JavaScript 1.8</a>을 구현하고 있습니다({{template.Bug(380236)}}). <i><a href="User:Jresig">존 레식</a>이 문서화 작업을 이끌 것입니다.</i>
<ul><li> 구현된 모든 것은 이미 <a href="ko/New_in_JavaScript_1.8">JavaScript 1.8</a> 페이지에 문서화되어 있습니다.
</li><li> 추가 정보를 보려면 이 <a class="external" href="http://ejohn.org/blog/javascript-18-progress/">블로그 글</a>을 보세요.
</li></ul>
</li><li> <code>Script</code> 객체는 더이상 지원되지 않습니다. 그것은 표준이 아니었고 오랫동안 없어져야 할 필요가 있었습니다. 자세한 내용은 <a href="ko/Updating_web_applications_for_Firefox_3">Firefox 3를 위한 웹 사이트 업데이트</a>를 참고하세요.
</li></ul>
<h4 name="XSLT.2FXPath">XSLT/XPath</h4>
<ul><li> Firefox 3는 <a href="ko/XSLT">XSLT</a>의 확장인 <a href="ko/EXSLT">EXSLT</a>의 기본적인 부분을 지원합니다. 지원하는 모듈은 <code><a href="ko/EXSLT#common">common</a></code>, <code><a href="ko/EXSLT#math">math</a></code>, <code><a href="ko/EXSLT#regexp">regexp</a></code>, <code><a href="ko/EXSLT#set">set</a></code>, 그리고 <code><a href="ko/EXSLT#str">str</a></code>입니다. 이들의 모든 함수는 아니지만 대부분이 지원됩니다.
</li></ul>
<h4 name="SVG"><a href="ko/SVG">SVG</a></h4>
<ul><li><code>foreignObject</code> 요소 지원 ({{template.Bug(326966)}}, <a class="external" href="http://www.w3.org/TR/SVG11/extend.html#ForeignObjectElement">명세</a>, <a class="external" href="http://weblogs.mozillazine.org/roc/archives/2006/06/the_future_is_now.html">관련 글</a>). <i>mfinkle</i>
</li><li><code>pattern</code> 요소 지원 (<a class="external" href="http://www.w3.org/TR/SVG11/pservers.html#PatternElement">명세</a>)
</li><li><code>mask</code> 요소 지원 (<a class="external" href="http://www.w3.org/TR/SVG11/masking.html#MaskElement">명세</a>)
</li><li>SVG 필터 지원 (<a class="external" href="http://www.w3.org/TR/SVG11/filters.html">명세</a>)
<ul><li><code>filter</code>
</li><li><code>feDistantLight</code>
</li><li><code>fePointLight</code>
</li><li><code>feSpotLight</code>
</li><li><code>feBlend</code>
</li><li><code>feColorMatrix</code>
</li><li><code>feConvolveMatrix</code>
</li><li><code>feComponentTransfer</code>, <code>feFuncR</code>, <code>feFuncG</code>, <code>feFuncB</code>, <code>feFuncA</code>
</li><li><code>feComposite</code>
</li><li><code>feConvolveMatrix</code>
</li><li><code>feDiffuseLighting</code>
</li><li><code>feDistantLight</code>
</li><li><code>feFlood</code>
</li><li><code>feGaussianBlur</code>
</li><li><code>feMerge</code>, <code>feMergeNode</code>
</li><li><code>feMorphology</code>
</li><li><code>feOffset</code>
</li><li><code>fePointLight</code>
</li><li><code>feSpecularLighting</code>
</li><li><code>feTurbulence</code>
</li><li><code>feTile</code>
</li></ul>
</li><li>SVG에 포함된 <code>&lt;a&gt;</code> 요소를 다루는 과정의 여러 버그를 고쳤습니다. {{template.Bug(267664)}}, {{template.Bug(268135)}}, {{template.Bug(316248)}}, {{template.Bug(317270)}} 그리고 {{template.Bug(320724)}}를 참고하세요.
</li><li>SVG DOM 메소드인 <code>getNumberOfChars()</code>, <code>getComputedTextLength()</code>, <code>getSubStringLength()</code>, <code>getStartPositionOfChar()</code>, <code>getEndPositionOfChar()</code>, <code>getRotationOfChar()</code>, 그리고 <code>getCharNumAtPosition()</code>이 구현되었습니다.
</li><li><code>xml:space</code> 속성 지원 (<a class="external" href="http://www.w3.org/TR/SVG/text.html#WhiteSpace">명세</a>)
</li><li>fallback <code>fill</code>/<code>stroke</code> are now supported (<a class="external" href="http://www.w3.org/TR/SVG/painting.html#SpecifyingPaint">spec</a>)
</li><li> 길이를 나타내는 단위인 <code>em</code>과 <code>ex</code>를 지원합니다. ({{template.Bug(305859)}})
</li></ul>
<h4 name=".EA.B7.B8.EB.A6.BC">그림</h4>
<ul><li>움직이는 PNG(APNG) 지원 (<a class="external" href="http://wiki.mozilla.org/APNG_Specification">명세</a>)
</li></ul>
<h4 name=".EC.BF.A0.ED.82.A4">쿠키</h4>
<ul><li> <code>HttpOnly</code> 확장 속성이 지원됩니다({{template.Bug(178993)}}). 이 속성은 Firefox 2.0.0.5에도 추가됐으며, <a class="external" href="http://msdn2.microsoft.com/en-us/library/ms972826.aspx">특정 유형의 크로스사이트 스크립트 공격을 막는 데</a> 쓸 수도 있습니다.
</li></ul>
<h3 name="XUL_.EB.B0.8F_.ED.99.95.EC.9E.A5_.EA.B8.B0.EB.8A.A5_.EA.B0.9C.EB.B0.9C.EC.9E.90.EC.9A.A9">XUL 및 확장 기능 개발자용</h3>
<h4 name="XUL">XUL</h4>
<h5 name=".EC.83.88.EB.A1.9C.EC.9A.B4_XUL_.EC.9A.94.EC.86.8C">새로운 XUL 요소</h5>
<p><i>마크 핑클(#devmo의 mfinkle)이 새로운 XUL 요소의 문서화를 이끌고 있습니다.</i>
</p><p>Firefox 3에서 XUL은 다수의 새로운 요소를 지원합니다:
</p>
<ul><li>새로운 <code><a href="ko/XUL/scale">&lt;scale&gt;</a></code> 요소는 사용자가 특정 범위 안에서 어떤 값을 고를 수 있게 하는 미끄러져 움직이는 눈금자를 만듭니다. 예를 들어 일반적으로 이 위젯은 소리 크기 컨트롤을 만드는 데 쓰입니다.
</li><li>글상자(textbox)의 <code>type</code> 속성을 새로운 값 <code>'number'</code>로 지정하면 숫자만 넣어야 하는 글상자를 만듭니다. 게다가 값을 키우거나 줄이는 데 쓰는 화살표 버튼이 한쪽에 보이게 됩니다. {{mediawiki.interwiki('wikimo', 'XUL:Specs:NumberBox', '자세한 내용')}} ({{template.Bug(345510)}})
</li><li>메뉴 같은 위젯을 XBL 바인딩으로 만들 때 쓸만한 <code><a href="ko/XUL/dropmarker">&lt;dropmarker&gt;</a></code> 요소가 추가됐습니다. ({{template.Bug(348614)}})
</li><li>위젯을 XBL 바인딩으로 만들 때 쓰일 수 있는 <code><a href="ko/XUL/spinbuttons">&lt;spinbuttons&gt;</a></code> 요소가 추가됐습니다. ({{template.Bug(155053)}})
</li><li><code><a href="ko/XUL/datepicker">&lt;datepicker&gt;</a></code>와 <code><a href="ko/XUL/timepicker">&lt;timepicker&gt;</a></code> 두 위젯이 날짜 및 시각을 넣게 하는 데 쓰일 수 있습니다. datepicker는 <code>type</code> 속성으로 여러 모양으로 표현할 수 있어서, 글상자 및 달력 모양에서 입력하게 할 수 있습니다. {{mediawiki.interwiki('wikimo', 'XUL:Specs:DateTimePickers', '자세한 내용')}} <a href="ko/XUL/datepicker">Datepicker 참고</a> <a href="ko/XUL/timepicker">Timepicker 참고</a> ({{template.Bug(92174)}})
</li><li><code><a href="ko/XUL/panel">&lt;panel&gt;</a></code> 요소가 메뉴가 없는 팝업을 위해 만들어졌습니다. 다양한 형식의 컨텐츠를 지원합니다. &lt;menupopup&gt; 요소는 메뉴에서만 사용해야 하고 메뉴는 키보드 네비게이션 및 서브 메뉴 열고 닫기를 지원 합니다.
</li></ul>
<h5 name=".ED.8A.B8.EB.A6.AC_.EA.B5.AC.EC.A1.B0_.EA.B0.9C.EC.84.A0.EC.A0.90">트리 구조 개선점</h5>
<ul><li>트리 구조가 이제 횡스크롤을 지원합니다. 횡스크롤바는 열(column)들이 이용 가능한 너비에 맞지 않을 때 보이게 됩니다. 열들의 지정된 너비를 합한 게 이용 가능한 빈 공간의 너비보다 길 때 일어납니다. ({{template.Bug(212789)}})
</li><li>새로운 선택 스타일이 행 전체 대신에 셀 하나하나를 선택할 수 있게 합니다. 트리 구조의 <code>seltype</code> 속성을 <code>'cell'</code>로 설정해서 써야 합니다. ({{template.Bug(296040)}})
</li><li>트리 구조가 이제 셀 하나하나를 편집하는 것을 지원합니다. 편집 가능한 셀을 더블클릭하면 셀의 내용을 편집할 수 있는 글상자를 보여줄 것입니다. {{mediawiki.interwiki('wikimo', 'XUL:Tree', '자세한 내용')}} ({{template.Bug(201499)}})
</li><li>&lt;treecol&gt; 요소가 이제 <code>overflow</code> 속성을 지원합니다. 이 속성의 값이 'true'이면 텍스트가 너무 길어 셀 안에 들어가지 않을 때 이웃의 빈 셀로 확장되도록 허용합니다.
</li></ul>
<h5 name=".EB.A9.94.EB.89.B4_.EA.B0.9C.EC.84.A0.EC.A0.90">메뉴 개선점</h5>
<p><code>&lt;menu&gt;</code> 및 <code>&lt;menulist&gt;</code> 요소를 일부분 개선했습니다({{template.Bug(333023)}}):
</p>
<ul><li>그림을 지정하는 데 <code>image</code> 속성이 일관되게 쓰입니다.
</li><li>항목을 선택할 때 <code>menulist</code>가 선택 이벤트를 발생합니다.
</li><li><code>menulist</code>에 <code>inputField</code>와 <code>editable</code> 프로퍼티가 추가됐습니다.
</li><li><code>&lt;menu&gt;</code>, <code>&lt;menuitem&gt;</code>, <code>&lt;menuseparator&gt;</code>에 읽기전용인 <code>selected</code> 프로퍼티가 추가됐습니다. 이 프로퍼티는 &lt;menulist&gt;의 항목의 선택 여부를 담게 됩니다.
</li><li><code>&lt;menu&gt;</code>, <code>&lt;menuitem&gt;</code>, <code>&lt;menuseparator&gt;</code> 요소에 읽기전용인 <code>control</code> 프로퍼티가 추가됐습니다. 이 속성은 에워싼 &lt;menulist&gt;를 넘겨줍니다.
</li><li><code>&lt;menu&gt;</code>, <code>&lt;menuitem&gt;</code>, <code>&lt;menuseparator&gt;</code> 요소는 이제 상응하는 속성을 설정하는 <code>accessKey</code>, <code>disabled</code>, <code>crop</code>, <code>image</code>, <code>label</code> 프로퍼티를 지원합니다.
</li><li>이제 <code>&lt;menu&gt;</code> 요소에 메뉴항목을 덧붙이고, 끼워넣고, 없애는 메소드가 있습니다. ({{template.Bug(372552)}})
</li><li>편집 가능한 <code>menulist</code>의 글상자에 쓰이는 내부 <a href="ko/NsIEditor">nsIEditor</a>를 넘겨주는 <code>editor</code> 프로퍼티를 지원합니다. ({{template.Bug(312867)}})
</li><li>이제 플랫폼이 지원하면 메뉴를 반투명하게 만들 수 있습니다. ({{template.Bug(70798)}})
</li></ul>
<h5 name=".EA.B8.80.EC.83.81.EC.9E.90.28Textbox.29_.EA.B0.9C.EC.84.A0.EC.A0.90">글상자(Textbox) 개선점</h5>
<ul><li><code>textbox</code>의 <code>spellcheck</code> 속성을 <code>'true'</code>로 설정하면 입력할 때마다 바로바로 맞춤법을 검사합니다(inline spellchecking). ({{template.Bug(346787)}})
</li><li>이제 <code>&lt;textbox&gt;</code>에 글상자의 값을 기본값으로 되돌리는 <code>reset()</code> 메소드가 있습니다. 글상자의 기본값을 가져오고 바꾸는 데 <code>defaultValue</code> 프로퍼티가 쓰이게 됩니다. ({{template.Bug(312867)}})
</li><li>텍스트 필드의 내부 <a href="ko/NsIEditor">nsIEditor</a>를 넘겨주는 <code>editor</code> 프로퍼티를 지원합니다. ({{template.Bug(312867)}})
</li><li>글상자가 이제 붙여넣은 텍스트의 줄바꿈 기호를 처리하는 방법을 지정하는 <code>newlines</code> 속성을 지원합니다. ({{template.Bug(253481)}}) 쓸 수 있는 값은 다음과 같습니다.
<ul><li><code>pasteintact</code> - 모두 그대로 붙여넣음
</li><li><code>pastetofirst</code> - (기본값) 첫 줄바꿈 기호까지만 붙여넣음
</li><li><code>replacewithspaces</code> - 줄바꿈 기호를 빈 칸으로 바꿈
</li><li><code>replacewithcommas</code> - 줄바꿈 기호를 반점(,)으로 바꿈
</li><li><code>strip</code> - 모든 줄바꿈 기호를 없앰
</li><li><code>stripsurroundingwhitespace</code> - 모든 줄바꿈 기호와 에워싼 공백문자를 없앰
</li></ul>
</li></ul>
<h5 name=".EA.B7.B8_.EB.B0.96.EC.9D.98_.EC.9A.94.EC.86.8C_.EA.B0.9C.EC.84.A0.EC.A0.90">그 밖의 요소 개선점</h5>
<ul><li>마우스 버튼을 누르고 있는 동안 명령(command) 이벤트를 되풀이하여 발생하는 버튼을 만들려면 <code>&lt;button&gt;</code>의 <code>type</code> 속성을 <code>'repeat'</code>로 설정해야 합니다. ({{template.Bug(331055)}})
</li><li>이제 <code><a href="ko/XUL/Attribute/buttondisabledaccept">buttondisabledaccept</a></code> 속성을 <code>&lt;dialog&gt;</code> 요소에 써서 확인 버튼을 초기에 비활성화할 수 있습니다. ({{template.Bug(247849)}})
</li><li><code>&lt;titlebar&gt;</code> 요소가 이제 <code>allowevents</code> 속성을 지원합니다. 이 속성은 titlebar의 자식에게 이벤트를 넘겨줄 수 있게 합니다. ({{template.Bug(361425)}})
</li><li><code>&lt;splitter&gt;</code>가 이제 <code>collapse</code> 속성의 부가적인 값으로 <code>'both'</code>를 지원합니다. 이 값은 스플릿터를 마우스로 끌 때 양쪽의 요소를 접을 수 있음을 가리킵니다. <code>substate</code> 속성은 어느 쪽이 접혔는지(앞(before) 또는 뒤(after))를 나타냅니다. ({{template.Bug(337955)}})
</li><li><code>&lt;richlistbox&gt;</code> 요소가 이제 다중 선택을 지원합니다. 이 기능을 켜려면 <code>seltype</code> 속성을 <code>'multiple'</code>로 설정하세요.
</li><li><code>&lt;radio&gt;</code> 요소에는 자신이 속하게 될 <code>&lt;radiogroup&gt;</code> 요소의 id로 설정될 <code>group</code> 속성이 있습니다. 이것은 라디오 버튼들 모두를 하나의 radiogroup 안에 둘 때 어울리지 않게 배열할 수 있게 합니다.
</li><li>메뉴, 패널, 그리고 툴팁이 두 개의 추가 메소드 <code>openPopup</code>과 <code>openPopupAtScreen</code>을 지원합니다. 이들은 쓰기에 헷갈리는 것으로 알려진 <code>showPopup</code> 대신에 쓰일 것입니다.
</li></ul>
<h5 name=".ED.85.9C.ED.94.8C.EB.A6.BF_.EB.B0.94.EB.80.90_.EC.A0.90">템플릿 바뀐 점</h5>
<p><i>템플릿 문서화는 마크 핑클(#devmo의 mfinkle)이 이끌고 있습니다.</i>
</p><p>템플릿은 Firefox 3에서 두드러지게 향상됐습니다. 주 개선점은 맞춤 쿼리 처리기를 쓸 수 있게 해서 RDF 외에 다른 형식의 데이터 소스를 다룰 수 있게 했다는 것입니다. 새로운 쿼리 문법이 이것을 가능하게 합니다. XML 소스에 대한 지원 역시 제공됩니다. 템플릿에 쓸 수 있는 새로운 기능의 자세한 내용은 {{mediawiki.interwiki('wikimo', 'XUL:Template_Features_in_1.9', '여기')}}에 있습니다. ({{template.Bug(285631)}})
</p><p>그 밖의 템플릿 개선점:
</p>
<ul><li>규칙에 결과를 맞추는 것을 더 정밀하게 제어하게 하는 관계 조건문이 추가됐습니다. 예를 들어 관계 조건문은 어떤 문자열로 시작하거나 끝나는 결과를 구하거나, 문자열이 다른 값의 앞이나 뒤에 있는 결과를 구하는 것을 가능하게 합니다.
</li><li>결과의 한 단계만 만들어지는 것과 같은 일로 재귀가 발생하지 않게 예방하는 'dont-recurse' 플래그가 추가됐습니다.
</li><li>출력 항목을 나타내는 결과 목적어를 구하는 API들이 템플릿 빌더에 추가됐습니다.
</li><li>XUL 정렬 서비스가 더 튼튼하고, 컨텐트 및 비컨텐트 나무구조 둘 다 더 잘 정렬합니다. 템플릿으로 만들지 않은 컨텐트를 정렬하는 것 역시 가능하게 합니다. ({{template.Bug(335122)}})
</li></ul>
<h5 name=".EA.B7.B8_.EB.B0.96.EC.9D.98_.EB.B3.80.EA.B2.BD_.EC.82.AC.ED.95.AD"> 그 밖의 변경 사항</h5>
<ul><li> <a href="ko/New_in_JavaScript_1.8">JavaScript 1.8</a>이 XUL 스크립트와 XPCOM 컴포넌트의 기본 버전입니다. 지시자명으로 <code>let</code>이나 <code>yield</code>와 같은 키워드를 사용하면 문제가 될 수 있습니다.
</li><li> {{template.XULElem("tabbrowser")}} 요소는 더이상 "toolkit"의 일부분이 아닙니다. 즉, XUL 어플리케이션과 확장기능에서 더이상 이 요소를 쓸 수 없음을 의미합니다({{template.Bug(339964)}}). 하지만, Firefox 메인창(browser.xul)에서는 계속 쓸 수 있습니다.
</li></ul>
<h4 name="XBL">XBL</h4>
<p>여러 XML 파일에서 데이터를 읽어오는 대신 <code>data:</code>가 URL을 XBL로 바로 바인딩합니다.  이에 대한 자세한 사항은 <a href="ko/XBL/XBL_1.0_Reference/Elements#binding">XBL binding</a>을 참고하십시오 ({{template.Bug(366770)}}).
</p>
<h4 name=".EB.B6.80.EA.B0.80_.EA.B8.B0.EB.8A.A5_.EA.B4.80.EB.A6.AC.EC.9E.90"> 부가 기능 관리자</h4>
<h5 name=".EB.B6.80.EA.B0.80_.EA.B8.B0.EB.8A.A5_.EB.A9.94.ED.83.80_.EB.8D.B0.EC.9D.B4.ED.84.B0_.EB.B2.88.EC.97.AD">부가 기능 메타 데이터 번역</h5>
<p>Firefox 3는 부가 기능의 메타데이터를 지역화하는 데 쓰이는 새로운 메소드를 제공합니다. 이것은 부가 기능을 내려받자마자 지역화된 내용을 이용할 수 있게 하고 부가 기능이 사용되지 않을 때도 이용할 수 있게 할 뿐만 아니라 잠재적으로 addons.mozilla.org의 사정을 나아지게 할 것입니다.
</p><p>자세한 내용은 <a href="ko/Localizing_extension_descriptions">확장 기능 기술 지역화하기</a>를 참고하세요.
</p>
<h5 name="Toolkit_target_application_for_add-ons">Toolkit target application for add-ons</h5>
<p>Firefox 3(그리고 어떤 Gecko 1.9 기반의 애플리케이션)는 애플리케이션의 실제 id를 지정하는 파일 (install.rdf, update.rdf) 어디라도 targetApplication 항목을 <code>toolkit@mozilla.org</code> id로 지정할 수 있게 합니다. 이것은 그 부가 기능이 어떤 툴킷 애플리케이션과도 호환된다는 것을 밝힐 수 있게 합니다. 관련된 minVersion과 maxVersion은 해당 애플리케이션의 툴킷 버전과 비교됩니다(예를 들어 Firefox 3의 툴킷 버전은 1.9입니다).
</p>
<h5 name=".EB.B6.80.EA.B0.80_.EA.B8.B0.EB.8A.A5.EC.9D.98_.EB.B3.B4.EC.95.88.EC.83.81_.EC.A0.9C.EC.95.BD">부가 기능의 보안상 제약</h5>
<p>이제 안전한 업데이트 방법을 제공하는 부가 기능만 설치할 수 있습니다. <a class="external" href="https://addons.mozilla.org">addons.mozilla.org</a>에 등록된 것들은 알아서 제공됩니다. 자세한 내용은 <a href="ko/Extension_Versioning%2c_Update_and_Compatibility#Securing_Updates">안전한 업데이트</a>를 보세요.
</p>
<h4 name="Other_platform_functionality">Other platform functionality</h4>
<h5 name=".EC.9D.B4.EB.B2.A4.ED.8A.B8">이벤트</h5>
<ul><li>Some events that were not previously are now reflected as attributes, such as 'onscroll'. Attributes are now available for the scroll, resize, DOMMouseScroll, DOMFocusIn, DOMFocusOut events as well as for the various mutation events.
</li><li>Two new drag related events are available. The <code>drag</code> event is fired on the source element during the drag. The <code>dragend</code> event is fired on the source node when a drag is complete.
</li></ul>
<h5 name="DOM_changes">DOM changes</h5>
<p>Added privileged-code-only getters for <code>Node.nodePrincipal</code>, <code>Node.baseURIObject</code>, and <code><a href="ko/DOM/document.documentURIObject">document.documentURIObject</a></code>.
</p><p>Chrome code must not touch (get or set) these properties on an unwrapped content object (e.g. on a <code>wrappedJSObject</code> of an <code><a href="ko/XPCNativeWrapper">XPCNativeWrapper</a></code>), see {{template.Bug(324464)}} for details.
</p>
<h5 name="Full_page_zoom">Full page zoom</h5>
<p>The {{template.Interface("nsIMarkupDocumentViewer")}} interface now includes support for <a href="ko/Full_page_zoom">full page zoom</a> as well as text zoom. ({{template.Bug(4821)}})
</p>
<h5 name="Idle_Service">Idle Service</h5>
<p>A new service has been added to determine how long the user has been idle (that is, since the last time they pressed a key or moved their mouse). This service implements the <code><a href="ko/NsIIdleService">nsIIdleService</a></code> interface.
</p>
<h5 name="XPCOM">XPCOM</h5>
<h6 name="XPCOM_cycle_collector">XPCOM cycle collector</h6>
<ul><li> See <a href="ko/Interfacing_with_the_XPCOM_cycle_collector">Interfacing with the XPCOM cycle collector</a> (should get graydon to look at it)
</li><li> See {{mediawiki.interwiki('wikimo', 'Global_nsICycleCollector_service', 'Global nsICycleCollector service')}} (outdated: design document)
</li><li> {{template.Bug(333078)}}
</li><li> <a href="ko/Using_XPCOM_in_JavaScript_without_leaking">Using XPCOM in JavaScript without leaking</a> should be updated
</li><li> Implementing cycle collector participant in external code (<a class="external" href="http://groups.google.com/group/mozilla.dev.tech.xpcom/browse_frm/thread/dce5bc97e888a82/5f6b49099bf28a02?lnk=st&amp;q=cycle+collector+mozilla&amp;rnum=5&amp;hl=en#5f6b49099bf28a02">, {{template.Bug(386025)}})
</a></li></ul><a class="external" href="http://groups.google.com/group/mozilla.dev.tech.xpcom/browse_frm/thread/dce5bc97e888a82/5f6b49099bf28a02?lnk=st&amp;q=cycle+collector+mozilla&amp;rnum=5&amp;hl=en#5f6b49099bf28a02">
<h6 name="Base64_conversion_in_JavaScript_components">Base64 conversion in JavaScript components</h6>
</a><p><a class="external" href="http://groups.google.com/group/mozilla.dev.tech.xpcom/browse_frm/thread/dce5bc97e888a82/5f6b49099bf28a02?lnk=st&amp;q=cycle+collector+mozilla&amp;rnum=5&amp;hl=en#5f6b49099bf28a02">Two new global functions have been added for use by JavaScript XPCOM components: <code>atob()</code> and <code>btoa()</code>.  These function identically to the DOM functions by the same names (see <code></code></a><code><a href="ko/DOM/window.atob">atob()</a></code> and <code><a href="ko/DOM/window.btoa">btoa()</a></code> for details). ({{template.Bug(326854)}})
</p>
<h6 name="XPCSafeJSObjectWrapper">XPCSafeJSObjectWrapper</h6>
<p>XPConnect now exposes the <code>XPCSafeJSObjectWrapper</code> JavaScript class, which is used to wrap <code>XPCNativeWrapper.wrappedJSObject</code> to provide improved security ({{template.Bug(355766)}}. In addition, the sandbox now provides several new methods to support this.
</p><p><i>Should update the <a href="ko/XPCNativeWrapper">XPCNativeWrapper</a> page, link the "several new methods" from here.</i>
</p>
<h5 name="Thread_manager">Thread manager</h5>
<ul><li><a href="ko/NsIThreadManager">nsIThreadManager</a>
</li><li>{{template.Bug(326273)}}
</li></ul>
<h5 name="JavaScript_modules_.28Components.import.29">JavaScript modules (<code>Components.import</code>)</h5>
<p><a href="ko/Components.utils.import">Components.utils.import</a> can now be used for sharing code among different scopes.
</p><p>Some modules are shipped with Firefox and other applications:
</p>
<ul><li> <a href="ko/XPCOMUtils.jsm">XPCOMUtils.jsm</a> (simplifies boilerplate in XPCOM components)
</li><li> <a href="ko/JSON.jsm">JSON.jsm</a>
</li></ul>
<h5 name="Removed_interfaces">Removed interfaces</h5>
<p>Certain interfaces have been removed from Gecko in version 1.9:
</p>
<ul><li> <code>nsIDOMPaintListener</code>
</li><li> <code>nsIDOMScrollListener</code>
</li><li> <code>nsIDOMMutationListener</code>
</li><li> <code>nsIDOMPageTransitionListener</code>
</li></ul>
<p>Code that makes use of any of these interfaces will need to be updated.
</p>
<h4 name=".EC.8B.A0.EA.B7.9C_Firefox_API">신규 Firefox API</h4>
<h4 name=".ED.94.8C.EB.A0.88.EC.9D.B4.EC.8A.A4"><a href="ko/Places">플레이스</a></h4>
<ul><li> 방문기록 및 북마크 API 추가
</li><li> 관련 정보 추가
</li><li> 방문기록, 북마크, 관련 정보 등을 DB형으로 쿼리 가능
</li><li> 방문기록, 북마크 이벤트
</li><li> 동기화
</li><li> Places 위젯
</li></ul>
<p>자세한 사항은 <a href="ko/Places">Places</a>을 참고하세요.
</p>
<h5 name=".EB.8B.A4.EC.9A.B4.EB.A1.9C.EB.93.9C_.EA.B4.80.EB.A6.AC.EC.9E.90">다운로드 관리자</h5>
<ul><li> 다운로드 관리자 API에 새로운 기능들이 추가되었으며, 다중 진행 리스너(multiple progress listener)를 지원합니다. 또한 백엔드 데이터 관리가 RDF에서 <a href="ko/Storage">mozStorage</a>로 변경되었습니다. 세부 API는 <code><a href="ko/NsIDownloadManager">nsIDownloadManager</a></code>, <code><a href="ko/NsIDownload">nsIDownload</a></code>, <code><a href="ko/NsIDownloadProgressListener">nsIDownloadProgressListener</a></code>를 참조하고, 예제는 <a href="ko/Monitoring_downloads">Monitoring downloads</a>에서 볼 수 있습니다.
<ul><li> 백엔드가 RDF에서 mozStorage로 바뀌었습니다(결과적으로 nsIDownloadManager 및 nsIDownload의 API가 바뀌었습니다). ({{template.Bug(380250)}})
</li><li> 다운로드 관리자가 이제 다수의 경과 청취자를 지원합니다. ({{template.Bug(289540)}})
</li><li> 다운로드 관리자에 retryDownload 메소드가 추가되었습니다. ({{template.Bug(382825)}})
</li><li> getDownload 메소드는 현재 다운로드중인 것과 이전의 것들 모두를 반환합니다. ({{template.Bug(382839)}})
</li><li> 부가적인 정보를 얻으려면 <a class="external" href="http://shawnwilsher.com/archives/100">이 페이지</a>를 참고하세요.
</li></ul>
</li><li> {{template.Interface("nsIDownloadManagerUI")}} 인터페이스를 구현하여 다운로드 관리자의 사용자 인터페이스를 변경할 수 있습니다.
</li></ul>
<h5 name="Login_manager">Login manager</h5>
<p>The Password Manager has been replaced by the new Login Manager.  For details, see the following articles:
</p>
<ul><li> <code><a href="ko/NsILoginManager">nsILoginManager</a></code>
</li><li> <code><a href="ko/NsILoginInfo">nsILoginInfo</a></code>
</li><li> <a href="ko/Using_nsILoginManager">Using nsILoginManager</a>
</li></ul>
<h5 name="Site-specific_preferences">Site-specific preferences</h5>
<p>Firefox 3 includes a service for getting and setting arbitrary site-specific (a.k.a. per-site) preferences that extensions as well as core code can use to keep track of their users' preferences for individual sites.  
</p>
<ul><li>{{template.Interface("nsIContentPrefService")}}
</li><li>{{template.Interface("nsIContentPrefObserver")}}
</li><li><a href="ko/Using_content_preferences">Using content preferences</a>
</li></ul>
<h4 name=".EA.B8.B0.ED.83.80_.EB.B2.84.EA.B7.B8_.EC.88.98.EC.A0.95_.EB.82.B4.EC.9A.A9">기타 버그 수정 내용</h4>
<ul><li>오버레이를 구문 분석할 때 오류가 발생하면 오버레이는 적용되지 않습니다. 구문해석 오류는 오류 콘솔에 기록됩니다. ({{template.Bug(355755)}})
</li><li><code>&lt;menupopup&gt;</code>이 메뉴 및 메뉴같은 요소에 붙여질 때 바인딩 안에 있을 수 있게 고쳤습니다. ({{template.Bug(345896)}})
</li><li>버튼의 <code>dlgType</code> 프로퍼티가 이제 제대로 작동합니다. ({{template.Bug(308591)}})
</li><li><a href="ko/DOM/event.initEvent">event.initEvent</a>의 <code>canBubble</code> 인수가 이제 제대로 작동해서 넘치지 않는 이벤트를 발생할 수 있습니다. ({{template.Bug(330190)}})
</li><li><code>DOMAttrModified</code> 이벤트가 이제 네임스페이스가 지정된 속성을 제대로 다룹니다. ({{template.Bug(247095)}})
</li><li><code>&lt;?xml-stylesheet ?&gt;</code>와 같은 XML 처리 명령(processing instructions)이 이제 XUL 문서의 DOM에 추가됐습니다. 이것은 <code>document.firstChild</code>가 루트 요소라는 것을 보장하지 않는 것을 의미합니다. 그 대신에 <code>document.documentElement</code>를 쓰세요. 또한 문서 서두에 있지 않은 <code>&lt;?xml-stylesheet ?&gt;</code>와 <code>&lt;?xul-overlay ?&gt;</code> 처리 명령은 이제 효과가 없습니다. ({{template.Bug(319654)}})
</li><li><code>getElementsByAttributeNS</code> 함수가 XUL 요소 및 문서에 추가됐습니다. ({{template.Bug(239976)}})
</li><li>XUL 문서에서 요소를 옮기거나 없앨 때 이벤트 경청자(listeners)를 보존합니다. ({{template.Bug(286619)}})
</li><li>보이지 않는 문서의 변화 이벤트(mutation events)도 발생합니다. ({{template.Bug(201238)}})
</li><li>요소가 잘못된 순서로 그려지는 것과 관련된 여러 문제를 고쳤습니다. ({{template.Bug(317375)}})
</li><li><code><a href="ko/DOM/element.getElementsByTagName">getElementsByTagName()</a></code> has been fixed to work correctly on subtrees that have elements with namespace prefixes in their tag names ({{template.Bug(206053)}}).
</li><li>The <code>DOMNodeInserted</code> and <code>DOMNodeRemoved</code> events now properly apply to the correct nodes ({{template.Bug(367164)}}).
</li></ul>
<h3 name=".EC.B0.B8.EA.B3.A0_.EC.82.AC.ED.95.AD">참고 사항</h3>
<ul><li> <a class="external" href="http://www.squarefree.com/burningedge/releases/trunk-for-firefox-3.html">squarefree.com에 있는 Firefox 3의 바뀐 점의 더 상세한 목록</a>
</li><li> {{mediawiki.interwiki('wikimo', 'Firefox3/Schedule', 'Firefox 3 일정')}}
</li><li> <a href="ko/Firefox_2_for_developers">Firefox 2 for developers</a>
</li><li> <a href="ko/Firefox_1.5_for_developers">Firefox 1.5 for developers</a>
</li></ul>
<div class="noinclude">
</div>
{{ wiki.languages( { "en": "en/Firefox_3_for_developers", "es": "es/Firefox_3_para_desarrolladores", "fr": "fr/Firefox_3_pour_les_d\u00e9veloppeurs", "ja": "ja/Firefox_3_for_developers", "pl": "pl/Firefox_3_dla_programist\u00f3w", "pt": "pt/Firefox_3_para_desenvolvedores" } ) }}
Revert to this revision