Forum Link: Original Post

Town Hall with James Linden
Topic: Future of HTML in SL

Jeska Linden: We'll start in just a few minutes :)
James Linden: Ah, a nice white board for screenshots
Jeska Linden: Welcome to the Town Hall with James Linden. James will be discussing and taking questions on the future of HTML in Second Life.
Jeska Linden: First some guidelines for the discussion. We will be focusing this Town Hall on questions about incorporating HTML in-world, please don't submit your technical support or other off-topic questions, as they will be skipped over.
Jeska Linden: Questions can be sent to me (Jeska Linden) in the form of an IM. Questions will be answered in the order they appear on my screen. Also, when forming your questions, please try to keep them as concise as possible to allow the best flow of conversation.
Jeska Linden: I'd also like to ask those who have joined us in Brampton to please hold down the noise and offers of friendship until after the meeting as it can be distracting.
Jeska Linden: We will start with some questions previously posted in the forums and then move to a general Q and A.
James Linden: So, hello everyone!
James Linden: I'm going to talk a little bit about HTML/web browsing
James Linden: in Second Life, starting with the questions posted to the forums
James Linden: If you've got more questions, please IM them to Jeska
James Linden: So here goes.
James Linden: Satchmo Prototype: In the long run (think HMTL on a prim), will textures loading from URL's download quicker on the client, than the current texture mechanism? Would this more distributed networks architecture better utilize the player's bandwidth?
James Linden: Textures on primitives loading from URLs will be slower to show the initial view but potentially faster for high-resolution stuff.
James Linden: For example, high resolution text could be faster.
James Linden: But we use JPEG2000 internally, so you’ll be better off uploading images than linking to plain-old JPEGs.
James Linden: However, it might use the player's bandwidth more efficiently
James Linden: for really big images
James Linden: Huns Valen: Can we render HTML forms from a string and then get the posted results back in a list? Boy that would be great.
James Linden: No form posting. You could hack together something with an outside web server and XML-RPC.
James Linden: Getting scripts integrated with HTML FORM posts is something we'd like to wait on for now
James Linden: btw, the Mono/.NET scripting stuff is going well
James Linden: Performance looks really good
James Linden: Hiro Pendragon: Has LL considered offering free webserver space for all LL residents? (Even if limited, like 10 mb?) LL could then offer direct, quick, HTML updating from in-world scripts / interface, and that would be insanely awesome.
James Linden: We've thought about this.
James Linden: But for now, we want to avoid being in the web hosting business. :-)
James Linden: Maybe later, though... we've thought about blogs for residents
James Linden: so some generic space wouldn't be a big step
James Linden: but not for 1.7 :)
James Linden: Jeffrey Gomez: What formats of plaintext/active scripts will be available in a web browser format? I'm not asking about animations here - I'm talking things like XML, ASP (sic), Perl and MySQL frontends, and Active-X Controls
James Linden: So...
James Linden: We support almost anything Mozilla Firefox supports "natively",
James Linden: that is
James Linden: without plugins
James Linden: So no ActiveX, no Flash (for now)
James Linden: But highly interactive stuff like Google Maps works fine
James Linden: I can even find my house!
James Linden: Parallel to this question, how much of Mozilla's (Firefox) functionality does Linden Labs plan to take advantage of? Will the browser take advantage of pop-up blocking, cookie reduction, and similar features of the program to protect users?
James Linden: So, it's extra work for me to support popups, so I didn't bother. :-)
James Linden: No popups.
James Linden: Lemme break for a screenshot
James Linden: So this is the draft user interface for the 2D browser
James Linden: Note that it renders our fairly complex home page just fine
James Linden: and that's the SL login screen behind it
James Linden: It works fine when you're connected to the world as well
James Linden: I don't have keyboard input working yet
James Linden: so I couldn't log in to the forums
James Linden: But we can draw them just fine. :-)
James Linden: Oh, and we'll post the screen shots to the forums when we're done.
James Linden: Gwyneth Llewelyn: Will this new feature be able to let avatars click on a prim with an URL which doesn't really display anything but invoke a XML-RPC call through an URL? What will you add in terms of delay?
James Linden: I haven't thought about delay.
James Linden: But you'll be able to use llLoadURL() to open this 2D window
James Linden: and you can currently send XML-RPC requests through the
James Linden: existing LSL interface to the outside world
James Linden: So there's some potential there.
James Linden: BTW, I do not have screenshots of HTML on a prim surface
James Linden: We're still working on that
James Linden: Jeffrey Gomez: How will the feature be integrated? Would this person have to worry that this data is being transmitted "through" Second Life, or will it be safely cordoned off to a private stream on the client only?
James Linden: So, here's how it works for 1.7
James Linden: Your client directly connects to the web server
James Linden: just like you hit it in Firefox
James Linden: No data is routed through Second Life, except the initial URL
James Linden: This has plusses and minuses
James Linden: If you're tin-foil-hat paranoid, you'll know this means
James Linden: an external web server will log your Internet Protocol address
James Linden: just like if you hit it with Firefox
James Linden: The benefit is that it's potentially much faster to load
James Linden: data directly, rather than through some sort of SL proxy
James Linden: This raises questions for HTML on prim surfaces, since those should
James Linden: really "auto-load" to look cool
James Linden: So I'm thinking of implementing a "trusted sites" list
James Linden: If your domain is on the list (,
James Linden: the image auto-loads
James Linden: otherwise the user has to take some action
James Linden: and can see the URL before the page loads
James Linden: But that's all work-in-progress right now
James Linden: OK, over to live questions from Jeska!
Jeska Linden: Csven Concord: Can you assign a rough completion percentage to each of the 1-6 items (and any others) that you have listed? [Items were listed n the forums]
James Linden: Non-interactive 2D browser (item 1) 95% complete
James Linden: Interactive 2D browser (6) 50% complete
James Linden: um, lemme remember the other ones
James Linden: (2) Static External Web Page on prim surface 75%
James Linden: (3) update URL for primitive 0%
James Linden: (4) LSL call to set URL for primitive 0% (but easy)
James Linden: (5) web page from script/notecard/typed-in HTML 0% (harder)
James Linden: So, the script stuff isn't gonna make it into 1.7
James Linden: The 2D browser will make it
James Linden: Prim surface may or may not make it, but will be primitive to start with :)
Jeska Linden: Michael Psaltery: Will this greatly increase the size of the client? If you already have Firefox installed, will it use those libraries, or is this a completely separate install?
James Linden: It's build into the client, it has to be for it to work
James Linden: Client goes from 16 meg to 21 meg on Windows
James Linden: Memory usage is +15 MB when browser is loaded
James Linden: We might be able to shave it down a little
James Linden: But those are the numbers I got yesterday
Jeska Linden: Catherine Cotton: Will the webs that are displayed on prims be static or dynamic?
James Linden: Static pages for now
James Linden: I know it would be nice to refresh them occasionally
James Linden: So.... wait for that :-)
Jeska Linden: Keynes Mechanique: Will the SecondLife teleport protocol that you currently see on webpages providing links that teleport you, be supported in the first release of HTML for SL?
James Linden: ooooooh
James Linden: good idea!
James Linden: Onto the list!
James Linden: Thanks!
Jeska Linden: Aio Robertson: Isn't it a little premature to try and add yet another feature to SL with the incorporation of HTML when there are some rather widespread complaints about the funtionality and dependability of existing features?
James Linden: Yes, maybe, but there are substantial benefits
James Linden: In particular, we want t oimplement the Find directory as web pages
James Linden: this makes it MUCH easier for us to tweak the database load after releases
James Linden: so if we discover some database query is slow, we can just tweak it live
James Linden: rather than having to down the grid
James Linden: Likewise this browser will load the LSL script wiki
James Linden: Help documentation, etc.
James Linden: So, yes, I could have been working on bug fixes, but I think my time has been well spent.
Jeska Linden: Aliasi Stonebender: Given the core engine will be Firefox, how/will any kind of plugins for the web browser be available in SL? i.e., to show non-Quicktime-format movies...
James Linden: Not in the initial version.
James Linden: In _theory_ we could support some plug-ins
James Linden: But it's extra work and prone to crashes
James Linden: So not for the initial version
Jeska Linden: Falk Bergman: will the LSL Function that calls the 2D Webbrowser include xPos,yPos,Size and WindowState? A flexible 2D window would allow to build UIs out of HTML (say for a Landmarkpicker)
James Linden: Hmm.
James Linden: That's another good idea
James Linden: On to the idea list!
Jeska Linden: White Platini: Well I have a question, all this sounds great but what is going to be the performance impact for the client? im from a Geforce 2 and I dont think I could handle all that nicely o.o
James Linden: Since the web page only redraws occasionally, the frame rate hit from the 2D page is minimal
James Linden: It's a single 1024x1024 texture
James Linden: And I might be able to shave that for small pages/screens
James Linden: Same story for web pages on prim surfaces
James Linden: once the page is loaded, performance hit is small
James Linden: I'm more worried about system memory (RAM) on 256 MB machines :-)
James Linden: Oh, and you can turn this feature off, BTW
James Linden: I like options. :-)
Jeska Linden: ian Boffin: will you be able to put web pages on non-flat prims?
James Linden: Yes!
James Linden: We've put Google Maps on a sphere inside the office.
James Linden: "World Map"
Jeska Linden: Prokofy Neva: Will you have the capacity to read foreign languages i.e. Russian with Cyrrilic and what about residents' privacy in terms of a) the IP being visiblity or b) that they are logging into a site from SL?
James Linden: We can draw any page that Mozilla Firefox can draw and you have the fonts for.
James Linden: The web site will know your IP
James Linden: But will NOT know you are using SL to connect
James Linden: You look just like Firefox 1.0.4 or 1.0.5
Jeska Linden: Tom Bauhaus: how about url rewriting for prim surfaces? feed sl params to url?
James Linden: Yeah, item (4) on the list is to make LSL scripts
James Linden: be able to change the URL on a prim to any string
James Linden: so you could append stuff to the URL
James Linden: and talk to the web server that way
Jeska Linden: Huns Valen: How many instances do you suppose you will allow per 512 square meters?
James Linden: Not sure yet how we're going to limit things
James Linden: It may or may not be via land limits
James Linden: No promises. :-)
Jeska Linden: Olmy Seraph: Can you give us an idea of how HTML on a prim will work in terms of LSL? Not the actual calls, but what we'll be able to do. Specifically, I'd like to be able to grab HTML from a notecard and render it on a prim face (HTML as texture)...
Jeska Linden: Or would we pass a string to a llSetMarkup() call? In either case, being able to use CSS from another notecard would be a big win, especially if it can be via UUID, so I can manage formatting w/o having to update notecards everywhere.
James Linden: So, first LSL call will be to set the URL for a prim surface HTML page
James Linden: Second LSL call will be to refresh that page (with a big sleep, sorry, no 10 FPS update.... :-) )
James Linden: I'd like to implement either LSL string based or notecard based HTML
James Linden: But that's gonna take some work
James Linden: I can promise I'll work on it, but not give you a ship date.
James Linden: It's on the list.
Jeska Linden: Michael Psaltery: Will there be control over the rendering using texture controls similar to the current working with video?
James Linden: Yup, it'll be just like a movie image
James Linden: So make it wrap, or repeat
James Linden: Mix in a color
James Linden: etc. etc.
James Linden: Ah, dawn
Jeska Linden: Eata Kitty: Are there any plans to leverage the browser to add features such as pulling pages from the LSL Wiki as interactive help whilst a user is scripting?
James Linden: Yes!
James Linden: :-)
James Linden: Maybe not interactive to start with
James Linden: But that's a good idea
James Linden: hmm
James Linden: another one for the idea pile!
Jeska Linden: ReallyRick Metropolitan: What advantage is there if any to using the SL web browser instead of just running SL in a window and switching over to Internet Exploer on my desktop?
James Linden: For 2D pages, if you're running in a window, none
James Linden: If you're running fullscreen, you don't have to swtich resolutions
James Linden: Also, some people's machines crash when spawning IE and running fullscreen
James Linden: For 3D HTML on prim surfaces, well, IE ain't gonna do that :)
Jeska Linden: Huns Valen: How about firefox extensions?
James Linden: Um, no extensions in the first version
James Linden: But maybe in the second version
James Linden: And you might be able to hack something if you explore our directory structure :-)
Jeska Linden: Digi Vox: Will scripts be able to load html formatted strings onto the 2D browser or prims so that content can be generated in-world?
James Linden: I'd like to do that, but it probably won't make 1.7
James Linden: Look for it in 1.8 or 2.0
Jeska Linden: Csven Concord: Follow up to Satchmo Prototype's question (the first Q): What about linking to JPEG2000 images?
James Linden: Um, Firefox can't render JPEG2000 images, so that's not going to work
James Linden: You'll have to put it directly on the prim, sorry
James Linden: It's a lot of work to teach Mozilla to draw JPEG2000
James Linden: maybe with a plugin :)
Jeska Linden: Damanios Thetan: Will there be full javascript support?
James Linden: Yes
Jeska Linden: Daryl Frost: How about animated gifs?
James Linden: Not initially, because we don't want to update the page continuously
James Linden: Out the gate, no animation on the page
James Linden: sorry
Jeska Linden: FlipperPA Peregrine: "Is string-based HTML a "definitely going to happen at some point" or a "we'll give it a try" feature? I'd love to have something like this for to truly integrate it with the SL viewer.....
James Linden: String-based HTML is on the development schedule, and is a priority
Jeska Linden: Falk Bergman: Will there be an option to set a proxy server in the SL client?
James Linden: Hmm. I should do that, huh.
James Linden: On the list.
Jeska Linden: Cherokee Diamond: Will the browser allow you to disable cookies?
James Linden: You will have limited control over cookies. Like all yes or all no.
James Linden: Not a "cookie manager"
Jeska Linden: Aio Robertson: Have you thought about putting out a request for help involving integration of FireFox into SL via /. ? I've noticed at least one LL developer lingering there.
James Linden: We've already gotten a lot of help from the Mozilla Foundation people
James Linden: Both on the PC and Mac side
James Linden: But yes, my feelers are out
James Linden: If you know someone who has hacked the Mozilla code tree, send 'em my way
Jeska Linden: Michael Psaltery: Will it be possible to create customized tags that allow interactivity with the SL world? Thus, a single prim could contain a game or control menu by interfacing with current functions like llTakeControls()
James Linden: That's not currently on the schedule
James Linden: However, it's possible for Javascript
James Linden: in an embedded mozilla
James Linden: to talk to the embedding app (that would be SL)
James Linden: So it's theoretically possible
James Linden: Not in 1.7
James Linden: Lemme see, I missed some forum questions....
James Linden: Blueman Steele: I'd like to know where to load of "rendering" the HTML will actually occur... client or server side. If it is server side great! Should mean no extra CPU time for clients and it would load like a texture? I'm curious if this would replace
James Linden: So, it's client side
James Linden: We've thought about doing rendering server side
James Linden: But it's a pain
James Linden: Plus, text doesn't look great run through JPEG2000
James Linden: as I'm sure you all know :)
James Linden: What else can I answer for ya?
James Linden: One note on terminology
James Linden: It's not really "Firefox" for us
James Linden: We're supposed to call it "Powered by Mozilla Technology"
James Linden: I call it the SL Browser
James Linden: lame, I know
James Linden: name suggestions would be a help
James Linden: So, if there aren't more questions, I guess we can call it a day.
James Linden: one more
Jeska Linden: Borne Leader: Question for James: Will the user be able to see the web address they are being shown?
James Linden: Yes, you see the URL you are connected to
James Linden: the final URL, after all the redirects, etc.
James Linden: just like Mozilla :-)
James Linden: So thanks everyone for coming!
Jeska Linden: Thanks everyone - I'll be posting the transcript momentarily in the forums.
James Linden: Get lost!
Jeska Linden: If you have any further questions, post 'em in the Hotline to Linden :)


SL-1.7-Broweser town hall forums

Image from the development of the SL browser going into 1.7, showing SL forums page.

SL-1.7-Browser home page viewed in the browser.

SL-1.7-Browser join now page

Join now page as viewed in the browser.

SL-1.7-Browser town hall GOM

Viewing GOM in the web browser.