2 function get_web_navigation_for_frame(frame) {
3 var ifr = frame.QueryInterface(Ci.nsIInterfaceRequestor);
4 return ifr.getInterface(Ci.nsIWebNavigation);
7 function get_SHEntry_for_document(doc)
11 var frame = doc.defaultView;
12 var webNav = get_web_navigation_for_frame(frame);
13 var pageLoader = webNav.QueryInterface(Ci.nsIWebPageDescriptor);
14 var desc = pageLoader.currentDescriptor.QueryInterface(Ci.nsISHEntry);
16 } catch (e) { return null; }
19 function document_load_spec(doc) {
20 var sh_entry = get_SHEntry_for_document(doc);
21 var result = {url: doc.location.href, document: doc};
22 if (sh_entry != null) {
23 result.cache_key = sh_entry;
24 result.referrer = sh_entry.referrerURI;
25 result.post_data = sh_entry.postData;
30 function uri_string_from_load_spec(spec) {
31 if (typeof(spec) == "object")
36 function uri_from_load_spec(spec) {
37 if (typeof(spec) == "object" && spec.document != null)
38 return spec.document.documentURIObject;
39 return make_uri(uri_string_from_load_spec(spec));
42 function mime_type_from_load_spec(spec) {
43 if (typeof(spec) == "object" && spec.document) {
44 return spec.document.contentType || "application/octet-stream";
46 return mime_type_from_url(uri_string_from_load_spec(spec));
49 function mime_info_from_load_spec(spec) {
50 var type = mime_type_from_load_spec(spec);
51 return mime_info_from_mime_type(type);
54 function default_shell_command_from_load_spec(spec) {
55 var mime_type = mime_type_from_load_spec(spec);
56 var handler = get_external_handler_for_mime_type(mime_type);
60 /* Target can be either a content_buffer or an nsIWebNavigation */
61 function apply_load_spec(target, load_spec) {
62 var url, flags, referrer, post_data;
63 if (typeof(load_spec) == "string") {
70 flags = load_spec.flags;
71 referrer = load_spec.referrer;
72 post_data = load_spec.post_data;
75 flags = Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
76 if (target instanceof content_buffer) {
77 target._display_URI = url;
78 target = target.web_navigation;
79 //buffer_description_change_hook.run(target);
81 target.loadURI(url, flags, referrer, post_data, null /* headers */);