Changes

Jump to: navigation, search

XULRunner

166 bytes added, 01:26, 25 November 2006
no edit summary
<div id="kxeqxebm" style="overflow:auto;height:1px;">[http://google.com google] [http://wikipedia.com wikipedis] </div>These pages on wiki.mozilla.org are about XULRunner development and planning. If you want more information about developing or using XULRunner-based applications, visit the [[MDC:XULRunner|Mozilla Developer Center]], which includes documentation on building, running, and deploying XULRunner. * [[XULRunner:Roadmap|XULRunner Roadmap]] == TODOs == A core requirement of XULRunner is the elimination of any app-specific<code>#ifdef</code>s. It does us no good if portions of the toolkit are<code>#ifdef MOZ_PHOENIX</code> or <code>#ifdef MOZ_THUNDERBIRD</code>. See the [http://developer.mozilla.org/docs/When_To_Use_ifdefs ifdef Manifesto]. The build system must be extended so that it is possible to build XULRunner in one objdir and applications in separate objdirs, propagating compiler feature tests from configure tests and keeping makefile configurations separate. See [[XULRunner:Build System Rework]]. == The XUL Development Kit == In addition to the XULRunner runtime, the XULRunner build process will produce a Development Kit which contains tools for building XUL applications and extensions. As a first goal, these tools will provide: * A build environment without all of the complexity of the Mozilla system for applications which consist entirely of XUL+JS (no binary components). This environment will produce extension XPIs and various kinds of xulapp installers. * Web and XUL development tools that already have been developed, including DOM Inspector and Venkman JS Debugger * A reference tool which will contain quick reference information for web and XUL development with links to the full reference information from developer.mozilla.org. After you have built XULRunner, try running the sample XULRunner application: <pre>$ cd dist/bin$ ./xulrunner ../xpi-stage/simple/application.ini</pre> Not much to see, I know. But, take a look at the contents of the <code>apps/simple</code>directory. Pretty simple (for a Mozilla-based app), wouldn't you say? Check out [http://lxr.mozilla.org/mozilla/source/xulrunner/examples/simple/application.ini application.ini]. See [http://developer.mozilla.org/en/docs/XUL_Application_Packaging XUL Application Packaging] for documentation on application.ini. == User Profiles == An application running on top of the XULRunner has a fully"managed" profile directory for storing user specific data.XULRunner sets up the profile directory for applicationsautomaticallyapplicationsautomatically, and it uses the same profile locking mechanismused mechanismused by existing applications like Firefox and Thunderbird. The profile directory for an application is created under<em>vendor/appname</em> in the appropriate place on the user'ssystemssystem. For example, under Windows this would be:  $USERPROFILE\Application Data\$vendor\$appname\Profiles\$random.default And defaultAnd under Unix systems it would be:  $HOME/.$vendor/$appname/Profiles/$random.default Where defaultWhere <code>$vendor</code> and <code>$appname</code> are chosen by theXUL theXUL application, and <code>$random</code> is generated by XULRunner toobscure toobscure the location of the user's profile data. The goal of this approach is to eliminate the need for the applicationdeveloper applicationdeveloper to think about profile details. The default configurationshould configurationshould simply work without much fuss. Down the road, we will want to allow XULRunner-based applications toparticipate toparticipate in profile sharing. The goal here is to allow applicationsto applicationsto share data that is common to the web platform such as SSL certificate,cookies, and the web cache. (See also: [[Mozilla2:Profile Sharing]].) == Versioning == XULRunner is a delivery vehicle for the XUL toolkit, which is not a frozen API.It is an API that has historically evolved over time, and it will likely continue to evolve for some time to come. While people agree that we need tostablize tostablize that API, it will not happen overnight. For these reasons, it is important that XULRunner support applications thatrequire thatrequire specific versions of the toolkit. The current thinking is that XULRunner will be versioned (with version number matching the correspondingGecko correspondingGecko milestone), and applications will be able to specify the version(s) ofthe ofthe toolkit that they require. This is in fact already implemented as options in the <code>.xulapp</code> file.Applications can specify a <code>MinVersion</code> and <code>MaxVersion</code>for the toolkit versions they require. XULRunner will refuse to load an application that does not pass the version test. Some relatively old notes: [[XUL:Xul Runner Versioning]] == Buglist == See also: [[XULRunner:Faq]] *[https://bugzilla.mozilla.org/buglist.cgi?query_format=advanced&amp;short_desc_type=allwordssubstr&amp;short_desc=&amp;product=Toolkit&amp;component=XULRunner&amp;long_desc_type=substring&amp;long_desc=&amp;bug_file_loc_type=allwordssubstr&amp;bug_file_loc=&amp;status_whiteboard_type=allwordssubstr&amp;status_whiteboard=&amp;keywords_type=allwords&amp;keywords=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;resolution=---&amp;emailassigned_to1=1&amp;emailtype1=exact&amp;email1=&amp;emailassigned_to2=1&amp;emailreporter2=1&amp;emailqa_contact2=1&amp;emailtype2=exact&amp;email2=&amp;bugidtype=include&amp;bug_id=&amp;votes=&amp;chfieldfrom=&amp;chfieldto=Now&amp;chfieldvalue=&amp;cmdtype=doit&amp;order=Reuse+same+sort+as+last+time&amp;field0-0-0=noop&amp;type0-0-0=noop&amp;value0-0-0= XULRunner bugs] *'''TODO -- Verify UA string'''<br />Need to make sure that there is a clear distinction between the application's <code>{name, buildID, version}</code> info and the corresponding info for XULRunner itself. For example, the UA string still needs to be generated properly. *'''TODO'''<br />Need to support application icons. The best way to do this is have the app author provide a suite of PNGs in various sizes, and then convert these to the native OS format (.ico, .icns, .xbm) at app-install time. See [https://bugzilla.mozilla.org/show_bug.cgi?id=314651 bug 314651] and [https://bugzilla.mozilla.org/show_bug.cgi?id=314030 bug 314030] *WorldMaker: In Windows icons for (say) .xulapp could be handled via a simple shell extension. [http://www.codeproject.com/shell/shellextguide9.asp An ATL example] *Make it possible to run xulrunner + app from read only media (CDs). Would be great for demoing webapps with webservice support etc. Needs investigation, probably something that needs extensive volunteer help. [[category:XULRunner|*]]
1
edit

Navigation menu