+++ /dev/null
-// Clears all private data
-function webdeveloper_clearAllPrivateData()
-{
- // If the browser glue is found
- if(Components.classes["@mozilla.org/browser/browserglue;1"])
- {
- Components.classes["@mozilla.org/browser/browserglue;1"].getService(nsCI.nsIBrowserGlue).sanitize(window || null);
- }
- else
- {
- window.openDialog("chrome://webdeveloper/content/message/message.xul", "webdeveloper-message-dialog", "centerscreen,chrome,modal", document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_firefox15Required"));
- }
-}
-
-// Clears the cache
-function webdeveloper_clearCache()
-{
- var stringBundle = document.getElementById("webdeveloper-string-bundle");
-
- // If the clearing is confirmed
- if(webdeveloper_clearConfirmation(stringBundle.getString("webdeveloper_clearCacheConfirmation")))
- {
- var cacheInterface = Components.interfaces.nsICache;
- var cacheService = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService);
-
- try
- {
- cacheService.evictEntries(cacheInterface.STORE_ON_DISK);
- cacheService.evictEntries(cacheInterface.STORE_IN_MEMORY);
-
- // If the hide informational dialogs preference is not set
- if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
- {
- webdeveloper_informationalDialog(stringBundle.getString("webdeveloper_clearCache"), stringBundle.getString("webdeveloper_clearCacheResult"));
- }
- }
- catch(exception)
- {
- // Do nothing
- }
- }
-}
-
-// Clears the history
-function webdeveloper_clearHistory()
-{
- var stringBundle = document.getElementById("webdeveloper-string-bundle");
-
- // If the clearing is confirmed
- if(webdeveloper_clearConfirmation(stringBundle.getString("webdeveloper_clearHistoryConfirmation")))
- {
- webdeveloper_removeAllFromHistory();
-
- // If the hide informational dialogs preference is not set
- if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
- {
- webdeveloper_informationalDialog(stringBundle.getString("webdeveloper_clearHistory"), stringBundle.getString("webdeveloper_clearHistoryResult"));
- }
- }
-}
-
-// Clears the HTTP authentication
-function webdeveloper_clearHTTPAuthentication()
-{
- var authenticationManager = Components.classes["@mozilla.org/network/http-auth-manager;1"].getService(Components.interfaces.nsIHttpAuthManager);
-
- authenticationManager.clearAll();
-
- // If the hide informational dialogs preference is not set
- if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
- {
- var stringBundle = document.getElementById("webdeveloper-string-bundle");
-
- webdeveloper_informationalDialog(stringBundle.getString("webdeveloper_clearHTTPAuthentication"), stringBundle.getString("webdeveloper_clearHTTPAuthenticationResult"));
- }
-}
-
-// Allows the user to edit the HTML of the current page
-function webdeveloper_editHTML()
-{
- var stringBundle = document.getElementById("webdeveloper-string-bundle");
- var editHTML = stringBundle.getString("webdeveloper_editHTML");
-
- // If edit HTML is open in the dashboard
- if(webdeveloper_isOpenInDashboard(editHTML))
- {
- webdeveloper_closeInDashboard(editHTML);
- }
- else if(webdeveloper_pageHasFrames())
- {
- window.openDialog("chrome://webdeveloper/content/message/message.xul", "webdeveloper-message-dialog", "centerscreen,chrome,modal", stringBundle.getString("webdeveloper_framesNotSupported"));
- }
- else
- {
- webdeveloper_openInDashboard(editHTML, "chrome://webdeveloper/content/dashboard/edit_html.xul");
- }
-}
-
-// Linearizes all elements
-function webdeveloper_linearizePage(element)
-{
- webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/linearize_page.css", "webdeveloper-linearize-page");
-}
-
-// Makes all the frames resizable
-function webdeveloper_makeFramesResizable()
-{
- var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow());
- var documentLength = documentList.length;
- var frame = null;
- var framesList = null;
- var framesLength = null;
- var pageDocument = null;
- var resizableFrames = 0;
-
- // Loop through the documents
- for(var i = 0; i < documentLength; i++)
- {
- pageDocument = documentList[i];
- framesList = pageDocument.getElementsByTagName("frame");
- framesLength = framesList.length;
-
- // Loop through all the frames
- for(var j = 0; j < framesLength; j++)
- {
- frame = framesList[j];
-
- // If the frame has a no resize attribute
- if(frame.hasAttribute("noresize"))
- {
- frame.removeAttribute("noresize");
- resizableFrames++;
- }
- }
- }
-
- // If the hide informational dialogs preference is not set
- if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
- {
- var stringBundle = document.getElementById("webdeveloper-string-bundle");
- var title = stringBundle.getString("webdeveloper_makeFramesResizable");
-
- // If one frame was made resizable
- if(resizableFrames == 1)
- {
- webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_makeFramesResizableSingleResult"));
- }
- else
- {
- webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_makeFramesResizableMultipleResult", [resizableFrames]));
- }
- }
-}
-
-// Shows all hidden elements
-function webdeveloper_showHiddenElements()
-{
- var computedStyle = null;
- var display = null;
- var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow());
- var documentLength = documentList.length;
- var element = null;
- var hiddenElements = new Array("area", "base", "basefont", "head", "meta", "param", "script", "style", "title");
- var pageDocument = null;
- var tagName = null;
- var treeWalker = null;
-
- // Loop through the documents
- for(var i = 0; i < documentLength; i++)
- {
- pageDocument = documentList[i];
- treeWalker = pageDocument.createTreeWalker(webdeveloper_getDocumentBodyElement(pageDocument), NodeFilter.SHOW_ELEMENT, null, false);
-
- // While the tree walker has more nodes
- while((element = treeWalker.nextNode()) != null)
- {
- computedStyle = element.ownerDocument.defaultView.getComputedStyle(element, null);
-
- // If the computed style is set
- if(computedStyle)
- {
- display = computedStyle.getPropertyCSSValue("display");
- tagName = element.tagName;
-
- // If this element has a display and tag name, the display is set to none and the tag name is not script
- if(display && tagName && display.cssText == "none" && !webdeveloper_contains(hiddenElements, tagName.toLowerCase()))
- {
- element.style.display = "";
- }
- }
- }
- }
-}
-
-// Shows the window chrome
-function webdeveloper_showWindowChrome()
-{
- var browserWindow = null;
- var windowEnumeration = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator).getEnumerator("navigator:browser");
-
- // Loop through the open windows
- while(windowEnumeration.hasMoreElements())
- {
- browserWindow = windowEnumeration.getNext();
-
- browserWindow.locationbar.visible = true;
- browserWindow.menubar.visible = true;
- browserWindow.personalbar.visible = true;
- browserWindow.statusbar.visible = true;
- browserWindow.toolbar.visible = true;
- }
-}
-
-// Renders the page for a small screen
-function webdeveloper_smallScreenRendering(element)
-{
- var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow());
- var documentLength = documentList.length;
- var styleSheetList = new Array();
-
- // Loop through the documents
- for(var i = 0; i < documentLength; i++)
- {
- styleSheetList = styleSheetList.concat(webdeveloper_getStyleSheetsForDocument(documentList[i], false, false));
- }
-
- // If there is a handheld style sheet
- if(webdeveloper_hasStyleSheetForMedia(styleSheetList, "handheld"))
- {
- webdeveloper_displayCSSMediaType("handheld", !element.getAttribute("checked"));
- webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/empty.css", "webdeveloper-small-screen-rendering");
- }
- else
- {
- webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/small_screen_rendering.css", "webdeveloper-small-screen-rendering");
- }
-}
-
-// Toggles all links on the page between visited and unvisited
-function webdeveloper_toggleVisitedLinks(visited)
-{
- var documentList = webdeveloper_getDocuments(webdeveloper_getContentWindow());
- var documentLength = documentList.length;
- var href = null;
- var link = null;
- var linkLength = null;
- var linkList = null;
- var pageDocument = null;
-
- // Loop through the documents
- for(var i = 0; i < documentLength; i++)
- {
- pageDocument = documentList[i];
- linkList = pageDocument.links;
- linkLength = linkList.length;
-
- // Loop through all the links
- for(var j = 0; j < linkLength; j++)
- {
- link = linkList[j];
- href = link.href;
-
- // If this link has an href
- if(href)
- {
- // If marking links as visited
- if(visited)
- {
- webdeveloper_addToHistory(href);
- }
- else
- {
- webdeveloper_removeFromHistory(href);
- }
-
- // Force the browser to recheck the history by changing the href
- link.href = "";
- link.href = href;
- }
- }
- }
-}
-// Updates the clear private data menu
-function webdeveloper_updateClearPrivateDataMenu(suffix)
-{
- var menu = document.getElementById("webdeveloper-clear-all-private-data-" + suffix);
-
- // If the menu exists
- if(menu)
- {
- // If the browser glue is not found
- if(!Components.classes["@mozilla.org/browser/browserglue;1"])
- {
- menu.setAttribute("class", "menuitem-iconic");
- }
- else if(menu.hasAttribute("class"))
- {
- menu.removeAttribute("class");
- }
- }
-}
-
-// Updates the miscellaneous menu
-function webdeveloper_updateMiscellaneousMenu(suffix)
-{
- var menu = document.getElementById("webdeveloper-edit-html-" + suffix);
- var pageHasFrames = webdeveloper_pageHasFrames();
-
- // If the menu exists
- if(menu)
- {
- var editHTMLOpen = webdeveloper_isOpenInDashboard(document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_editHTML"));
-
- webdeveloper_configureElement(menu, "checked", editHTMLOpen);
-
- // If edit HTML is not open and the page has frames
- if(!editHTMLOpen && pageHasFrames)
- {
- menu.setAttribute("class", "menuitem-iconic");
- }
- else if(menu.hasAttribute("class"))
- {
- menu.removeAttribute("class");
- }
- }
-
- menu = document.getElementById("webdeveloper-display-line-guides-" + suffix);
-
- // If the menu exists
- if(menu)
- {
- // If the page has frames
- if(pageHasFrames)
- {
- menu.setAttribute("class", "menuitem-iconic");
- }
- else if(menu.hasAttribute("class"))
- {
- menu.removeAttribute("class");
- }
- }
-
- menu = document.getElementById("webdeveloper-display-page-magnifier-" + suffix);
-
- // If the menu exists
- if(menu)
- {
- var canvas = document.getElementById("webdeveloper-page-magnifier");
-
- // If the canvas is not set or has no context
- if(!canvas || !canvas.getContext)
- {
- menu.setAttribute("class", "menuitem-iconic");
- }
- else if(menu.hasAttribute("class"))
- {
- menu.removeAttribute("class");
- }
- }
-
- menu = document.getElementById("webdeveloper-display-ruler-" + suffix);
-
- // If the menu exists
- if(menu)
- {
- // If the page has frames
- if(pageHasFrames)
- {
- menu.setAttribute("class", "menuitem-iconic");
- }
- else if(menu.hasAttribute("class"))
- {
- menu.removeAttribute("class");
- }
- }
-
- webdeveloper_configureElement(document.getElementById("webdeveloper-display-page-magnifier-" + suffix), "checked", !document.getElementById("webdeveloper-page-magnifier-toolbar").hidden);
- webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-display-line-guides-" + suffix), "checked", "webdeveloper-display-line-guides");
- webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-display-ruler-" + suffix), "checked", "webdeveloper-display-ruler");
- webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-linearize-page-" + suffix), "checked", "webdeveloper-linearize-page");
- webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-show-comments-" + suffix), "checked", "webdeveloper-show-comments");
- webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-small-screen-rendering-" + suffix), "checked", "webdeveloper-small-screen-rendering");
-}