author | David Anderson <danderson@mozilla.com> |
Thu, 28 Jun 2012 15:17:18 -0700 | |
changeset 106484 | 0a0ecbc48d9a4cce919af89ed3b8cb813a78bdbd |
parent 106483 | aa575ceb5fee86e80837dd8277360400487272bd (current diff) |
parent 97848 | 1a5d6b1adf31ae9f44ac952858748c92171ace8c (diff) |
child 106485 | 0cb6898fc0266e964938ee4895722e9c8dc52cc2 |
push id | 23447 |
push user | danderson@mozilla.com |
push date | Tue, 11 Sep 2012 17:34:27 +0000 |
treeherder | mozilla-central@fdfaef738a00 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
milestone | 16.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/accessible/src/base/nsAccessibilityService.cpp +++ b/accessible/src/base/nsAccessibilityService.cpp @@ -31,17 +31,17 @@ #include "OuterDocAccessible.h" #include "Role.h" #include "RootAccessibleWrap.h" #include "States.h" #include "Statistics.h" #ifdef XP_WIN #include "nsHTMLWin32ObjectAccessible.h" #endif -#include "TextLeafAccessible.h" +#include "TextLeafAccessibleWrap.h" #ifdef DEBUG #include "Logging.h" #endif #include "nsCURILoader.h" #include "nsEventStates.h" #include "nsIContentViewer.h" @@ -411,17 +411,17 @@ nsAccessibilityService::CreateHTMLTableR return accessible; } already_AddRefed<Accessible> nsAccessibilityService::CreateTextLeafAccessible(nsIContent* aContent, nsIPresShell* aPresShell) { Accessible* accessible = - new TextLeafAccessible(aContent, GetDocAccessible(aPresShell)); + new TextLeafAccessibleWrap(aContent, GetDocAccessible(aPresShell)); NS_ADDREF(accessible); return accessible; } already_AddRefed<Accessible> nsAccessibilityService::CreateHTMLTextFieldAccessible(nsIContent* aContent, nsIPresShell* aPresShell) {
--- a/accessible/tests/mochitest/common.js +++ b/accessible/tests/mochitest/common.js @@ -549,28 +549,36 @@ function eventTypeToString(aEventType) /** * Convert relation type to human readable string. */ function relationTypeToString(aRelationType) { return gAccRetrieval.getStringRelationType(aRelationType); } +function getLoadContext() { + const Ci = Components.interfaces; + return window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); +} + /** * Return text from clipboard. */ function getTextFromClipboard() { var clip = Components.classes["@mozilla.org/widget/clipboard;1"]. getService(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes["@mozilla.org/widget/transferable;1"]. createInstance(Components.interfaces.nsITransferable); + trans.init(getLoadContext()); if (!trans) return; trans.addDataFlavor("text/unicode"); clip.getData(trans, clip.kGlobalClipboard); var str = new Object(); var strLength = new Object();
--- a/accessible/tests/mochitest/events/test_fromUserInput.html +++ b/accessible/tests/mochitest/events/test_fromUserInput.html @@ -63,17 +63,17 @@ const nsIDOMNSEditableElement = Components.interfaces.nsIDOMNSEditableElement; this.DOMNode.focus(); this.textNode = getNode(aID).firstChild; var selection = window.getSelection(); var range = document.createRange(); range.setStart(this.textNode, aStart); - range.setEnd(this.textNode, aEnd-1); + range.setEnd(this.textNode, aEnd); selection.addRange(range); synthesizeKey("VK_DELETE", {}); } this.getID = function removeTextFromContentEditable_getID() { return "Remove text from " + aStart + " to " + aEnd + " for " +
--- a/b2g/chrome/content/shell.js +++ b/b2g/chrome/content/shell.js @@ -586,26 +586,25 @@ window.addEventListener('ContentStart', }); window.addEventListener('unload', function removeIdleObjects() { Services.idle.removeIdleObserver(idleHandler, idleTimeout); power.removeWakeLockListener(wakeLockHandler); }); })(); -// This is the backend for Gaia's screenshot feature. -// Gaia requests a screenshot by sending a mozContentEvent with -// detail.type set to 'save-screenshot'. Then we take a screenshot -// save it in device storage (external) and send a mozChromeEvent with -// detail.type set to 'saved-screenshot' and detail.filename set to -// the filename. +// This is the backend for Gaia's screenshot feature. Gaia requests a +// screenshot by sending a mozContentEvent with detail.type set to +// 'take-screenshot'. Then we take a screenshot and send a +// mozChromeEvent with detail.type set to 'take-screenshot-success' +// and detail.file set to the an image/png blob window.addEventListener('ContentStart', function ss_onContentStart() { let content = shell.contentBrowser.contentWindow; content.addEventListener('mozContentEvent', function ss_onMozContentEvent(e) { - if (e.detail.type !== 'save-screenshot') + if (e.detail.type !== 'take-screenshot') return; try { var canvas = document.createElementNS('http://www.w3.org/1999/xhtml', 'canvas'); var width = window.innerWidth; var height = window.innerHeight; canvas.setAttribute('width', width); @@ -614,51 +613,21 @@ window.addEventListener('ContentStart', var context = canvas.getContext('2d'); var flags = context.DRAWWINDOW_DRAW_CARET | context.DRAWWINDOW_DRAW_VIEW | context.DRAWWINDOW_USE_WIDGET_LAYERS; context.drawWindow(window, 0, 0, width, height, 'rgb(255,255,255)', flags); - var filename = 'screenshots/' + - new Date().toISOString().slice(0,-5).replace(/[:T]/g, '-') + - '.png'; - - var file = canvas.mozGetAsFile(filename, 'image/png'); - var storage = navigator.getDeviceStorage('pictures')[0]; - if (!storage) { // If we don't have an SD card to save to, send an error - shell.sendEvent(content, 'mozChromeEvent', { - type: 'save-screenshot-no-card' - }); - return; - } - - var saveRequest = storage.addNamed(file, filename); - saveRequest.onsuccess = function ss_onsuccess() { - try { - shell.sendEvent(content, 'mozChromeEvent', { - type: 'save-screenshot-success', - filename: filename - }); - } catch(e) { - dump('exception in onsuccess ' + e + '\n'); - } - }; - saveRequest.onerror = function ss_onerror() { - try { - shell.sendEvent(content, 'mozChromeEvent', { - type: 'save-screenshot-error', - error: saveRequest.error.name - }); - } catch(e) { - dump('exception in onerror ' + e + '\n'); - } - }; - } catch(e) { - dump('exception while saving screenshot: ' + e + '\n'); shell.sendEvent(content, 'mozChromeEvent', { - type: 'save-screenshot-error', + type: 'take-screenshot-success', + file: canvas.mozGetAsFile('screenshot', 'image/png') + }); + } catch (e) { + dump('exception while creating screenshot: ' + e + '\n'); + shell.sendEvent(content, 'mozChromeEvent', { + type: 'take-screenshot-error', error: String(e) }); } }); });
--- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -2222,28 +2222,35 @@ function getPostDataStream(aStringData, var mimeStream = Cc["@mozilla.org/network/mime-input-stream;1"]. createInstance(Ci.nsIMIMEInputStream); mimeStream.addHeader("Content-Type", aType); mimeStream.addContentLength = true; mimeStream.setData(dataStream); return mimeStream.QueryInterface(Ci.nsIInputStream); } +function getLoadContext() { + return window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); +} + function readFromClipboard() { var url; try { // Get clipboard. var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"] .getService(Components.interfaces.nsIClipboard); // Create transferable that will transfer the text. var trans = Components.classes["@mozilla.org/widget/transferable;1"] .createInstance(Components.interfaces.nsITransferable); + trans.init(getLoadContext()); trans.addDataFlavor("text/unicode"); // If available, use selection clipboard, otherwise global one if (clipboard.supportsSelectionClipboard()) clipboard.getData(trans, clipboard.kSelectionClipboard); else clipboard.getData(trans, clipboard.kGlobalClipboard);
--- a/browser/base/content/nsContextMenu.js +++ b/browser/base/content/nsContextMenu.js @@ -1112,17 +1112,17 @@ nsContextMenu.prototype = { addresses = textToSubURI.unEscapeURIForUI(characterSet, addresses); } catch(ex) { // Do nothing. } var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]. getService(Ci.nsIClipboardHelper); - clipboard.copyString(addresses); + clipboard.copyString(addresses, document); }, /////////////// // Utilities // /////////////// // Show/hide one item (specified via name or the item element itself). showItem: function(aItemOrId, aShow) { @@ -1448,17 +1448,17 @@ nsContextMenu.prototype = { media.dispatchEvent(event); break; } }, copyMediaLocation : function () { var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"]. getService(Ci.nsIClipboardHelper); - clipboard.copyString(this.mediaURL); + clipboard.copyString(this.mediaURL, document); }, get imageURL() { if (this.onImage) return this.mediaURL; return ""; } };
--- a/browser/base/content/pageinfo/pageInfo.js +++ b/browser/base/content/pageinfo/pageInfo.js @@ -1238,17 +1238,17 @@ function doCopy() view.performActionOnRow("copy", row); tmp = elem.getAttribute("copybuffer"); if (tmp) text.push(tmp); elem.removeAttribute("copybuffer"); } } - gClipboardHelper.copyString(text.join("\n")); + gClipboardHelper.copyString(text.join("\n"), document); } } function doSelectAll() { var elem = document.commandDispatcher.focusedElement; if (elem && "treeBoxObject" in elem)
--- a/browser/base/content/sanitizeDialog.js +++ b/browser/base/content/sanitizeDialog.js @@ -649,16 +649,17 @@ var gContiguousSelectionTreeHelper = { // This part is a hack. What we really want is a grab and slide, not // drag and drop. Start a move drag session with dummy data and a // dummy region. Set the region's coordinates to (Infinity, Infinity) // so it's drawn offscreen and its size to (1, 1). var arr = Cc["@mozilla.org/supports-array;1"]. createInstance(Ci.nsISupportsArray); var trans = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + trans.init(null); trans.setTransferData('dummy-flavor', null, 0); arr.AppendElement(trans); var reg = Cc["@mozilla.org/gfx/region;1"]. createInstance(Ci.nsIScriptableRegion); reg.setToRect(Infinity, Infinity, 1, 1); var ds = Cc["@mozilla.org/widget/dragservice;1"]. getService(Ci.nsIDragService); ds.invokeDragSession(aEvent.target, arr, reg, ds.DRAGDROP_ACTION_MOVE);
--- a/browser/base/content/test/browser_bug321000.js +++ b/browser/base/content/test/browser_bug321000.js @@ -27,17 +27,17 @@ function test() { waitForExplicitFinish(); let cbHelper = Cc["@mozilla.org/widget/clipboardhelper;1"]. getService(Ci.nsIClipboardHelper); // Put a multi-line string in the clipboard. // Setting the clipboard value is an async OS operation, so we need to poll // the clipboard for valid data before going on. - waitForClipboard(kTestString, function() { cbHelper.copyString(kTestString); }, + waitForClipboard(kTestString, function() { cbHelper.copyString(kTestString, document); }, next_test, finish); } function next_test() { if (gTests.length) test_paste(gTests.shift()); else finish();
--- a/browser/base/content/test/browser_middleMouse_inherit.js +++ b/browser/base/content/test/browser_middleMouse_inherit.js @@ -20,17 +20,17 @@ function test() { let pagePrincipal = gBrowser.contentPrincipal; // copy javascript URI to the clipboard let url = "javascript:1+1"; waitForClipboard(url, function() { Components.classes["@mozilla.org/widget/clipboardhelper;1"] .getService(Components.interfaces.nsIClipboardHelper) - .copyString(url); + .copyString(url, document); }, function () { // Middle click on the content area info("Middle clicking"); EventUtils.sendMouseEvent({type: "click", button: 1}, gBrowser); }, function() { ok(false, "Failed to copy URL to the clipboard");
--- a/browser/base/content/urlbarBindings.xml +++ b/browser/base/content/urlbarBindings.xml @@ -545,17 +545,17 @@ urlbar.value = urlbar.inputField.value.substring(0, start) + urlbar.inputField.value.substring(end); urlbar.selectionStart = urlbar.selectionEnd = start; SetPageProxyState("invalid"); } Cc["@mozilla.org/widget/clipboardhelper;1"] .getService(Ci.nsIClipboardHelper) - .copyString(val); + .copyString(val, document); }, supportsCommand: function(aCommand) { switch (aCommand) { case "cmd_copy": case "cmd_cut": return true; } return false; @@ -746,17 +746,17 @@ return; var val = this._getSelectedValueForClipboard(); if (!val) return; Cc["@mozilla.org/widget/clipboardhelper;1"] .getService(Ci.nsIClipboardHelper) - .copyStringToClipboard(val, Ci.nsIClipboard.kSelectionClipboard); + .copyStringToClipboard(val, document, Ci.nsIClipboard.kSelectionClipboard); ]]></handler> </handlers> </binding> <!-- Note: this binding is applied to the autocomplete popup used in the Search bar and in web page content --> <binding id="browser-autocomplete-result-popup" extends="chrome://global/content/bindings/autocomplete.xml#autocomplete-result-popup"> <implementation>
--- a/browser/components/downloads/content/downloads.js +++ b/browser/components/downloads/content/downloads.js @@ -1162,17 +1162,17 @@ DownloadsViewItemController.prototype = { openURL(this.dataItem.referrer); }, downloadsCmd_copyLocation: function DVIC_downloadsCmd_copyLocation() { let clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"] .getService(Ci.nsIClipboardHelper); - clipboard.copyString(this.dataItem.uri); + clipboard.copyString(this.dataItem.uri, document); }, downloadsCmd_doDefault: function DVIC_downloadsCmd_doDefault() { const nsIDM = Ci.nsIDownloadManager; // Determine the default command for the current item. let defaultCommand = function () {
--- a/browser/components/nsBrowserGlue.js +++ b/browser/components/nsBrowserGlue.js @@ -487,23 +487,16 @@ BrowserGlue.prototype = { this._saveSession = false; if (pagecount < 2) return; if (!aQuitType) aQuitType = "quit"; - // Never show a prompt inside private browsing mode - var inPrivateBrowsing = Cc["@mozilla.org/privatebrowsing;1"]. - getService(Ci.nsIPrivateBrowsingService). - privateBrowsingEnabled; - if (inPrivateBrowsing) - return; - var showPrompt = false; var mostRecentBrowserWindow; // browser.warnOnQuit is a hidden global boolean to override all quit prompts // browser.showQuitWarning specifically covers quitting // browser.warnOnRestart specifically covers app-initiated restarts where we restart the app // browser.tabs.warnOnClose is the global "warn when closing multiple tabs" pref @@ -525,16 +518,22 @@ BrowserGlue.prototype = { // we should show the window closing warning instead. warnAboutClosing // tabs checks browser.tabs.warnOnClose and returns if it's ok to close // the window. It doesn't actually close the window. mostRecentBrowserWindow = Services.wm.getMostRecentWindow("navigator:browser"); aCancelQuit.data = !mostRecentBrowserWindow.gBrowser.warnAboutClosingTabs(true); return; } + var inPrivateBrowsing = Cc["@mozilla.org/privatebrowsing;1"]. + getService(Ci.nsIPrivateBrowsingService). + privateBrowsingEnabled; + if (inPrivateBrowsing) + return; + if (!showPrompt) return; var quitBundle = Services.strings.createBundle("chrome://browser/locale/quitDialog.properties"); var brandBundle = Services.strings.createBundle("chrome://branding/locale/brand.properties"); var appName = brandBundle.GetStringFromName("brandShortName"); var quitTitleString = (aQuitType == "restart" ? "restart" : "quit") + "DialogTitle";
--- a/browser/components/places/content/controller.js +++ b/browser/components/places/content/controller.js @@ -371,16 +371,17 @@ PlacesController.prototype = { Ci.nsIClipboard.kGlobalClipboard); if (hasPlacesData) return this._view.insertionPoint != null; // if the clipboard doesn't have TYPE_X_MOZ_PLACE_* data, we also allow // pasting of valid "text/unicode" and "text/x-moz-url" data var xferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + xferable.init(null); xferable.addDataFlavor(PlacesUtils.TYPE_X_MOZ_URL); xferable.addDataFlavor(PlacesUtils.TYPE_UNICODE); clipboard.getData(xferable, Ci.nsIClipboard.kGlobalClipboard); try { // getAnyTransferData will throw if no data is available. var data = { }, type = { }; @@ -1056,16 +1057,17 @@ PlacesController.prototype = { }, get clipboardAction () { let action = {}; let actionOwner; try { let xferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + xferable.init(null); xferable.addDataFlavor(PlacesUtils.TYPE_X_MOZ_PLACE_ACTION) this.clipboard.getData(xferable, Ci.nsIClipboard.kGlobalClipboard); xferable.getTransferData(PlacesUtils.TYPE_X_MOZ_PLACE_ACTION, action, {}); [action, actionOwner] = action.value.QueryInterface(Ci.nsISupportsString).data.split(","); } catch(ex) { // Paste from external sources don't have any associated action, just // fallback to a copy action. @@ -1085,16 +1087,17 @@ PlacesController.prototype = { // This clears the logical clipboard, doesn't remove data. this.clipboard.emptyClipboard(Ci.nsIClipboard.kGlobalClipboard); } }, _clearClipboard: function PC__clearClipboard() { let xferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + xferable.init(null); // Empty transferables may cause crashes, so just add an unknown type. const TYPE = "text/x-moz-place-empty"; xferable.addDataFlavor(TYPE); xferable.setTransferData(TYPE, PlacesUtils.toISupportsString(""), 0); this.clipboard.setData(xferable, null, Ci.nsIClipboard.kGlobalClipboard); }, _populateClipboard: function PC__populateClipboard(aNodes, aAction) { @@ -1130,16 +1133,17 @@ PlacesController.prototype = { function addData(type, data) { xferable.addDataFlavor(type); xferable.setTransferData(type, PlacesUtils.toISupportsString(data), data.length * 2); } let xferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + xferable.init(null); let hasData = false; // This order matters here! It controls how this and other applications // select data to be inserted based on type. contents.forEach(function (content) { if (content.entries.length > 0) { hasData = true; let glue = content.type == PlacesUtils.TYPE_X_MOZ_PLACE ? "," : PlacesUtils.endl; @@ -1219,16 +1223,17 @@ PlacesController.prototype = { let ip = this._view.insertionPoint; if (!ip) throw Cr.NS_ERROR_NOT_AVAILABLE; let action = this.clipboardAction; let xferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + xferable.init(null); // This order matters here! It controls the preferred flavors for this // paste operation. [ PlacesUtils.TYPE_X_MOZ_PLACE, PlacesUtils.TYPE_X_MOZ_URL, PlacesUtils.TYPE_UNICODE, ].forEach(function (type) xferable.addDataFlavor(type)); this.clipboard.getData(xferable, Ci.nsIClipboard.kGlobalClipboard);
--- a/browser/components/search/content/search.xml +++ b/browser/components/search/content/search.xml @@ -62,35 +62,35 @@ </xul:hbox> </xul:textbox> </content> <implementation implements="nsIObserver"> <constructor><![CDATA[ if (this.parentNode.parentNode.localName == "toolbarpaletteitem") return; - setTimeout(function (a) { a.init(); }, 0, this); - ]]></constructor> + // Make sure we rebuild the popup in onpopupshowing + this._needToBuildPopup = true; - <method name="init"> - <body><![CDATA[ - // Make sure we rebuild the popup in onpopupshowing - this._needToBuildPopup = true; - - // Refresh the display (updating icon, etc) - this.updateDisplay(); - - var os = + var os = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); - os.addObserver(this, "browser-search-engine-modified", false); + os.addObserver(this, "browser-search-engine-modified", false); + + this._addedObserver = true; - this._addedObserver = true; - ]]></body> - </method> + this.searchService.init((function search_init_cb(aStatus) { + if (Components.isSuccessCode(aStatus)) { + // Refresh the display (updating icon, etc) + this.updateDisplay(); + } else { + Components.utils.reportError("Cannot initialize search service, bailing out: " + aStatus); + } + }).bind(this)); + ]]></constructor> <destructor><![CDATA[ if (this._addedObserver) { var os = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); os.removeObserver(this, "browser-search-engine-modified"); this._addedObserver = false; }
--- a/browser/config/tooltool-manifests/linux32/clang.manifest +++ b/browser/config/tooltool-manifests/linux32/clang.manifest @@ -1,14 +1,15 @@ [ +{"clang_version": "r159219"}, { -"size": 47, -"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", -"algorithm": "sha512", +"size": 47, +"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", +"algorithm": "sha512", "filename": "setup.sh" -}, +}, { -"size": 72350187, -"digest": "7d2fbe08aca3ae740e33b8aee872705a3b5229681dd0617ceffd6619fba75cb3cb7e1c3a071218f7cfd464003e5cd773cd8e67d16f78df9c50218fb6671580c6", -"algorithm": "sha512", +"size": 73555568, +"digest": "29102005216bfd719561ce1920f4cddd3c34c5581ed4cebc3abdc30d8d3f2b4705344cd4a2571ac05b11ff35fc1e0a9584568de89cc19ba6599311adccf5397b", +"algorithm": "sha512", "filename": "clang.tar.bz2" } ]
--- a/browser/config/tooltool-manifests/linux64/clang.manifest +++ b/browser/config/tooltool-manifests/linux64/clang.manifest @@ -1,14 +1,15 @@ [ +{"clang_version": "r159219"}, { -"size": 47, -"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", -"algorithm": "sha512", +"size": 47, +"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", +"algorithm": "sha512", "filename": "setup.sh" -}, +}, { -"size": 71534797, -"digest": "66bd11bea6e1f07090e9e03c833e107088097605611fd455e80b280ce2b71ca71ff9841a66614f62da162469b222b5eefd5535373b199c60fd485959889b5dcb", -"algorithm": "sha512", +"size": 72267837, +"digest": "15d0f9e3f1c897d06a7808edb931cdd23d82b38d271454e52740e23bd890338e204857bc87bfe3dde242fa62b38e01f15c19b814cab55e84874f0c6c5b4187e8", +"algorithm": "sha512", "filename": "clang.tar.bz2" } ]
--- a/browser/config/tooltool-manifests/macosx64/clang.manifest +++ b/browser/config/tooltool-manifests/macosx64/clang.manifest @@ -1,14 +1,15 @@ [ +{"clang_version": "r159219"}, { -"size": 47, -"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", -"algorithm": "sha512", +"size": 47, +"digest": "2005a41fe97a5e00997063705f39d42b6a43b1cf7ba306cbc7b1513de34cdcd050fc6326efa2107f19ba0cc67914745dbf13154fa748010a93cf072481ef4aaa", +"algorithm": "sha512", "filename": "setup.sh" -}, +}, { -"size": 63015959, -"digest": "e0ac132a77b052d6494d4bf02f17aba475138ffcff07a5f92f17f45b1d5f27b7b0cea36c29473965271e60910af82ffd4989df94c10d24794d1bf8362bcb785b", -"algorithm": "sha512", +"size": 63318129, +"digest": "cf1dbc9221ff5f751ef9b8a3b93106585eb0955e648429359feb14a02892774538f7a19d0cf949b26549dae933a9a56dbb138e3cb2d1a883e6bfc47de27c16bb", +"algorithm": "sha512", "filename": "clang.tar.bz2" } ]
--- a/browser/devtools/highlighter/inspector.jsm +++ b/browser/devtools/highlighter/inspector.jsm @@ -1099,26 +1099,26 @@ InspectorUI.prototype = { }, /** * Copy the innerHTML of the selected Node to the clipboard. Called via the * Inspector:CopyInner command. */ copyInnerHTML: function IUI_copyInnerHTML() { - clipboardHelper.copyString(this.selection.innerHTML); + clipboardHelper.copyString(this.selection.innerHTML, this.selection.ownerDocument); }, /** * Copy the outerHTML of the selected Node to the clipboard. Called via the * Inspector:CopyOuter command. */ copyOuterHTML: function IUI_copyOuterHTML() { - clipboardHelper.copyString(this.selection.outerHTML); + clipboardHelper.copyString(this.selection.outerHTML, this.selection.ownerDocument); }, /** * Delete the selected node. Called via the Inspector:DeleteNode command. */ deleteNode: function IUI_deleteNode() { let selection = this.selection;
--- a/browser/devtools/sourceeditor/source-editor-orion.jsm +++ b/browser/devtools/sourceeditor/source-editor-orion.jsm @@ -758,16 +758,17 @@ SourceEditor.prototype = { this._primarySelectionTimeout = null; let text = this.getSelectedText(); if (!text) { return; } clipboardHelper.copyStringToClipboard(text, + this.parentElement.ownerDocument, Ci.nsIClipboard.kSelectionClipboard); }, /** * Highlight the current line using the Orion annotation model. * * @private * @param object aEvent
--- a/browser/devtools/sourceeditor/test/browser_bug695035_middle_click_paste.js +++ b/browser/devtools/sourceeditor/test/browser_bug695035_middle_click_paste.js @@ -49,16 +49,17 @@ function editorLoaded() editor.setText(initialText); let expectedString = "foobarBug695035-" + Date.now(); let doCopy = function() { let clipboardHelper = Cc["@mozilla.org/widget/clipboardhelper;1"]. getService(Ci.nsIClipboardHelper); clipboardHelper.copyStringToClipboard(expectedString, + testWin.document, Ci.nsIClipboard.kSelectionClipboard); }; let onCopy = function() { editor.addEventListener(SourceEditor.EVENTS.TEXT_CHANGED, onPaste); EventUtils.synthesizeMouse(editor.editorElement, 10, 10, {}, testWin); EventUtils.synthesizeMouse(editor.editorElement, 11, 11, {button: 1}, testWin);
--- a/browser/devtools/sourceeditor/test/head.js +++ b/browser/devtools/sourceeditor/test/head.js @@ -1,14 +1,20 @@ /* vim: set ts=2 et sw=2 tw=80: */ /* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; +function getLoadContext() { + return window.QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); +} + /* * Polls the X11 primary selection buffer waiting for the expected value. A known * value different than the expected value is put on the clipboard first (and * also polled for) so we can be sure the value we get isn't just the expected * value because it was already in the buffer. * * @param aExpectedStringOrValidatorFn * The string value that is expected to be in the X11 primary selection buffer @@ -48,16 +54,17 @@ function waitForSelection(aExpectedStrin ok(false, "Timed out while polling the X11 primary selection buffer."); reset(); failureFn(); return; } let transferable = Cc["@mozilla.org/widget/transferable;1"]. createInstance(Ci.nsITransferable); + transferable.init(getLoadContext()); transferable.addDataFlavor(requestedFlavor); clipboard.getData(transferable, clipboard.kSelectionClipboard); let str = {}; let strLength = {}; transferable.getTransferData(requestedFlavor, str, strLength); @@ -84,16 +91,17 @@ function waitForSelection(aExpectedStrin // First we wait for a known value different from the expected one. var preExpectedVal = waitForSelection._monotonicCounter + "-waitForSelection-known-value"; let clipboardHelper = Cc["@mozilla.org/widget/clipboardhelper;1"]. getService(Ci.nsIClipboardHelper); clipboardHelper.copyStringToClipboard(preExpectedVal, + document, Ci.nsIClipboard.kSelectionClipboard); wait(function(aData) aData == preExpectedVal, function() { // Call the original setup fn aSetupFn(); wait(inputValidatorFn, aSuccessFn, aFailureFn, requestedFlavor); }, aFailureFn, "text/unicode");
--- a/browser/devtools/styleinspector/CssHtmlTree.jsm +++ b/browser/devtools/styleinspector/CssHtmlTree.jsm @@ -561,17 +561,17 @@ CssHtmlTree.prototype = { let text = win.getSelection().toString(); // Tidy up block headings by moving CSS property names and their values onto // the same line and inserting a colon between them. text = text.replace(/(.+)\r?\n\s+/g, "$1: "); // Remove any MDN link titles text = text.replace(CssHtmlTree.HELP_LINK_TITLE, ""); - clipboardHelper.copyString(text); + clipboardHelper.copyString(text, this.doc); if (aEvent) { aEvent.preventDefault(); } }, /** * Copy declaration. @@ -591,17 +591,17 @@ CssHtmlTree.prototype = { break; } } } if (node) { let name = node.querySelector(".property-name").textContent; let value = node.querySelector(".property-value").textContent; - clipboardHelper.copyString(name + ": " + value + ";"); + clipboardHelper.copyString(name + ": " + value + ";", this.doc); } }, /** * Copy property name. * * @param aEvent The event object */ @@ -616,17 +616,17 @@ CssHtmlTree.prototype = { while (node = node.parentElement) { if (node.classList.contains("property-view")) { break; } } } if (node) { node = node.querySelector(".property-name"); - clipboardHelper.copyString(node.textContent); + clipboardHelper.copyString(node.textContent, this.doc); } }, /** * Copy property value. * * @param aEvent The event object */ @@ -641,17 +641,17 @@ CssHtmlTree.prototype = { while (node = node.parentElement) { if (node.classList.contains("property-view")) { break; } } } if (node) { node = node.querySelector(".property-value"); - clipboardHelper.copyString(node.textContent); + clipboardHelper.copyString(node.textContent, this.doc); } }, /** * Destructor for CssHtmlTree. */ destroy: function CssHtmlTree_destroy() {
--- a/browser/devtools/styleinspector/CssRuleView.jsm +++ b/browser/devtools/styleinspector/CssRuleView.jsm @@ -1159,17 +1159,17 @@ CssRuleView.prototype = { // Remove inherited from: line let inheritedFrom = _strings. GetStringFromName("rule.inheritedSource"); inheritedFrom = inheritedFrom.replace(/\s%S\s\(%S\)/g, ""); rx = new RegExp("(\r?\n)" + inheritedFrom + ".*", "g"); text = text.replace(rx, "$1"); - clipboardHelper.copyString(text); + clipboardHelper.copyString(text, this.doc); if (aEvent) { aEvent.preventDefault(); } }, /** * Copy a rule from the rule view. @@ -1216,17 +1216,17 @@ CssRuleView.prototype = { let out = selector + " {" + terminator; for (let i = 0; i < propertyNames.length; i++) { let name = propertyNames[i].textContent; let value = propertyValues[i].textContent; out += " " + name + ": " + value + ";" + terminator; } out += "}" + terminator; - clipboardHelper.copyString(out); + clipboardHelper.copyString(out, this.doc); }, /** * Copy a declaration from the rule view. * * @param aEvent The event object */ _onCopyDeclaration: function CssRuleView_onCopyDeclaration(aEvent) @@ -1255,17 +1255,17 @@ CssRuleView.prototype = { for (let computedList of computedLists) { computedList.parentNode.removeChild(computedList); } let propertyName = node.querySelector(".ruleview-propertyname").textContent; let propertyValue = node.querySelector(".ruleview-propertyvalue").textContent; let out = propertyName + ": " + propertyValue + ";"; - clipboardHelper.copyString(out); + clipboardHelper.copyString(out, this.doc); }, /** * Copy a property name from the rule view. * * @param aEvent The event object */ _onCopyProperty: function CssRuleView_onCopyProperty(aEvent) @@ -1275,17 +1275,17 @@ CssRuleView.prototype = { return; } if (!node.classList.contains("ruleview-propertyname")) { node = node.querySelector(".ruleview-propertyname"); } if (node) { - clipboardHelper.copyString(node.textContent); + clipboardHelper.copyString(node.textContent, this.doc); } }, /** * Copy a property value from the rule view. * * @param aEvent The event object */ @@ -1296,17 +1296,17 @@ CssRuleView.prototype = { return; } if (!node.classList.contains("ruleview-propertyvalue")) { node = node.querySelector(".ruleview-propertyvalue"); } if (node) { - clipboardHelper.copyString(node.textContent); + clipboardHelper.copyString(node.textContent, this.doc); } } }; /** * Create a RuleEditor. * * @param CssRuleView aRuleView
--- a/browser/devtools/webconsole/HUDService.jsm +++ b/browser/devtools/webconsole/HUDService.jsm @@ -1007,17 +1007,17 @@ HUD_SERVICE.prototype = let timestampString = l10n.timestampString(item.timestamp); if (newGroup) { strings.push("--"); newGroup = false; } strings.push("[" + timestampString + "] " + item.clipboardText); } } - clipboardHelper.copyString(strings.join("\n")); + clipboardHelper.copyString(strings.join("\n"), this.doc); } }; ////////////////////////////////////////////////////////////////////////// // HeadsUpDisplay ////////////////////////////////////////////////////////////////////////// /**
--- a/browser/devtools/webconsole/test/browser_webconsole_bug_642615_autocomplete.js +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_642615_autocomplete.js @@ -23,17 +23,17 @@ function consoleOpened(HUD) { // wait for key "u" function onCompletionValue() { completionValue = jsterm.completeNode.value; // Arguments: expected, setup, success, failure. waitForClipboard( stringToCopy, function() { - clipboardHelper.copyString(stringToCopy); + clipboardHelper.copyString(stringToCopy, document); }, onClipboardCopy, finishTest); } function onClipboardCopy() { updateEditUIVisibility(); goDoCommand("cmd_paste");
--- a/browser/modules/WebappsInstaller.jsm +++ b/browser/modules/WebappsInstaller.jsm @@ -161,27 +161,27 @@ function WinNativeApp(aData) { WinNativeApp.prototype = { /** * Install the app in the system by creating the folder structure, * */ install: function() { // Remove previously installed app (for update purposes) - this._removeInstallation(); + this._removeInstallation(true); try { this._createDirectoryStructure(); this._copyPrebuiltFiles(); this._createConfigFiles(); this._createShortcutFiles(); this._writeSystemKeys(); this._createAppProfile(); } catch (ex) { - this._removeInstallation(); + this._removeInstallation(false); throw(ex); } getIconForApp(this, function() {}); }, /** * Initializes properties that will be used during the installation process, @@ -203,44 +203,45 @@ WinNativeApp.prototype = { let installDirLeaf = this.launchURI.scheme + ";" + this.launchURI.host; if (this.launchURI.port != -1) { installDirLeaf += ";" + this.launchURI.port; } this.installDir.append(installDirLeaf); + this.webapprt = this.installDir.clone(); + this.webapprt.append(this.appNameAsFilename + ".exe"); + + this.configJson = this.installDir.clone(); + this.configJson.append("webapp.json"); + + this.webappINI = this.installDir.clone(); + this.webappINI.append("webapp.ini"); + this.uninstallDir = this.installDir.clone(); this.uninstallDir.append("uninstall"); this.uninstallerFile = this.uninstallDir.clone(); this.uninstallerFile.append("webapp-uninstaller.exe"); this.iconFile = this.installDir.clone(); this.iconFile.append("chrome"); this.iconFile.append("icons"); this.iconFile.append("default"); this.iconFile.append("default.ico"); - this.desktopShortcut = Services.dirsvc.get("Desk", Ci.nsILocalFile); - this.desktopShortcut.append(this.appNameAsFilename + ".lnk"); - this.desktopShortcut.followLinks = false; - - this.startMenuShortcut = Services.dirsvc.get("Progs", Ci.nsILocalFile); - this.startMenuShortcut.append(this.appNameAsFilename + ".lnk"); - this.startMenuShortcut.followLinks = false; - this.uninstallSubkeyStr = this.launchURI.scheme + "://" + this.launchURI.hostPort; }, /** * Remove the current installation */ - _removeInstallation : function() { + _removeInstallation : function(keepProfile) { let uninstallKey; try { uninstallKey = Cc["@mozilla.org/windows-registry-key;1"] .createInstance(Ci.nsIWindowsRegKey); uninstallKey.open(uninstallKey.ROOT_KEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows\\" + "CurrentVersion\\Uninstall", uninstallKey.ACCESS_WRITE); @@ -248,111 +249,103 @@ WinNativeApp.prototype = { uninstallKey.removeChild(this.uninstallSubkeyStr); } } catch (e) { } finally { if(uninstallKey) uninstallKey.close(); } - try { - if(this.installDir.exists()) { - let dir = this.installDir.QueryInterface(Ci.nsILocalFile); - // We need to set followLinks to false so that the shortcut - // files can be removed even after the .exe it was pointing - // to was removed. - dir.followLinks = false; - dir.remove(true); - } - } catch(ex) { + let desktopShortcut = Services.dirsvc.get("Desk", Ci.nsILocalFile); + desktopShortcut.append(this.appNameAsFilename + ".lnk"); + + let startMenuShortcut = Services.dirsvc.get("Progs", Ci.nsILocalFile); + startMenuShortcut.append(this.appNameAsFilename + ".lnk"); + + let filesToRemove = [desktopShortcut, startMenuShortcut]; + + if (keepProfile) { + filesToRemove.push(this.iconFile); + filesToRemove.push(this.webapprt); + filesToRemove.push(this.configJson); + filesToRemove.push(this.webappINI); + filesToRemove.push(this.uninstallDir); + } else { + filesToRemove.push(this.installDir); } - try { - if(this.desktopShortcut && this.desktopShortcut.exists()) { - this.desktopShortcut.remove(false); - } - - if(this.startMenuShortcut && this.startMenuShortcut.exists()) { - this.startMenuShortcut.remove(false); - } - } catch(ex) { - } + removeFiles(filesToRemove); }, /** * Creates the main directory structure. */ _createDirectoryStructure: function() { - this.installDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); + if (!this.installDir.exists()) + this.installDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); this.uninstallDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); }, /** * Creates the profile to be used for this app. */ _createAppProfile: function() { if (!this.appcacheDefined) return; let profSvc = Cc["@mozilla.org/toolkit/profile-service;1"] .getService(Ci.nsIToolkitProfileService); - this.appProfile = profSvc.createDefaultProfileForApp(this.installDir.leafName, - null, null); + try { + this.appProfile = profSvc.createDefaultProfileForApp(this.installDir.leafName, + null, null); + } catch (ex if ex.result == Cr.NS_ERROR_ALREADY_INITIALIZED) {} }, /** * Copy the pre-built files into their destination folders. */ _copyPrebuiltFiles: function() { - let webapprt = this.runtimeFolder.clone(); - webapprt.append("webapprt-stub.exe"); - webapprt.copyTo(this.installDir, this.appNameAsFilename + ".exe"); + let webapprtPre = this.runtimeFolder.clone(); + webapprtPre.append("webapprt-stub.exe"); + webapprtPre.copyTo(this.installDir, this.webapprt.leafName); let uninstaller = this.runtimeFolder.clone(); uninstaller.append("webapp-uninstaller.exe"); uninstaller.copyTo(this.uninstallDir, this.uninstallerFile.leafName); }, /** * Creates the configuration files into their destination folders. */ _createConfigFiles: function() { // ${InstallDir}/webapp.json - let configJson = this.installDir.clone(); - configJson.append("webapp.json"); - writeToFile(configJson, JSON.stringify(this.webappJson), function() {}); - - // ${InstallDir}/webapp.ini - let webappINI = this.installDir.clone().QueryInterface(Ci.nsILocalFile); - webappINI.append("webapp.ini"); + writeToFile(this.configJson, JSON.stringify(this.webappJson), function() {}); let factory = Cc["@mozilla.org/xpcom/ini-processor-factory;1"] .getService(Ci.nsIINIParserFactory); - let writer = factory.createINIParser(webappINI).QueryInterface(Ci.nsIINIParserWriter); + // ${InstallDir}/webapp.ini + let writer = factory.createINIParser(this.webappINI).QueryInterface(Ci.nsIINIParserWriter); writer.setString("Webapp", "Name", this.appName); writer.setString("Webapp", "Profile", this.installDir.leafName); writer.setString("Webapp", "Executable", this.appNameAsFilename); writer.setString("WebappRT", "InstallDir", this.runtimeFolder.path); writer.writeFile(null, Ci.nsIINIParserWriter.WRITE_UTF16); // ${UninstallDir}/shortcuts_log.ini let shortcutLogsINI = this.uninstallDir.clone().QueryInterface(Ci.nsILocalFile); shortcutLogsINI.append("shortcuts_log.ini"); writer = factory.createINIParser(shortcutLogsINI).QueryInterface(Ci.nsIINIParserWriter); writer.setString("STARTMENU", "Shortcut0", this.appNameAsFilename + ".lnk"); writer.setString("DESKTOP", "Shortcut0", this.appNameAsFilename + ".lnk"); writer.setString("TASKBAR", "Migrated", "true"); writer.writeFile(null, Ci.nsIINIParserWriter.WRITE_UTF16); - writer = null; - factory = null; - // ${UninstallDir}/uninstall.log let uninstallContent = "File: \\webapp.ini\r\n" + "File: \\webapp.json\r\n" + "File: \\webapprt.old\r\n" + "File: \\chrome\\icons\\default\\default.ico"; let uninstallLog = this.uninstallDir.clone(); uninstallLog.append("uninstall.log"); @@ -402,17 +395,17 @@ WinNativeApp.prototype = { * Creates a shortcut file inside the app installation folder and makes * two copies of it: one into the desktop and one into the start menu. */ _createShortcutFiles: function() { let shortcut = this.installDir.clone().QueryInterface(Ci.nsILocalFileWin); shortcut.append(this.appNameAsFilename + ".lnk"); let target = this.installDir.clone(); - target.append(this.appNameAsFilename + ".exe"); + target.append(this.webapprt.leafName); /* function nsILocalFileWin.setShortcut(targetFile, workingDir, args, description, iconFile, iconIndex) */ shortcut.setShortcut(target, this.installDir.clone(), null, this.shortDescription, this.iconFile, 0); let desktop = Services.dirsvc.get("Desk", Ci.nsILocalFile); @@ -453,17 +446,18 @@ WinNativeApp.prototype = { imgTools.decodeImageData(aImageStream, aMimeType, imgContainer); iconStream = imgTools.encodeImage(imgContainer.value, "image/vnd.microsoft.icon", "format=bmp;bpp=32"); } catch (e) { throw("processIcon - Failure converting icon (" + e + ")"); } - this.iconFile.parent.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); + if (!this.iconFile.parent.exists()) + this.iconFile.parent.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); let outputStream = FileUtils.openSafeFileOutputStream(this.iconFile); NetUtil.asyncCopy(iconStream, outputStream); } } #elifdef XP_MACOSX function MacNativeApp(aData) { @@ -519,34 +513,23 @@ MacNativeApp.prototype = { this._removeInstallation(false); throw(ex); } getIconForApp(this, this._moveToApplicationsFolder); }, _removeInstallation: function(keepProfile) { - try { - if(this.installDir.exists()) { - this.installDir.followLinks = false; - this.installDir.remove(true); - } - } catch(ex) { + let filesToRemove = [this.installDir]; + + if (!keepProfile) { + filesToRemove.push(this.appProfileDir); } - if (keepProfile) - return; - - try { - if(this.appProfileDir.exists()) { - this.appProfileDir.followLinks = false; - this.appProfileDir.remove(true); - } - } catch(ex) { - } + removeFiles(filesToRemove); }, _createDirectoryStructure: function() { if (!this.appProfileDir.exists()) this.appProfileDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); this.contentsDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); this.macOSDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); @@ -555,18 +538,20 @@ MacNativeApp.prototype = { _createAppProfile: function() { if (!this.appcacheDefined) return; let profSvc = Cc["@mozilla.org/toolkit/profile-service;1"] .getService(Ci.nsIToolkitProfileService); - this.appProfile = profSvc.createDefaultProfileForApp(this.appProfileDir.leafName, - null, null); + try { + this.appProfile = profSvc.createDefaultProfileForApp(this.appProfileDir.leafName, + null, null); + } catch (ex if ex.result == Cr.NS_ERROR_ALREADY_INITIALIZED) {} }, _copyPrebuiltFiles: function() { let webapprt = this.runtimeFolder.clone(); webapprt.append("webapprt-stub"); webapprt.copyTo(this.macOSDir, "webapprt"); }, @@ -696,16 +681,22 @@ LinuxNativeApp.prototype = { this.installDir.append("." + this.uniqueName); this.iconFile = this.installDir.clone(); this.iconFile.append(this.uniqueName + ".png"); this.webapprt = this.installDir.clone(); this.webapprt.append("webapprt-stub"); + this.configJson = this.installDir.clone(); + this.configJson.append("webapp.json"); + + this.webappINI = this.installDir.clone(); + this.webappINI.append("webapp.ini"); + let env = Cc["@mozilla.org/process/environment;1"] .getService(Ci.nsIEnvironment); let xdg_data_home_env = env.get("XDG_DATA_HOME"); if (xdg_data_home_env != "") { this.desktopINI = Cc["@mozilla.org/file/local;1"] .createInstance(Ci.nsILocalFile); this.desktopINI.initWithPath(xdg_data_home_env); } @@ -715,77 +706,79 @@ LinuxNativeApp.prototype = { this.desktopINI.append("share"); } this.desktopINI.append("applications"); this.desktopINI.append("owa-" + this.uniqueName + ".desktop"); }, install: function() { - this._removeInstallation(); + this._removeInstallation(true); try { this._createDirectoryStructure(); this._copyPrebuiltFiles(); this._createConfigFiles(); this._createAppProfile(); } catch (ex) { - this._removeInstallation(); + this._removeInstallation(false); throw(ex); } getIconForApp(this, function() {}); }, - _removeInstallation: function() { - try { - if (this.installDir.exists()) - this.installDir.remove(true); + _removeInstallation: function(keepProfile) { + let filesToRemove = [this.desktopINI]; - if (this.desktopINI.exists()) - this.desktopINI.remove(false); - } catch(ex) { + if (keepProfile) { + filesToRemove.push(this.iconFile); + filesToRemove.push(this.webapprt); + filesToRemove.push(this.configJson); + filesToRemove.push(this.webappINI); + } else { + filesToRemove.push(this.installDir); } + + removeFiles(filesToRemove); }, _createDirectoryStructure: function() { - this.installDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); + if (!this.installDir.exists()) + this.installDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); }, _copyPrebuiltFiles: function() { let webapprtPre = this.runtimeFolder.clone(); webapprtPre.append(this.webapprt.leafName); webapprtPre.copyTo(this.installDir, this.webapprt.leafName); }, _createAppProfile: function() { if (!this.appcacheDefined) return; let profSvc = Cc["@mozilla.org/toolkit/profile-service;1"] .getService(Ci.nsIToolkitProfileService); - return profSvc.createDefaultProfileForApp(this.installDir.leafName, - null, null); + try { + this.appProfile = profSvc.createDefaultProfileForApp(this.installDir.leafName, + null, null); + } catch (ex if ex.result == Cr.NS_ERROR_ALREADY_INITIALIZED) {} }, _createConfigFiles: function() { // ${InstallDir}/webapp.json - let configJson = this.installDir.clone(); - configJson.append("webapp.json"); - writeToFile(configJson, JSON.stringify(this.webappJson), function() {}); - - // ${InstallDir}/webapp.ini - let webappINI = this.installDir.clone(); - webappINI.append("webapp.ini"); + writeToFile(this.configJson, JSON.stringify(this.webappJson), function() {}); let factory = Cc["@mozilla.org/xpcom/ini-processor-factory;1"] .getService(Ci.nsIINIParserFactory); - let writer = factory.createINIParser(webappINI).QueryInterface(Ci.nsIINIParserWriter); + // ${InstallDir}/webapp.ini + let writer = factory.createINIParser(this.webappINI).QueryInterface(Ci.nsIINIParserWriter); writer.setString("Webapp", "Name", this.appName); writer.setString("Webapp", "Profile", this.uniqueName); writer.setString("WebappRT", "InstallDir", this.runtimeFolder.path); writer.writeFile(); // $XDG_DATA_HOME/applications/owa-<webappuniquename>.desktop this.desktopINI.create(Ci.nsIFile.NORMAL_FILE_TYPE, 0755); @@ -912,16 +905,32 @@ function getAvailableFile(aFolder, aName if (!file.exists()) { return file; } } return null; } +/** + * Attempts to remove files or directories. + * + * @param aFiles An array with nsIFile objects to be removed + */ +function removeFiles(aFiles) { + for (let file of aFiles) { + try { + if (file.exists()) { + file.followLinks = false; + file.remove(true); + } + } catch(ex) {} + } +} + function escapeXML(aStr) { return aStr.toString() .replace(/&/g, "&") .replace(/"/g, """) .replace(/'/g, "'") .replace(/</g, "<") .replace(/>/g, ">"); }
--- a/build/unix/build-clang/build-clang.py +++ b/build/unix/build-clang/build-clang.py @@ -1,14 +1,14 @@ #!/usr/bin/python # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. -llvm_revision = "158160" +llvm_revision = "159219" moz_version = "moz0" ############################################## import os import os.path import shutil import tarfile @@ -91,20 +91,17 @@ if not os.path.exists(source_dir): svn_co("http://llvm.org/svn/llvm-project/llvm/trunk", llvm_source_dir, llvm_revision) svn_co("http://llvm.org/svn/llvm-project/cfe/trunk", clang_source_dir, llvm_revision) svn_co("http://llvm.org/svn/llvm-project/compiler-rt/trunk", compiler_rt_source_dir, llvm_revision) os.symlink("../../clang", llvm_source_dir + "/tools/clang") os.symlink("../../compiler-rt", llvm_source_dir + "/projects/compiler-rt") - if isDarwin: - patch("clang-no-ios.patch", 0, clang_source_dir) - patch("compiler-rt-no-ios.patch", 0, compiler_rt_source_dir) - else: + if not isDarwin: patch("old-ld-hack.patch", 1, llvm_source_dir) patch("compiler-rt-gnu89-inline.patch", 0, compiler_rt_source_dir) if os.path.exists(build_dir): shutil.rmtree(build_dir) os.makedirs(build_dir) stage1_dir = build_dir + '/stage1'
deleted file mode 100644 --- a/build/unix/build-clang/clang-no-ios.patch +++ /dev/null @@ -1,15 +0,0 @@ -Index: runtime/compiler-rt/Makefile -=================================================================== ---- runtime/compiler-rt/Makefile (revision 157958) -+++ runtime/compiler-rt/Makefile (working copy) -@@ -74,8 +74,8 @@ - ifeq ($(OS),Darwin) - RuntimeDirs += darwin - RuntimeLibrary.darwin.Configs := \ -- eprintf 10.4 osx ios cc_kext \ -- asan_osx profile_osx profile_ios -+ eprintf 10.4 osx \ -+ asan_osx profile_osx - endif - - # On Linux, include a library which has all the runtime functions.
deleted file mode 100644 --- a/build/unix/build-clang/compiler-rt-no-ios.patch +++ /dev/null @@ -1,29 +0,0 @@ -Index: make/platform/clang_darwin.mk -=================================================================== ---- make/platform/clang_darwin.mk (revision 157958) -+++ make/platform/clang_darwin.mk (working copy) -@@ -47,7 +47,7 @@ - # Configuration for targetting iOS, for some ARMv6 functions, which must be - # in the same linkage unit, and for a couple of other functions that didn't - # make it into libSystem. --Configs += ios -+#Configs += ios - UniversalArchs.ios := $(call CheckArches,i386 x86_64 armv6 armv7,ios) - - # Configuration for targetting OSX. These functions may not be in libSystem -@@ -56,13 +56,13 @@ - UniversalArchs.osx := $(call CheckArches,i386 x86_64,osx) - - # Configuration for use with kernel/kexts. --Configs += cc_kext -+#Configs += cc_kext - UniversalArchs.cc_kext := $(call CheckArches,armv6 armv7 i386 x86_64,cc_kext) - - # Configurations which define the profiling support functions. - Configs += profile_osx - UniversalArchs.profile_osx := $(call CheckArches,i386 x86_64,profile_osx) --Configs += profile_ios -+#Configs += profile_ios - UniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 armv6 armv7,profile_ios) - - # Configurations which define the ASAN support functions.
--- a/content/base/public/Element.h +++ b/content/base/public/Element.h @@ -52,18 +52,18 @@ enum { namespace mozilla { namespace dom { class Link; // IID for the dom::Element interface #define NS_ELEMENT_IID \ -{ 0x8493dd61, 0x4d59, 0x410a, \ - { 0x97, 0x40, 0xd0, 0xa0, 0xc2, 0x03, 0xff, 0x52 } } +{ 0xc6c049a1, 0x96e8, 0x4580, \ + { 0xa6, 0x93, 0xb9, 0x5f, 0x53, 0xbe, 0xe8, 0x1c } } class Element : public nsIContent { public: #ifdef MOZILLA_INTERNAL_API Element(already_AddRefed<nsINodeInfo> aNodeInfo) : nsIContent(aNodeInfo), mState(NS_EVENT_STATE_MOZ_READONLY)
--- a/content/base/public/nsCopySupport.h +++ b/content/base/public/nsCopySupport.h @@ -12,32 +12,34 @@ class nsISelection; class nsIDocument; class nsIImageLoadingContent; class nsIContent; class nsITransferable; class nsACString; class nsAString; class nsIPresShell; +class nsILoadContext; class nsCopySupport { // class of static helper functions for copy support public: static nsresult HTMLCopy(nsISelection *aSel, nsIDocument *aDoc, PRInt16 aClipboardID); static nsresult DoHooks(nsIDocument *aDoc, nsITransferable *aTrans, bool *aDoPutOnClipboard); static nsresult IsPlainTextContext(nsISelection *aSel, nsIDocument *aDoc, bool *aIsPlainTextContext); // Get the selection, or entire document, in the format specified by the mime type // (text/html or text/plain). If aSel is non-null, use it, otherwise get the entire // doc. static nsresult GetContents(const nsACString& aMimeType, PRUint32 aFlags, nsISelection *aSel, nsIDocument *aDoc, nsAString& outdata); static nsresult ImageCopy(nsIImageLoadingContent* aImageElement, + nsILoadContext* aLoadContext, PRInt32 aCopyFlags); // Get the selection as a transferable. Similar to HTMLCopy except does // not deal with the clipboard. static nsresult GetTransferableForSelection(nsISelection* aSelection, nsIDocument* aDocument, nsITransferable** aTransferable);
--- a/content/base/public/nsIContent.h +++ b/content/base/public/nsIContent.h @@ -40,18 +40,18 @@ enum nsLinkState { eLinkState_Unknown = 0, eLinkState_Unvisited = 1, eLinkState_Visited = 2, eLinkState_NotLink = 3 }; // IID for the nsIContent interface #define NS_ICONTENT_IID \ -{ 0xa887c108, 0xc25e, 0x42ab, \ - { 0x87, 0xef, 0xad, 0x4b, 0xee, 0x50, 0x28, 0x28 } } +{ 0x98fb308d, 0xc6dd, 0x4c6d, \ + { 0xb7, 0x7c, 0x91, 0x18, 0x0c, 0xf0, 0x6f, 0x23 } } /** * A node of content in a document's content model. This interface * is supported by all content objects. */ class nsIContent : public nsINode { public: typedef mozilla::widget::IMEState IMEState; @@ -871,16 +871,17 @@ public: // Overloaded from nsINode virtual already_AddRefed<nsIURI> GetBaseURI() const; virtual nsresult PreHandleEvent(nsEventChainPreVisitor& aVisitor); virtual bool IsPurple() = 0; virtual void RemovePurple() = 0; + virtual bool OwnedOnlyByTheDOMTree() { return false; } protected: /** * Hook for implementing GetID. This is guaranteed to only be * called if HasID() is true. */ virtual nsIAtom* DoGetID() const = 0; private:
--- a/content/base/public/nsIDocument.h +++ b/content/base/public/nsIDocument.h @@ -30,16 +30,17 @@ #include "nsPIDOMWindow.h" #include "nsSMILAnimationController.h" #include "nsIScriptGlobalObject.h" #include "nsIDocumentEncoder.h" #include "nsIFrameRequestCallback.h" #include "nsEventStates.h" #include "nsIStructuredCloneContainer.h" #include "nsIBFCacheEntry.h" +#include "nsILoadContext.h" class nsIContent; class nsPresContext; class nsIPresShell; class nsIDocShell; class nsStyleSet; class nsIStyleSheet; class nsIStyleRule; @@ -883,16 +884,29 @@ public: nsISupports* container = nsnull; if (mDocumentContainer) CallQueryReferent(mDocumentContainer.get(), &container); return container; } /** + * Get the container's load context for this document. + */ + nsILoadContext* GetLoadContext() const + { + nsCOMPtr<nsISupports> container = GetContainer(); + if (container) { + nsCOMPtr<nsILoadContext> loadContext = do_QueryInterface(container); + return loadContext; + } + return nsnull; + } + + /** * Set and get XML declaration. If aVersion is null there is no declaration. * aStandalone takes values -1, 0 and 1 indicating respectively that there * was no standalone parameter in the declaration, that it was given as no, * or that it was given as yes. */ virtual void SetXMLDeclaration(const PRUnichar *aVersion, const PRUnichar *aEncoding, const PRInt32 aStandalone) = 0;
--- a/content/base/src/nsCCUncollectableMarker.cpp +++ b/content/base/src/nsCCUncollectableMarker.cpp @@ -260,16 +260,18 @@ MarkWindowList(nsISimpleEnumerator* aWin } } nsresult nsCCUncollectableMarker::Observe(nsISupports* aSubject, const char* aTopic, const PRUnichar* aData) { if (!strcmp(aTopic, "xpcom-shutdown")) { + nsGenericElement::ClearContentUnbinder(); + nsCOMPtr<nsIObserverService> obs = mozilla::services::GetObserverService(); if (!obs) return NS_ERROR_FAILURE; // No need for kungFuDeathGrip here, yay observerservice! obs->RemoveObserver(this, "xpcom-shutdown"); obs->RemoveObserver(this, "cycle-collector-begin"); @@ -284,17 +286,19 @@ nsCCUncollectableMarker::Observe(nsISupp !strcmp(aTopic, "cycle-collector-forget-skippable"), "wrong topic"); // JS cleanup can be slow. Do it only if there has been a GC. bool cleanupJS = nsJSContext::CleanupsSinceLastGC() == 0 && !strcmp(aTopic, "cycle-collector-forget-skippable"); bool prepareForCC = !strcmp(aTopic, "cycle-collector-begin"); - + if (prepareForCC) { + nsGenericElement::ClearContentUnbinder(); + } // Increase generation to effectivly unmark all current objects if (!++sGeneration) { ++sGeneration; } nsresult rv;
--- a/content/base/src/nsCopySupport.cpp +++ b/content/base/src/nsCopySupport.cpp @@ -177,16 +177,17 @@ SelectionCopyHelper(nsISelection *aSel, if (NS_FAILED(rv)) return rv; } if ((doPutOnClipboard && clipboard) || aTransferable != nsnull) { // Create a transferable for putting data on the Clipboard nsCOMPtr<nsITransferable> trans = do_CreateInstance(kCTransferableCID); if (trans) { + trans->Init(aDoc->GetLoadContext()); if (bIsHTMLCopy) { // Set up a format converter so that clipboard flavor queries work. // This converter isn't really used for conversions. nsCOMPtr<nsIFormatConverter> htmlConverter = do_CreateInstance(kHTMLConverterCID); trans->SetConverter(htmlConverter); if (!buffer.IsEmpty()) { @@ -454,23 +455,25 @@ nsCopySupport::GetContents(const nsACStr // encode the selection return docEncoder->EncodeToString(outdata); } nsresult nsCopySupport::ImageCopy(nsIImageLoadingContent* aImageElement, + nsILoadContext* aLoadContext, PRInt32 aCopyFlags) { nsresult rv; // create a transferable for putting data on the Clipboard nsCOMPtr<nsITransferable> trans(do_CreateInstance(kCTransferableCID, &rv)); NS_ENSURE_SUCCESS(rv, rv); + trans->Init(aLoadContext); if (aCopyFlags & nsIContentViewerEdit::COPY_IMAGE_TEXT) { // get the location from the element nsCOMPtr<nsIURI> uri; rv = aImageElement->GetCurrentURI(getter_AddRefs(uri)); NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_TRUE(uri, NS_ERROR_FAILURE);
--- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -8986,16 +8986,17 @@ nsDocument::RequestFullScreen(Element* a DispatchFullScreenChange(changed[changed.Length() - i - 1]); } // If this document hasn't already been approved in this session, // check to see if the user has granted the fullscreen access // to the document's principal's host, if it has one. if (!mIsApprovedForFullscreen) { mIsApprovedForFullscreen = + GetWindow()->IsPartOfApp() || nsContentUtils::IsSitePermAllow(NodePrincipal(), "fullscreen"); } // If this document, or a document with the same principal has not // already been approved for fullscreen this fullscreen-session, dispatch // an event so that chrome knows to pop up a warning/approval UI. nsCOMPtr<nsIDocument> previousFullscreenDoc(do_QueryReferent(sFullScreenDoc)); // Note previousFullscreenDoc=nsnull upon first entry, so we always
--- a/content/base/src/nsGenericDOMDataNode.h +++ b/content/base/src/nsGenericDOMDataNode.h @@ -304,16 +304,21 @@ protected: * @return the clone */ virtual nsGenericDOMDataNode *CloneDataNode(nsINodeInfo *aNodeInfo, bool aCloneText) const = 0; nsTextFragment mText; public: + virtual bool OwnedOnlyByTheDOMTree() + { + return GetParent() && mRefCnt.get() == 1; + } + virtual bool IsPurple() { return mRefCnt.IsPurple(); } virtual void RemovePurple() { mRefCnt.RemovePurple(); }
--- a/content/base/src/nsGenericElement.cpp +++ b/content/base/src/nsGenericElement.cpp @@ -1040,16 +1040,54 @@ nsGenericElement::GetScrollWidth() NS_IMETHODIMP nsGenericElement::GetScrollWidth(PRInt32 *aScrollWidth) { *aScrollWidth = GetScrollWidth(); return NS_OK; } +PRInt32 +nsGenericElement::GetScrollLeftMax() +{ + nsIScrollableFrame* sf = GetScrollFrame(); + if (!sf) { + return 0; + } + + return nsPresContext::AppUnitsToIntCSSPixels(sf->GetScrollRange().XMost()); +} + +NS_IMETHODIMP +nsGenericElement::GetScrollLeftMax(PRInt32 *aScrollLeftMax) +{ + *aScrollLeftMax = GetScrollLeftMax(); + + return NS_OK; +} + +PRInt32 +nsGenericElement::GetScrollTopMax() +{ + nsIScrollableFrame* sf = GetScrollFrame(); + if (!sf) { + return 0; + } + + return nsPresContext::AppUnitsToIntCSSPixels(sf->GetScrollRange().YMost()); +} + +NS_IMETHODIMP +nsGenericElement::GetScrollTopMax(PRInt32 *aScrollTopMax) +{ + *aScrollTopMax = GetScrollTopMax(); + + return NS_OK; +} + nsRect nsGenericElement::GetClientAreaRect() { nsIFrame* styledFrame; nsIScrollableFrame* sf = GetScrollFrame(&styledFrame); if (sf) { return sf->GetScrollPortRect(); @@ -2804,16 +2842,26 @@ public: next->mLast = mLast; mLast = nsnull; NS_DispatchToMainThread(next); } } return NS_OK; } + static void UnbindAll() + { + nsRefPtr<ContentUnbinder> ub = sContentUnbinder; + sContentUnbinder = nsnull; + while (ub) { + ub->Run(); + ub = ub->mNext; + } + } + static void Append(nsIContent* aSubtreeRoot) { if (!sContentUnbinder) { sContentUnbinder = new ContentUnbinder(); nsCOMPtr<nsIRunnable> e = sContentUnbinder; NS_DispatchToMainThread(e); } @@ -2830,16 +2878,22 @@ private: SUBTREE_UNBINDINGS_PER_RUNNABLE> mSubtreeRoots; nsRefPtr<ContentUnbinder> mNext; ContentUnbinder* mLast; static ContentUnbinder* sContentUnbinder; }; ContentUnbinder* ContentUnbinder::sContentUnbinder = nsnull; +void +nsGenericElement::ClearContentUnbinder() +{ + ContentUnbinder::UnbindAll(); +} + NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGenericElement) nsINode::Unlink(tmp); if (tmp->HasProperties()) { if (tmp->IsHTML()) { tmp->DeleteProperty(nsGkAtoms::microdataProperties); tmp->DeleteProperty(nsGkAtoms::itemtype); tmp->DeleteProperty(nsGkAtoms::itemref); @@ -3073,29 +3127,39 @@ nsGenericElement::CanSkipInCC(nsINode* a if (purple != aNode) { purple->RemovePurple(); } } return !NeedsScriptTraverse(aNode); } nsAutoTArray<nsINode*, 1020>* gPurpleRoots = nsnull; - -void ClearPurpleRoots() -{ - if (!gPurpleRoots) { - return; - } - PRUint32 len = gPurpleRoots->Length(); - for (PRUint32 i = 0; i < len; ++i) { - nsINode* n = gPurpleRoots->ElementAt(i); - n->SetIsPurpleRoot(false); - } - delete gPurpleRoots; - gPurpleRoots = nsnull; +nsAutoTArray<nsIContent*, 1020>* gNodesToUnbind = nsnull; + +void ClearCycleCollectorCleanupData() +{ + if (gPurpleRoots) { + PRUint32 len = gPurpleRoots->Length(); + for (PRUint32 i = 0; i < len; ++i) { + nsINode* n = gPurpleRoots->ElementAt(i); + n->SetIsPurpleRoot(false); + } + delete gPurpleRoots; + gPurpleRoots = nsnull; + } + if (gNodesToUnbind) { + PRUint32 len = gNodesToUnbind->Length(); + for (PRUint32 i = 0; i < len; ++i) { + nsIContent* c = gNodesToUnbind->ElementAt(i); + c->SetIsPurpleRoot(false); + ContentUnbinder::Append(c); + } + delete gNodesToUnbind; + gNodesToUnbind = nsnull; + } } static bool ShouldClearPurple(nsIContent* aContent) { if (aContent && aContent->IsPurple()) { return true; } @@ -3159,67 +3223,89 @@ nsGenericElement::CanSkip(nsINode* aNode } nsINode* root = currentDoc ? static_cast<nsINode*>(currentDoc) : FindOptimizableSubtreeRoot(aNode); if (!root) { return false; } - // Subtree has been traversed already, and aNode - // wasn't removed from purple buffer. No need to do more here. + // Subtree has been traversed already, and aNode has + // been handled in a way that doesn't require revisiting it. if (root->IsPurpleRoot()) { return false; } // nodesToClear contains nodes which are either purple or // gray. nsAutoTArray<nsIContent*, 1020> nodesToClear; bool foundBlack = root->IsBlack(); + bool domOnlyCycle = false; if (root != currentDoc) { currentDoc = nsnull; + if (!foundBlack) { + domOnlyCycle = static_cast<nsIContent*>(root)->OwnedOnlyByTheDOMTree(); + } if (ShouldClearPurple(static_cast<nsIContent*>(root))) { nodesToClear.AppendElement(static_cast<nsIContent*>(root)); } } // Traverse the subtree and check if we could know without CC // that it is black. // Note, this traverse is non-virtual and inline, so it should be a lot faster // than CC's generic traverse. for (nsIContent* node = root->GetFirstChild(); node; node = node->GetNextNode(root)) { foundBlack = foundBlack || node->IsBlack(); if (foundBlack) { + domOnlyCycle = false; if (currentDoc) { // If we can mark the whole document black, no need to optimize // so much, since when the next purple node in the document will be // handled, it is fast to check that the currentDoc is in CCGeneration. break; } // No need to put stuff to the nodesToClear array, if we can clear it // already here. if (node->IsPurple() && (node != aNode || aRemovingAllowed)) { node->RemovePurple(); } MarkNodeChildren(node); - } else if (ShouldClearPurple(node)) { - // Collect interesting nodes which we can clear if we find that - // they are kept alive in a black tree. - nodesToClear.AppendElement(node); + } else { + domOnlyCycle = domOnlyCycle && node->OwnedOnlyByTheDOMTree(); + if (ShouldClearPurple(node)) { + // Collect interesting nodes which we can clear if we find that + // they are kept alive in a black tree or are in a DOM-only cycle. + nodesToClear.AppendElement(node); + } } } if (!currentDoc || !foundBlack) { - if (!gPurpleRoots) { - gPurpleRoots = new nsAutoTArray<nsINode*, 1020>(); + root->SetIsPurpleRoot(true); + if (domOnlyCycle) { + if (!gNodesToUnbind) { + gNodesToUnbind = new nsAutoTArray<nsIContent*, 1020>(); + } + gNodesToUnbind->AppendElement(static_cast<nsIContent*>(root)); + for (PRUint32 i = 0; i < nodesToClear.Length(); ++i) { + nsIContent* n = nodesToClear[i]; + if ((n != aNode || aRemovingAllowed) && n->IsPurple()) { + n->RemovePurple(); + } + } + return true; + } else { + if (!gPurpleRoots) { + gPurpleRoots = new nsAutoTArray<nsINode*, 1020>(); + } + gPurpleRoots->AppendElement(root); } - root->SetIsPurpleRoot(true); - gPurpleRoots->AppendElement(root); } if (!foundBlack) { return false; } if (currentDoc) { // Special case documents. If we know the document is black, @@ -3256,17 +3342,17 @@ nsGenericElement::CanSkipThis(nsINode* a return ((c && nsCCUncollectableMarker::InGeneration(c->GetMarkedCCGeneration())) || aNode->InCCBlackTree()) && !NeedsScriptTraverse(aNode); } void nsGenericElement::InitCCCallbacks() { - nsCycleCollector_setForgetSkippableCallback(ClearPurpleRoots); + nsCycleCollector_setForgetSkippableCallback(ClearCycleCollectorCleanupData); nsCycleCollector_setBeforeUnlinkCallback(ClearBlackMarkedNodes); } NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_BEGIN(nsGenericElement) return nsGenericElement::CanSkip(tmp, aRemovingAllowed); NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_END NS_IMPL_CYCLE_COLLECTION_CAN_SKIP_IN_CC_BEGIN(nsGenericElement) @@ -4671,16 +4757,21 @@ nsGenericElement::MozRequestPointerLock( { OwnerDoc()->RequestPointerLock(this); return NS_OK; } static const char* GetFullScreenError(nsIDocument* aDoc) { + nsCOMPtr<nsPIDOMWindow> win = aDoc->GetWindow(); + if (win && win->IsPartOfApp()) { + return nsnull; + } + if (!nsContentUtils::IsRequestFullScreenAllowed()) { return "FullScreenDeniedNotInputDriven"; } if (nsContentUtils::IsSitePermDeny(aDoc->NodePrincipal(), "fullscreen")) { return "FullScreenDeniedBlocked"; }
--- a/content/base/src/nsGenericElement.h +++ b/content/base/src/nsGenericElement.h @@ -542,16 +542,18 @@ public: virtual void RecompileScriptEventListeners() { } PRInt32 GetScrollTop(); PRInt32 GetScrollLeft(); PRInt32 GetScrollHeight(); PRInt32 GetScrollWidth(); + PRInt32 GetScrollLeftMax(); + PRInt32 GetScrollTopMax(); PRInt32 GetClientTop() { return nsPresContext::AppUnitsToIntCSSPixels(GetClientAreaRect().y); } PRInt32 GetClientLeft() { return nsPresContext::AppUnitsToIntCSSPixels(GetClientAreaRect().x); } @@ -586,26 +588,37 @@ public: { } /** * Fire a DOMNodeRemoved mutation event for all children of this node */ void FireNodeRemovedForChildren(); + virtual bool OwnedOnlyByTheDOMTree() + { + PRUint32 rc = mRefCnt.get(); + if (GetParent()) { + --rc; + } + rc -= mAttrsAndChildren.ChildCount(); + return rc == 0; + } + virtual bool IsPurple() { return mRefCnt.IsPurple(); } virtual void RemovePurple() { mRefCnt.RemovePurple(); } + static void ClearContentUnbinder(); static bool CanSkip(nsINode* aNode, bool aRemovingAllowed); static bool CanSkipInCC(nsINode* aNode); static bool CanSkipThis(nsINode* aNode); static void MarkNodeChildren(nsINode* aNode); static void InitCCCallbacks(); static void MarkUserData(void* aObject, nsIAtom* aKey, void* aChild, void *aData); static void MarkUserDataHandler(void* aObject, nsIAtom* aKey, void* aChild,
--- a/content/base/src/nsRange.cpp +++ b/content/base/src/nsRange.cpp @@ -2012,40 +2012,33 @@ nsRange::CloneContents(nsIDOMDocumentFra } *aReturn = clonedFrag; NS_IF_ADDREF(*aReturn); return NS_OK; } -nsresult -nsRange::CloneRange(nsRange** aReturn) const +already_AddRefed<nsRange> +nsRange::CloneRange() const { - if (aReturn == 0) - return NS_ERROR_NULL_POINTER; - nsRefPtr<nsRange> range = new nsRange(); range->SetMaySpanAnonymousSubtrees(mMaySpanAnonymousSubtrees); range->DoSetRange(mStartParent, mStartOffset, mEndParent, mEndOffset, mRoot); - range.forget(aReturn); - - return NS_OK; + return range.forget(); } NS_IMETHODIMP nsRange::CloneRange(nsIDOMRange** aReturn) { - nsRefPtr<nsRange> range; - nsresult rv = CloneRange(getter_AddRefs(range)); - range.forget(aReturn); - return rv; + *aReturn = CloneRange().get(); + return NS_OK; } NS_IMETHODIMP nsRange::InsertNode(nsIDOMNode* aNode) { VALIDATE_ACCESS(aNode); nsresult res;
--- a/content/base/src/nsRange.h +++ b/content/base/src/nsRange.h @@ -113,17 +113,17 @@ public: UnregisterCommonAncestor(commonAncestor); } } nsINode* GetCommonAncestor() const; void Reset(); nsresult SetStart(nsINode* aParent, PRInt32 aOffset); nsresult SetEnd(nsINode* aParent, PRInt32 aOffset); - nsresult CloneRange(nsRange** aNewRange) const; + already_AddRefed<nsRange> CloneRange() const; nsresult Set(nsINode* aStartParent, PRInt32 aStartOffset, nsINode* aEndParent, PRInt32 aEndOffset) { // If this starts being hot, we may be able to optimize this a bit, // but for now just set start and end separately. nsresult rv = SetStart(aStartParent, aStartOffset); NS_ENSURE_SUCCESS(rv, rv);
--- a/content/base/test/test_bug166235.html +++ b/content/base/test/test_bug166235.html @@ -17,42 +17,50 @@ https://bugzilla.mozilla.org/show_bug.cg </div> <textarea id="input"></textarea> <pre id="test"> <script type="application/javascript"> /** Test for Bug 166235 **/ var Cc = SpecialPowers.wrap(Components).classes; + var Ci = SpecialPowers.wrap(Components).interfaces; var webnav = SpecialPowers.wrap(window).QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) var docShell = webnav.QueryInterface(Components.interfaces.nsIDocShell); var documentViewer = docShell.contentViewer .QueryInterface(Components.interfaces.nsIContentViewerEdit); var clipboard = Cc["@mozilla.org/widget/clipboard;1"] .getService(Components.interfaces.nsIClipboard); var textarea = SpecialPowers.wrap(document).getElementById('input'); + function getLoadContext() { + return SpecialPowers.wrap(window).QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); + } + function copyChildrenToClipboard(id) { textarea.blur(); clipboard.emptyClipboard(1); window.getSelection().selectAllChildren(document.getElementById(id)); documentViewer.copySelection(); is(clipboard.hasDataMatchingFlavors(["text/unicode"], 1,1), true); is(clipboard.hasDataMatchingFlavors(["text/html"], 1,1), true); } function getClipboardData(mime) { var transferable = Cc['@mozilla.org/widget/transferable;1'] .createInstance(Components.interfaces.nsITransferable); + transferable.init(getLoadContext()); transferable.addDataFlavor(mime); clipboard.getData(transferable, 1); var data = SpecialPowers.wrap({}); transferable.getTransferData(mime, data, {}) ; return data; } function testClipboardValue(mime, expected, test) { var data = getClipboardData(mime);
--- a/content/base/test/test_copypaste.html +++ b/content/base/test/test_copypaste.html @@ -30,16 +30,23 @@ function modifySelection(s) { g.addRange(a); window.setTimeout(function () { e.parentNode.removeChild(e); g.removeAllRanges(); g.addRange(l); }, 0) } +function getLoadContext() { + var Ci = SpecialPowers.wrap(Components).interfaces; + return SpecialPowers.wrap(window).QueryInterface(Ci.nsIInterfaceRequestor) + .getInterface(Ci.nsIWebNavigation) + .QueryInterface(Ci.nsILoadContext); +} + function testCopyPaste () { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); var webnav = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) .getInterface(Components.interfaces.nsIWebNavigation) var docShell = webnav.QueryInterface(Components.interfaces.nsIDocShell); @@ -81,16 +88,17 @@ function testCopyPaste () { textarea.blur(); clipboard.emptyClipboard(1); window.getSelection().selectAllChildren(document.getElementById(id)); copySelectionToClipboard(); } function getClipboardData(mime) { var transferable = Components.classes['@mozilla.org/widget/transferable;1'] .createInstance(Components.interfaces.nsITransferable); + transferable.init(getLoadContext()); transferable.addDataFlavor(mime); clipboard.getData(transferable, 1); var data = {}; transferable.getTransferData(mime, data, {}) ; return data; } function testClipboardValue(mime, expected) { var data = getClipboardData(mime);
--- a/content/canvas/src/WebGLContextGL.cpp +++ b/content/canvas/src/WebGLContextGL.cpp @@ -2442,17 +2442,17 @@ WebGLContext::GetParameter(JSContext* cx case LOCAL_GL_MAX_VARYING_VECTORS: return JS::Int32Value(mGLMaxVaryingVectors); case LOCAL_GL_NUM_COMPRESSED_TEXTURE_FORMATS: return JS::Int32Value(0); case LOCAL_GL_COMPRESSED_TEXTURE_FORMATS: { uint32_t length = mCompressedTextureFormats.Length(); - JSObject* obj = Uint32Array::Create(cx, length, mCompressedTextureFormats.Elements()); + JSObject* obj = Uint32Array::Create(cx, this, length, mCompressedTextureFormats.Elements()); if (!obj) { rv = NS_ERROR_OUT_OF_MEMORY; } return JS::ObjectOrNullValue(obj); } // unsigned int. here we may have to return very large values like 2^32-1 that can't be represented as // javascript integer values. We just return them as doubles and javascript doesn't care. @@ -2519,52 +2519,52 @@ WebGLContext::GetParameter(JSContext* cx // Complex values // case LOCAL_GL_DEPTH_RANGE: // 2 floats case LOCAL_GL_ALIASED_POINT_SIZE_RANGE: // 2 floats case LOCAL_GL_ALIASED_LINE_WIDTH_RANGE: // 2 floats { GLfloat fv[2] = { 0 }; gl->fGetFloatv(pname, fv); - JSObject* obj = Float32Array::Create(cx, 2, fv); + JSObject* obj = Float32Array::Create(cx, this, 2, fv); if (!obj) { rv = NS_ERROR_OUT_OF_MEMORY; } return JS::ObjectOrNullValue(obj); } case LOCAL_GL_COLOR_CLEAR_VALUE: // 4 floats case LOCAL_GL_BLEND_COLOR: // 4 floats { GLfloat fv[4] = { 0 }; gl->fGetFloatv(pname, fv); - JSObject* obj = Float32Array::Create(cx, 4, fv); + JSObject* obj = Float32Array::Create(cx, this, 4, fv); if (!obj) { rv = NS_ERROR_OUT_OF_MEMORY; } return JS::ObjectOrNullValue(obj); } case LOCAL_GL_MAX_VIEWPORT_DIMS: // 2 ints { GLint iv[2] = { 0 }; gl->fGetIntegerv(pname, iv); - JSObject* obj = Int32Array::Create(cx, 2, iv); + JSObject* obj = Int32Array::Create(cx, this, 2, iv); if (!obj) { rv = NS_ERROR_OUT_OF_MEMORY; } return JS::ObjectOrNullValue(obj); } case LOCAL_GL_SCISSOR_BOX: // 4 ints case LOCAL_GL_VIEWPORT: // 4 ints { GLint iv[4] = { 0 }; gl->fGetIntegerv(pname, iv); - JSObject* obj = Int32Array::Create(cx, 4, iv); + JSObject* obj = Int32Array::Create(cx, this, 4, iv); if (!obj) { rv = NS_ERROR_OUT_OF_MEMORY; } return JS::ObjectOrNullValue(obj); } case LOCAL_GL_COLOR_WRITEMASK: // 4 bools { @@ -3318,29 +3318,29 @@ WebGLContext::GetUniform(JSContext* cx, } if (baseType == LOCAL_GL_FLOAT) { GLfloat fv[16] = { GLfloat(0) }; gl->fGetUniformfv(progname, location->Location(), fv); if (unitSize == 1) { return JS::DoubleValue(fv[0]); } else { - JSObject* obj = Float32Array::Create(cx, unitSize, fv); + JSObject* obj = Float32Array::Create(cx, this, unitSize, fv); if (!obj) { rv.Throw(NS_ERROR_OUT_OF_MEMORY); } return JS::ObjectOrNullValue(obj); } } else if (baseType == LOCAL_GL_INT) { GLint iv[16] = { 0 }; gl->fGetUniformiv(progname, location->Location(), iv); if (unitSize == 1) { return JS::Int32Value(iv[0]); } else { - JSObject* obj = Int32Array::Create(cx, unitSize, iv); + JSObject* obj = Int32Array::Create(cx, this, unitSize, iv); if (!obj) { rv.Throw(NS_ERROR_OUT_OF_MEMORY); } return JS::ObjectOrNullValue(obj); } } else if (baseType == LOCAL_GL_BOOL) { GLint iv[16] = { 0 }; gl->fGetUniformiv(progname, location->Location(), iv); @@ -3457,17 +3457,17 @@ WebGLContext::GetVertexAttrib(JSContext* if (index) { gl->fGetVertexAttribfv(index, LOCAL_GL_CURRENT_VERTEX_ATTRIB, &vec[0]); } else { vec[0] = mVertexAttrib0Vector[0]; vec[1] = mVertexAttrib0Vector[1]; vec[2] = mVertexAttrib0Vector[2]; vec[3] = mVertexAttrib0Vector[3]; } - JSObject* obj = Float32Array::Create(cx, 4, vec); + JSObject* obj = Float32Array::Create(cx, this, 4, vec); if (!obj) { rv.Throw(NS_ERROR_OUT_OF_MEMORY); } return JS::ObjectOrNullValue(obj); } case LOCAL_GL_VERTEX_ATTRIB_ARRAY_ENABLED: case LOCAL_GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:
--- a/content/events/src/nsDOMDataTransfer.cpp +++ b/content/events/src/nsDOMDataTransfer.cpp @@ -622,38 +622,50 @@ nsDOMDataTransfer::Clone(PRUint32 aEvent NS_ENSURE_TRUE(newDataTransfer, NS_ERROR_OUT_OF_MEMORY); *aNewDataTransfer = newDataTransfer; NS_ADDREF(*aNewDataTransfer); return NS_OK; } void -nsDOMDataTransfer::GetTransferables(nsISupportsArray** aArray) +nsDOMDataTransfer::GetTransferables(nsISupportsArray** aArray, + nsIDOMNode* aDragTarget) { + MOZ_ASSERT(aDragTarget); + *aArray = nsnull; nsCOMPtr<nsISupportsArray> transArray = do_CreateInstance("@mozilla.org/supports-array;1"); if (!transArray) return; + nsCOMPtr<nsINode> dragNode = do_QueryInterface(aDragTarget); + if (!dragNode) + return; + nsIDocument* doc = dragNode->GetCurrentDoc(); + if (!doc) + return; + nsILoadContext* loadContext = doc->GetLoadContext(); + bool added = false; PRUint32 count = mItems.Length(); for (PRUint32 i = 0; i < count; i++) { nsTArray<TransferItem>& item = mItems[i]; PRUint32 count = item.Length(); if (!count) continue; nsCOMPtr<nsITransferable> transferable = do_CreateInstance("@mozilla.org/widget/transferable;1"); if (!transferable) return; + transferable->Init(loadContext); for (PRUint32 f = 0; f < count; f++) { TransferItem& formatitem = item[f]; if (!formatitem.mData) // skip empty items continue; PRUint32 length; nsCOMPtr<nsISupports> convertedData;
--- a/content/events/src/nsDOMDataTransfer.h +++ b/content/events/src/nsDOMDataTransfer.h @@ -92,17 +92,18 @@ public: } // a readonly dataTransfer cannot have new data added or existing data removed. // Only the dropEffect and effectAllowed may be modified. void SetReadOnly() { mReadOnly = true; } // converts the data into an array of nsITransferable objects to be used for // drag and drop or clipboard operations. - void GetTransferables(nsISupportsArray** transferables); + void GetTransferables(nsISupportsArray** transferables, + nsIDOMNode* aDragTarget); // converts the data in the variant to an nsISupportString if possible or // an nsISupports or null otherwise. bool ConvertFromVariant(nsIVariant* aVariant, nsISupports** aSupports, PRUint32* aLength); // clears all of the data
--- a/content/events/src/nsEventStateManager.cpp +++ b/content/events/src/nsEventStateManager.cpp @@ -2312,17 +2312,17 @@ nsEventStateManager::DoDefaultDragStart( nsIDragService::DRAGDROP_ACTION_MOVE | nsIDragService::DRAGDROP_ACTION_LINK; // get any custom drag image that was set PRInt32 imageX, imageY; nsIDOMElement* dragImage = aDataTransfer->GetDragImage(&imageX, &imageY); nsCOMPtr<nsISupportsArray> transArray; - aDataTransfer->GetTransferables(getter_AddRefs(transArray)); + aDataTransfer->GetTransferables(getter_AddRefs(transArray), dragTarget); if (!transArray) return false; // XXXndeakin don't really want to create a new drag DOM event // here, but we need something to pass to the InvokeDragSession // methods. nsCOMPtr<nsIDOMEvent> domEvent; NS_NewDOMDragEvent(getter_AddRefs(domEvent), aPresContext, aDragEvent);
--- a/content/html/content/src/nsGenericHTMLElement.cpp +++ b/content/html/content/src/nsGenericHTMLElement.cpp @@ -4281,8 +4281,46 @@ nsGenericHTMLElement::GetProperties(nsID properties = new HTMLPropertiesCollection(this); NS_ADDREF(properties); SetProperty(nsGkAtoms::microdataProperties, properties, nsIDOMHTMLPropertiesCollectionDestructor); } NS_ADDREF(*aReturn = properties); return NS_OK; } +nsSize +nsGenericHTMLElement::GetWidthHeightForImage(imgIRequest *aImageRequest) +{ + nsSize size(0,0); + + nsIFrame* frame = GetPrimaryFrame(Flush_Layout); + + if (frame) { + size = frame->GetContentRect().Size(); + + size.width = nsPresContext::AppUnitsToIntCSSPixels(size.width); + size.height = nsPresContext::AppUnitsToIntCSSPixels(size.height); + } else { + const nsAttrValue* value; + nsCOMPtr<imgIContainer> image; + if (aImageRequest) { + aImageRequest->GetImage(getter_AddRefs(image)); + } + + if ((value = GetParsedAttr(nsGkAtoms::width)) && + value->Type() == nsAttrValue::eInteger) { + size.width = value->GetIntegerValue(); + } else if (image) { + image->GetWidth(&size.width); + } + + if ((value = GetParsedAttr(nsGkAtoms::height)) && + value->Type() == nsAttrValue::eInteger) { + size.height = value->GetIntegerValue(); + } else if (image) { + image->GetHeight(&size.height); + } + } + + NS_ASSERTION(size.width >= 0, "negative width"); + NS_ASSERTION(size.height >= 0, "negative height"); + return size; +}
--- a/content/html/content/src/nsGenericHTMLElement.h +++ b/content/html/content/src/nsGenericHTMLElement.h @@ -142,16 +142,21 @@ public: nsresult GetContentEditable(nsAString& aContentEditable); nsresult GetIsContentEditable(bool* aContentEditable); nsresult SetContentEditable(const nsAString &aContentEditable); nsresult GetDataset(nsIDOMDOMStringMap** aDataset); // Callback for destructor of of dataset to ensure to null out weak pointer. nsresult ClearDataset(); nsresult GetContextMenu(nsIDOMHTMLMenuElement** aContextMenu); + /** + * Get width and height, using given image request if attributes are unset. + */ + nsSize GetWidthHeightForImage(imgIRequest *aImageRequest); + protected: nsresult GetMarkup(bool aIncludeSelf, nsAString& aMarkup); public: // Implementation for nsIContent virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, nsIContent* aBindingParent, bool aCompileEventHandlers);
--- a/content/html/content/src/nsHTMLImageElement.cpp +++ b/content/html/content/src/nsHTMLImageElement.cpp @@ -191,89 +191,42 @@ nsHTMLImageElement::GetX(PRInt32* aX) NS_IMETHODIMP nsHTMLImageElement::GetY(PRInt32* aY) { *aY = GetXY().y; return NS_OK; } -nsSize -nsHTMLImageElement::GetWidthHeight() -{ - nsSize size(0,0); - - nsIFrame* frame = GetPrimaryFrame(Flush_Layout); - - if (frame) { - size = frame->GetContentRect().Size(); - - size.width = nsPresContext::AppUnitsToIntCSSPixels(size.width); - size.height = nsPresContext::AppUnitsToIntCSSPixels(size.height); - } else { - const nsAttrValue* value; - nsCOMPtr<imgIContainer> image; - if (mCurrentRequest) { - mCurrentRequest->GetImage(getter_AddRefs(image)); - } - - if ((value = GetParsedAttr(nsGkAtoms::width)) && - value->Type() == nsAttrValue::eInteger) { - size.width = value->GetIntegerValue(); - } else if (image) { - image->GetWidth(&size.width); - } - - if ((value = GetParsedAttr(nsGkAtoms::height)) && - value->Type() == nsAttrValue::eInteger) { - size.height = value->GetIntegerValue(); - } else if (image) { - image->GetHeight(&size.height); - } - } - - NS_ASSERTION(size.width >= 0, "negative width"); - NS_ASSERTION(size.height >= 0, "negative height"); - return size; -} - NS_IMETHODIMP nsHTMLImageElement::GetHeight(PRUint32* aHeight) { - *aHeight = GetWidthHeight().height; + *aHeight = GetWidthHeightForImage(mCurrentRequest).height; return NS_OK; } NS_IMETHODIMP nsHTMLImageElement::SetHeight(PRUint32 aHeight) { - nsAutoString val; - val.AppendInt(aHeight); - - return nsGenericHTMLElement::SetAttr(kNameSpaceID_None, nsGkAtoms::height, - val, true); + return nsGenericHTMLElement::SetUnsignedIntAttr(nsGkAtoms::height, aHeight); } NS_IMETHODIMP nsHTMLImageElement::GetWidth(PRUint32* aWidth) { - *aWidth = GetWidthHeight().width; + *aWidth = GetWidthHeightForImage(mCurrentRequest).width; return NS_OK; } NS_IMETHODIMP nsHTMLImageElement::SetWidth(PRUint32 aWidth) { - nsAutoString val; - val.AppendInt(aWidth); - - return nsGenericHTMLElement::SetAttr(kNameSpaceID_None, nsGkAtoms::width, - val, true); + return nsGenericHTMLElement::SetUnsignedIntAttr(nsGkAtoms::width, aWidth); } bool nsHTMLImageElement::ParseAttribute(PRInt32 aNamespaceID, nsIAtom* aAttribute, const nsAString& aValue, nsAttrValue& aResult) {
--- a/content/html/content/src/nsHTMLImageElement.h +++ b/content/html/content/src/nsHTMLImageElement.h @@ -97,14 +97,13 @@ public: nsresult CopyInnerTo(nsGenericElement* aDest) const; void MaybeLoadImage(); virtual nsXPCClassInfo* GetClassInfo(); virtual nsIDOMNode* AsDOMNode() { return this; } protected: nsIntPoint GetXY(); - nsSize GetWidthHeight(); virtual void GetItemValueText(nsAString& text); virtual void SetItemValueText(const nsAString& text); }; #endif /* nsHTMLImageElement_h */
--- a/content/html/content/src/nsHTMLInputElement.cpp +++ b/content/html/content/src/nsHTMLInputElement.cpp @@ -854,16 +854,29 @@ NS_IMPL_STRING_ATTR(nsHTMLInputElement, //NS_IMPL_STRING_ATTR(nsHTMLInputElement, Value, value) NS_IMPL_UINT_ATTR_NON_ZERO_DEFAULT_VALUE(nsHTMLInputElement, Size, size, DEFAULT_COLS) NS_IMPL_STRING_ATTR(nsHTMLInputElement, Pattern, pattern) NS_IMPL_STRING_ATTR(nsHTMLInputElement, Placeholder, placeholder) NS_IMPL_ENUM_ATTR_DEFAULT_VALUE(nsHTMLInputElement, Type, type, kInputDefaultType->tag) NS_IMETHODIMP +nsHTMLInputElement::GetHeight(PRUint32 *aHeight) +{ + *aHeight = GetWidthHeightForImage(mCurrentRequest).height; + return NS_OK; +} + +NS_IMETHODIMP +nsHTMLInputElement::SetHeight(PRUint32 aHeight) +{ + return nsGenericHTMLElement::SetUnsignedIntAttr(nsGkAtoms::height, aHeight); +} + +NS_IMETHODIMP nsHTMLInputElement::GetIndeterminate(bool* aValue) { *aValue = mIndeterminate; return NS_OK; } nsresult nsHTMLInputElement::SetIndeterminateInternal(bool aValue, @@ -885,16 +898,29 @@ nsHTMLInputElement::SetIndeterminateInte NS_IMETHODIMP nsHTMLInputElement::SetIndeterminate(bool aValue) { return SetIndeterminateInternal(aValue, true); } NS_IMETHODIMP +nsHTMLInputElement::GetWidth(PRUint32 *aWidth) +{ + *aWidth = GetWidthHeightForImage(mCurrentRequest).width; + return NS_OK; +} + +NS_IMETHODIMP +nsHTMLInputElement::SetWidth(PRUint32 aWidth) +{ + return nsGenericHTMLElement::SetUnsignedIntAttr(nsGkAtoms::width, aWidth); +} + +NS_IMETHODIMP nsHTMLInputElement::GetValue(nsAString& aValue) { return GetValueInternal(aValue); } nsresult nsHTMLInputElement::GetValueInternal(nsAString& aValue) const {
--- a/content/html/content/test/forms/test_input_attributes_reflection.html +++ b/content/html/content/test/forms/test_input_attributes_reflection.html @@ -94,17 +94,22 @@ reflectBoolean({ // .formTarget reflectString({ element: document.createElement("input"), attribute: "formTarget", otherValues: [ "_blank", "_self", "_parent", "_top" ], }); -// TODO: height (non-negative integer) +// .height +reflectUnsignedInt({ + element: document.createElement("input"), + attribute: "height", + nonZero: false +}); // .indeterminate doesn't reflect a content attribute. // TODO: list (HTMLElement) // .max todo("max" in document.createElement("input"), "max isn't implemented yet"); @@ -199,17 +204,22 @@ todo("valueAsDate" in document.createEle // .valueAsNumber todo("valueAsNumber" in document.createElement("input"), "valueAsNumber isn't implemented yet"); // .selectedOption todo("selectedOption" in document.createElement("input"), "selectedOption isn't implemented yet"); -// TODO: width (non-negative integer) +// .width +reflectUnsignedInt({ + element: document.createElement("input"), + attribute: "width", + nonZero: false +}); // .willValidate doesn't reflect a content attribute. // .validity doesn't reflect a content attribute. // .validationMessage doesn't reflect a content attribute. // .labels doesn't reflect a content attribute. </script> </pre>
new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c86d9946bddc09c7edf803486d259385798cdcf0 GIT binary patch literal 299507 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%0Ai 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 YUVEL&b@b`u^AAN7S<OM8Wk&)32k}OdQ2+n{
--- a/dom/base/nsDOMClassInfo.cpp +++ b/dom/base/nsDOMClassInfo.cpp @@ -465,22 +465,17 @@ #include "nsIDOMMozTouchEvent.h" #include "nsIEventListenerService.h" #include "nsIFrameMessageManager.h" #include "mozilla/dom/Element.h" #include "nsHTMLSelectElement.h" #include "nsHTMLLegendElement.h" -#include "DOMSVGLengthList.h" -#include "DOMSVGNumberList.h" -#include "DOMSVGPathSegList.h" -#include "DOMSVGPointList.h" #include "DOMSVGStringList.h" -#include "DOMSVGTransformList.h" #include "mozilla/dom/indexedDB/IDBWrapperCache.h" #include "mozilla/dom/indexedDB/IDBFactory.h" #include "mozilla/dom/indexedDB/IDBFileHandle.h" #include "mozilla/dom/indexedDB/IDBRequest.h" #include "mozilla/dom/indexedDB/IDBDatabase.h" #include "mozilla/dom/indexedDB/IDBEvents.h" #include "mozilla/dom/indexedDB/IDBObjectStore.h" @@ -775,20 +770,20 @@ static nsDOMClassInfoData sClassInfoData NS_DEFINE_CLASSINFO_DATA(XMLDocument, nsDocumentSH, DOCUMENT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(DocumentType, nsNodeSH, NODE_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(DOMImplementation, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(DOMException, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(DOMTokenList, nsDOMTokenListSH, - ARRAY_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(DOMSettableTokenList, nsDOMTokenListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(DOMTokenList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(DOMSettableTokenList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(DocumentFragment, nsNodeSH, NODE_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Element, nsElementSH, ELEMENT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Attr, nsAttributeSH, NODE_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Text, nsNodeSH, NODE_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Comment, nsNodeSH, @@ -1257,24 +1252,24 @@ static nsDOMClassInfoData sClassInfoData NS_DEFINE_CLASSINFO_DATA(SVGAnimatedString, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGAnimatedTransformList, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGLength, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(SVGLengthList, nsSVGLengthListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(SVGLengthList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGMatrix, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGNumber, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(SVGNumberList, nsSVGNumberListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(SVGNumberList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegArcAbs, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegArcRel, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegClosePath, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegCurvetoCubicAbs, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) @@ -1299,36 +1294,36 @@ static nsDOMClassInfoData sClassInfoData NS_DEFINE_CLASSINFO_DATA(SVGPathSegLinetoHorizontalRel, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegLinetoRel, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegLinetoVerticalAbs, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegLinetoVerticalRel, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(SVGPathSegList, nsSVGPathSegListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(SVGPathSegList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegMovetoAbs, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPathSegMovetoRel, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPoint, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(SVGPointList, nsSVGPointListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(SVGPointList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGPreserveAspectRatio, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGRect, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGStringList, nsSVGStringListSH, ARRAY_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGTransform, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(SVGTransformList, nsSVGTransformListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(SVGTransformList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGZoomEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(HTMLCanvasElement, nsElementSH, ELEMENT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(CanvasRenderingContext2D, nsCanvasRenderingContextSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) @@ -1392,32 +1387,32 @@ static nsDOMClassInfoData sClassInfoData NS_DEFINE_CLASSINFO_DATA(XMLHttpRequest, nsEventTargetSH, EVENTTARGET_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(EventSource, nsEventTargetSH, EVENTTARGET_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(ClientRect, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(ClientRectList, nsClientRectListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(ClientRectList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(SVGForeignObjectElement, nsElementSH, ELEMENT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(XULCommandEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(CommandEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(OfflineResourceList, nsOfflineResourceListSH, ARRAY_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(FileList, nsFileListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(FileList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Blob, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(File, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(FileReader, nsEventTargetSH, EVENTTARGET_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(MozURLProperty, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) @@ -1573,18 +1568,18 @@ static nsDOMClassInfoData sClassInfoData DOM_DEFAULT_SCRIPTABLE_FLAGS | nsIXPCScriptable::WANT_ADDPROPERTY) NS_DEFINE_CLASSINFO_DATA(WebGLExtensionCompressedTextureS3TC, WebGLExtensionSH, DOM_DEFAULT_SCRIPTABLE_FLAGS | nsIXPCScriptable::WANT_ADDPROPERTY) NS_DEFINE_CLASSINFO_DATA(PaintRequest, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(PaintRequestList, nsPaintRequestListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(PaintRequestList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(ScrollAreaEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(PopStateEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(HashChangeEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(EventListenerInfo, nsDOMGenericSH, @@ -1632,18 +1627,18 @@ static nsDOMClassInfoData sClassInfoData DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(IDBVersionChangeEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(IDBOpenDBRequest, IDBEventTargetSH, IDBEVENTTARGET_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(Touch, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) - NS_DEFINE_CLASSINFO_DATA(TouchList, nsDOMTouchListSH, - ARRAY_SCRIPTABLE_FLAGS) + NS_DEFINE_CLASSINFO_DATA(TouchList, nsDOMGenericSH, + DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(TouchEvent, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(MozCSSKeyframeRule, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) NS_DEFINE_CLASSINFO_DATA(MozCSSKeyframesRule, nsDOMGenericSH, DOM_DEFAULT_SCRIPTABLE_FLAGS) @@ -8346,37 +8341,16 @@ nsStringListSH::GetStringAt(nsISupports list->GetLength(&length); NS_ASSERTION(PRUint32(aIndex) >= length, "Item should only return null for out-of-bounds access"); } #endif return rv; } -// DOMTokenList scriptable helper - -nsresult -nsDOMTokenListSH::GetStringAt(nsISupports *aNative, PRInt32 aIndex, - nsAString& aResult) -{ - nsCOMPtr<nsIDOMDOMTokenList> list(do_QueryInterface(aNative)); - NS_ENSURE_TRUE(list, NS_ERROR_UNEXPECTED); - - nsresult rv = list->Item(aIndex, aResult); -#ifdef DEBUG - if (DOMStringIsNull(aResult)) { - PRUint32 length = 0; - list->GetLength(&length); - NS_ASSERTION(PRUint32(aIndex) >= length, "Item should only return null for out-of-bounds access"); - } -#endif - return rv; -} - - // Named Array helper NS_IMETHODIMP nsNamedArraySH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsid id, PRUint32 flags, JSObject **objp, bool *_retval) { if ((!(JSRESOLVE_ASSIGNING & flags)) && JSID_IS_STRING(id) && @@ -10282,46 +10256,16 @@ nsCSSRuleListSH::GetItemAt(nsISupports * // pointer. That must be fixed, or we'll crash... NS_ABORT_IF_FALSE(list_qi == list, "Uh, fix QI!"); } #endif return list->GetItemAt(aIndex, aResult); } -// ClientRectList scriptable helper - -nsISupports* -nsClientRectListSH::GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult) -{ - nsClientRectList* list = nsClientRectList::FromSupports(aNative); - - return list->GetItemAt(aIndex); -} - -// PaintRequestList scriptable helper - -nsISupports* -nsPaintRequestListSH::GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult) -{ - nsPaintRequestList* list = nsPaintRequestList::FromSupports(aNative); - - return list->GetItemAt(aIndex); -} - -nsISupports* -nsDOMTouchListSH::GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult) -{ - nsDOMTouchList* list = static_cast<nsDOMTouchList*>(aNative); - return list->GetItemAt(aIndex); -} - #ifdef MOZ_XUL // TreeColumns helper nsISupports* nsTreeColumnsSH::GetItemAt(nsISupports *aNative, PRUint32 aIndex, nsWrapperCache **aCache, nsresult *aResult) { nsTreeColumns* columns = nsTreeColumns::FromSupports(aNative); @@ -10750,49 +10694,16 @@ nsOfflineResourceListSH::GetStringAt(nsI PRUint32 length = 0; list->GetMozLength(&length); NS_ASSERTION(PRUint32(aIndex) >= length, "MozItem should only return null for out-of-bounds access"); } #endif return rv; } -// nsFileListSH -nsISupports* -nsFileListSH::GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult) -{ - nsDOMFileList* list = nsDOMFileList::FromSupports(aNative); - - return list->GetItemAt(aIndex); -} - -// Template for SVGXXXList helpers -template<class ListInterfaceType, class ListType> nsISupports* -nsSVGListSH<ListInterfaceType, ListType>::GetItemAt(nsISupports *aNative, - PRUint32 aIndex, - nsWrapperCache **aCache, - nsresult *aResult) -{ - ListType* list = static_cast<ListType*>(static_cast<ListInterfaceType*>(aNative)); -#ifdef DEBUG - { - nsCOMPtr<ListInterfaceType> list_qi = do_QueryInterface(aNative); - - // If this assertion fires the QI implementation for the object in - // question doesn't use the nsIDOMSVGXXXList pointer as the nsISupports - // pointer. That must be fixed, or we'll crash... - NS_ABORT_IF_FALSE(list_qi == list, "Uh, fix QI!"); - } -#endif - - return list->GetItemAt(aIndex); -} - - // SVGStringList helper nsresult nsSVGStringListSH::GetStringAt(nsISupports *aNative, PRInt32 aIndex, nsAString& aResult) { if (aIndex < 0) { SetDOMStringToNull(aResult);
--- a/dom/base/nsDOMClassInfo.h +++ b/dom/base/nsDOMClassInfo.h @@ -1083,41 +1083,16 @@ public: static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) { return new nsStringListSH(aData); } }; -// DOMTokenList scriptable helper - -class nsDOMTokenListSH : public nsStringArraySH -{ -protected: - nsDOMTokenListSH(nsDOMClassInfoData* aData) : nsStringArraySH(aData) - { - } - - virtual ~nsDOMTokenListSH() - { - } - - virtual nsresult GetStringAt(nsISupports *aNative, PRInt32 aIndex, - nsAString& aResult); - -public: - - static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) - { - return new nsDOMTokenListSH(aData); - } -}; - - // MediaList helper class nsMediaListSH : public nsStringArraySH { protected: nsMediaListSH(nsDOMClassInfoData* aData) : nsStringArraySH(aData) { } @@ -1230,84 +1205,16 @@ protected: public: static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) { return new nsCSSRuleListSH(aData); } }; -// ClientRectList helper - -class nsClientRectListSH : public nsArraySH -{ -protected: - nsClientRectListSH(nsDOMClassInfoData* aData) : nsArraySH(aData) - { - } - - virtual ~nsClientRectListSH() - { - } - - virtual nsISupports* GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult); - -public: - static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) - { - return new nsClientRectListSH(aData); - } -}; - - -// PaintRequestList helper - -class nsPaintRequestListSH : public nsArraySH -{ -protected: - nsPaintRequestListSH(nsDOMClassInfoData* aData) : nsArraySH(aData) - { - } - - virtual ~nsPaintRequestListSH() - { - } - - virtual nsISupports* GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult); - -public: - static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) - { - return new nsPaintRequestListSH(aData); - } -}; - -class nsDOMTouchListSH : public nsArraySH -{ -protected: - nsDOMTouchListSH(nsDOMClassInfoData* aData) : nsArraySH(aData) - { - } - - virtual ~nsDOMTouchListSH() - { - } - - virtual nsISupports* GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult); - -public: - static nsIClassInfo* doCreate(nsDOMClassInfoData* aData) - { - return new nsDOMTouchListSH(aData); - } -}; - #ifdef MOZ_XUL // TreeColumns helper class nsTreeColumnsSH : public nsNamedArraySH { protected: nsTreeColumnsSH(nsDOMClassInfoData* aData) : nsNamedArraySH(aData) { @@ -1502,63 +1409,16 @@ protected: public: static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) { return new nsOfflineResourceListSH(aData); } }; -class nsFileListSH : public nsArraySH -{ -protected: - nsFileListSH(nsDOMClassInfoData *aData) : nsArraySH(aData) - { - } - - virtual ~nsFileListSH() - { - } - - virtual nsISupports* GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult); - -public: - static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) - { - return new nsFileListSH(aData); - } -}; - -// Template for SVGXXXList helpers - -template<class ListInterfaceType, class ListType> -class nsSVGListSH : public nsArraySH -{ -protected: - nsSVGListSH(nsDOMClassInfoData* aData) : nsArraySH(aData) - { - } - -public: - virtual nsISupports* GetItemAt(nsISupports *aNative, PRUint32 aIndex, - nsWrapperCache **aCache, nsresult *aResult); - - static nsIClassInfo *doCreate(nsDOMClassInfoData* aData) - { - return new nsSVGListSH(aData); - } -}; - -typedef nsSVGListSH<nsIDOMSVGLengthList, mozilla::DOMSVGLengthList> nsSVGLengthListSH; -typedef nsSVGListSH<nsIDOMSVGNumberList, mozilla::DOMSVGNumberList> nsSVGNumberListSH; -typedef nsSVGListSH<nsIDOMSVGPathSegList, mozilla::DOMSVGPathSegList> nsSVGPathSegListSH; -typedef nsSVGListSH<nsIDOMSVGPointList, mozilla::DOMSVGPointList> nsSVGPointListSH; -typedef nsSVGListSH<nsIDOMSVGTransformList, mozilla::DOMSVGTransformList> nsSVGTransformListSH; - // SVGStringList helper class nsSVGStringListSH : public nsStringArraySH { protected: nsSVGStringListSH(nsDOMClassInfoData* aData) : nsStringArraySH(aData) { }
--- a/dom/base/nsDOMWindowUtils.cpp +++ b/dom/base/nsDOMWindowUtils.cpp @@ -45,17 +45,17 @@ #include "nsDOMFile.h" #include "BasicLayers.h" #include "nsTArrayHelpers.h" #include "nsIDocShell.h" #include "nsIContentViewer.h" #include "nsIMarkupDocumentViewer.h" #include "nsClientRect.h" -#if defined(MOZ_X11) && defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_X11) && defined(MOZ_WIDGET_GTK) #include <gdk/gdk.h> #include <gdk/gdkx.h> #endif #include "Layers.h" #include "nsIIOService.h" #include "mozilla/dom/Element.h" @@ -208,18 +208,18 @@ nsDOMWindowUtils::Redraw(PRUint32 aCount if (rootFrame) { nsRect r(nsPoint(0, 0), rootFrame->GetSize()); PRIntervalTime iStart = PR_IntervalNow(); for (PRUint32 i = 0; i < aCount; i++) rootFrame->InvalidateWithFlags(r, nsIFrame::INVALIDATE_IMMEDIATE); -#if defined(MOZ_X11) && defined(MOZ_WIDGET_GTK2) - XSync(GDK_DISPLAY(), False); +#if defined(MOZ_X11) && defined(MOZ_WIDGET_GTK) + XSync(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), False); #endif *aDurationOut = PR_IntervalToMilliseconds(PR_IntervalNow() - iStart); return NS_OK; } } return NS_ERROR_FAILURE;
--- a/dom/base/nsGlobalWindow.h +++ b/dom/base/nsGlobalWindow.h @@ -335,16 +335,17 @@ public: virtual NS_HIDDEN_(bool) CanClose(); virtual NS_HIDDEN_(nsresult) ForceClose(); virtual NS_HIDDEN_(void) MaybeUpdateTouchState(); virtual NS_HIDDEN_(void) UpdateTouchState(); virtual NS_HIDDEN_(bool) DispatchCustomEvent(const char *aEventName); virtual NS_HIDDEN_(void) RefreshCompartmentPrincipal(); virtual NS_HIDDEN_(nsresult) SetFullScreenInternal(bool aIsFullScreen, bool aRequireTrust); + virtual NS_HIDDEN_(bool) IsPartOfApp(); // nsIDOMStorageIndexedDB NS_DECL_NSIDOMSTORAGEINDEXEDDB // nsIInterfaceRequestor NS_DECL_NSIINTERFACEREQUESTOR // Object Management @@ -540,23 +541,16 @@ public: void SizeOfIncludingThis(nsWindowSizes* aWindowSizes) const; void UnmarkGrayTimers(); void AddEventTargetObject(nsDOMEventTargetHelper* aObject); void RemoveEventTargetObject(nsDOMEventTargetHelper* aObject); - /** - * Returns if the window is part of an application. - * It will check for the window app state and its parents until a window has - * an app state different from |TriState_Unknown|. - */ - bool IsPartOfApp(); - protected: friend class HashchangeCallback; friend class nsBarProp; enum TriState { TriState_Unknown = -1, TriState_False, TriState_True
--- a/dom/base/nsJSEnvironment.cpp +++ b/dom/base/nsJSEnvironment.cpp @@ -2955,20 +2955,80 @@ nsJSContext::ShrinkGCBuffersNow() NS_TIME_FUNCTION_MIN(1.0); SAMPLE_LABEL("GC", "ShrinkGCBuffersNow"); KillShrinkGCBuffersTimer(); JS_ShrinkGCBuffers(nsJSRuntime::sRuntime); } -//Static +// Return true if any JSContext has a "global object" with a gray +// parent. The intent is to look for JS Object windows. We don't merge +// system compartments, so we don't use them to trigger merging CCs. +static bool +AnyGrayGlobalParent() +{ + if (!nsJSRuntime::sRuntime) { + return false; + } + JSContext *iter = nsnull; + JSContext *cx; + while ((cx = JS_ContextIterator(nsJSRuntime::sRuntime, &iter))) { + if (JSObject *global = JS_GetGlobalObject(cx)) { + if (JSObject *parent = js::GetObjectParent(global)) { + if (js::GCThingIsMarkedGray(parent) && + !js::IsSystemCompartment(js::GetGCThingCompartment(parent))) { + return true; + } + } + } + } + return false; +} + +static bool +DoMergingCC(bool aForced) +{ + // Don't merge too many times in a row, and do at least a minimum + // number of unmerged CCs in a row. + static const PRInt32 kMinConsecutiveUnmerged = 3; + static const PRInt32 kMaxConsecutiveMerged = 3; + + static PRInt32 sUnmergedNeeded = 0; + static PRInt32 sMergedInARow = 0; + + MOZ_ASSERT(0 <= sUnmergedNeeded <= kMinConsecutiveUnmerged); + MOZ_ASSERT(0 <= sMergedInARow <= kMaxConsecutiveMerged); + + if (sMergedInARow == kMaxConsecutiveMerged) { + MOZ_ASSERT(sUnmergedNeeded == 0); + sUnmergedNeeded = kMinConsecutiveUnmerged; + } + + if (sUnmergedNeeded > 0) { + sUnmergedNeeded--; + sMergedInARow = 0; + return false; + } + + if (!aForced && AnyGrayGlobalParent()) { + sMergedInARow++; + return true; + } else { + sMergedInARow = 0; + return false; + } + +} + +//static void nsJSContext::CycleCollectNow(nsICycleCollectorListener *aListener, - PRInt32 aExtraForgetSkippableCalls) + PRInt32 aExtraForgetSkippableCalls, + bool aForced) { if (!NS_IsMainThread()) { return; } if (sCCLockedOut) { // We're in the middle of an incremental GC; finish it first nsJSContext::GarbageCollectNow(js::gcreason::CC_FORCED, nsGCNormal, true); @@ -2990,18 +3050,20 @@ nsJSContext::CycleCollectNow(nsICycleCol } } for (PRInt32 i = 0; i < aExtraForgetSkippableCalls; ++i) { nsCycleCollector_forgetSkippable(); ++sCleanupsSinceLastGC; } + bool mergingCC = DoMergingCC(aForced); + nsCycleCollectorResults ccResults; - nsCycleCollector_collect(&ccResults, aListener); + nsCycleCollector_collect(mergingCC, &ccResults, aListener); sCCollectedWaitingForGC += ccResults.mFreedRefCounted + ccResults.mFreedGCed; // If we collected a substantial amount of cycles, poke the GC since more objects // might be unreachable now. if (sCCollectedWaitingForGC > 250) { PokeGC(js::gcreason::CC_WAITING); } @@ -3019,31 +3081,36 @@ nsJSContext::CycleCollectNow(nsICycleCol if (sPostGCEventsToConsole) { PRTime delta = 0; if (sFirstCollectionTime) { delta = now - sFirstCollectionTime; } else { sFirstCollectionTime = now; } + nsCString mergeMsg; + if (mergingCC) { + mergeMsg.AssignLiteral(" merged"); + } + nsCString gcMsg; if (ccResults.mForcedGC) { gcMsg.AssignLiteral(", forced a GC"); } NS_NAMED_MULTILINE_LITERAL_STRING(kFmt, - NS_LL("CC(T+%.1f) duration: %llums, suspected: %lu, visited: %lu RCed and %lu GCed, collected: %lu RCed and %lu GCed (%lu waiting for GC)%s\n") + NS_LL("CC(T+%.1f) duration: %llums, suspected: %lu, visited: %lu RCed and %lu%s GCed, collected: %lu RCed and %lu GCed (%lu waiting for GC)%s\n") NS_LL("ForgetSkippable %lu times before CC, min: %lu ms, max: %lu ms, avg: %lu ms, total: %lu ms, removed: %lu")); nsString msg; PRUint32 cleanups = sForgetSkippableBeforeCC ? sForgetSkippableBeforeCC : 1; sMinForgetSkippableTime = (sMinForgetSkippableTime == PR_UINT32_MAX) ? 0 : sMinForgetSkippableTime; msg.Adopt(nsTextFormatter::smprintf(kFmt.get(), double(delta) / PR_USEC_PER_SEC, (now - start) / PR_USEC_PER_MSEC, suspected, - ccResults.mVisitedRefCounted, ccResults.mVisitedGCed, + ccResults.mVisitedRefCounted, ccResults.mVisitedGCed, mergeMsg.get(), ccResults.mFreedRefCounted, ccResults.mFreedGCed, sCCollectedWaitingForGC, gcMsg.get(), sForgetSkippableBeforeCC, sMinForgetSkippableTime / PR_USEC_PER_MSEC, sMaxForgetSkippableTime / PR_USEC_PER_MSEC, (sTotalForgetSkippableTime / cleanups) / PR_USEC_PER_MSEC, sTotalForgetSkippableTime / PR_USEC_PER_MSEC, @@ -3186,17 +3253,17 @@ CCTimerFired(nsITimer *aTimer, void *aCl if (ShouldTriggerCC(nsCycleCollector_suspectedCount())) { // Our efforts to avoid a CC have failed, so we return to let the // timer fire once more to trigger a CC. return; } } else { // We are in the final timer fire and still meet the conditions for // triggering a CC. - nsJSContext::CycleCollectNow(); + nsJSContext::CycleCollectNow(nsnull, 0, false); } } else if ((sPreviousSuspectedCount + 100) <= suspected) { // Only do a forget skippable if there are more than a few new objects. TimerFireForgetSkippable(suspected, false); } if (isLateTimerFire) { // We have either just run the CC or decided we don't want to run the CC
--- a/dom/base/nsJSEnvironment.h +++ b/dom/base/nsJSEnvironment.h @@ -148,17 +148,18 @@ public: static void GarbageCollectNow(js::gcreason::Reason reason, PRUint32 aGckind, bool aGlobal); static void ShrinkGCBuffersNow(); // If aExtraForgetSkippableCalls is -1, forgetSkippable won't be // called even if the previous collection was GC. static void CycleCollectNow(nsICycleCollectorListener *aListener = nsnull, - PRInt32 aExtraForgetSkippableCalls = 0); + PRInt32 aExtraForgetSkippableCalls = 0, + bool aForced = true); static void PokeGC(js::gcreason::Reason aReason, int aDelay = 0); static void KillGCTimer(); static void PokeShrinkGCBuffers(); static void KillShrinkGCBuffersTimer(); static void MaybePokeCC();
--- a/dom/base/nsPIDOMWindow.h +++ b/dom/base/nsPIDOMWindow.h @@ -587,16 +587,23 @@ public: virtual bool DispatchCustomEvent(const char *aEventName) = 0; /** * Notify the active inner window that the document principal may have changed * and that the compartment principal needs to be updated. */ virtual void RefreshCompartmentPrincipal() = 0; + /** + * Returns if the window is part of an application. + * It will check for the window app state and its parents until a window has + * an app state different from |TriState_Unknown|. + */ + virtual bool IsPartOfApp() = 0; + protected: // The nsPIDOMWindow constructor. The aOuterWindow argument should // be null if and only if the created window itself is an outer // window. In all other cases aOuterWindow should be the outer // window for the inner window that is being created. nsPIDOMWindow(nsPIDOMWindow *aOuterWindow); ~nsPIDOMWindow();
--- a/dom/bindings/TypedArray.h +++ b/dom/bindings/TypedArray.h @@ -39,17 +39,25 @@ template<typename T, typename U, uint32_t GetLength(JSObject*, JSContext*), JSObject* CreateNew(JSContext*, uint32_t)> struct TypedArray : public TypedArray_base<T,U,GetData,GetLength> { TypedArray(JSContext* cx, JSObject* obj) : TypedArray_base<T,U,GetData,GetLength>(cx, obj) {} static inline JSObject* - Create(JSContext* cx, uint32_t length, T* data = NULL) { + Create(JSContext* cx, nsWrapperCache* creator, uint32_t length, + T* data = NULL) { + JSObject* creatorWrapper; + JSAutoEnterCompartment ac; + if (creator && (creatorWrapper = creator->GetWrapperPreserveColor())) { + if (!ac.enter(cx, creatorWrapper)) { + return NULL; + } + } JSObject* obj = CreateNew(cx, length); if (!obj) { return NULL; } if (data) { T* buf = static_cast<T*>(GetData(obj, cx)); memcpy(buf, data, length*sizeof(T)); } @@ -59,17 +67,17 @@ struct TypedArray : public TypedArray_ba typedef TypedArray<int8_t, int8_t, JS_GetInt8ArrayData, JS_GetTypedArrayLength, JS_NewInt8Array> Int8Array; typedef TypedArray<uint8_t, uint8_t, JS_GetUint8ArrayData, JS_GetTypedArrayLength, JS_NewUint8Array> Uint8Array; typedef TypedArray<uint8_t, uint8_t, JS_GetUint8ClampedArrayData, - JS_GetTypedArrayLength, JS_NewUint8Array> + JS_GetTypedArrayLength, JS_NewUint8ClampedArray> Uint8ClampedArray; typedef TypedArray<int16_t, int16_t, JS_GetInt16ArrayData, JS_GetTypedArrayLength, JS_NewInt16Array> Int16Array; typedef TypedArray<uint16_t, uint16_t, JS_GetUint16ArrayData, JS_GetTypedArrayLength, JS_NewUint16Array> Uint16Array; typedef TypedArray<int32_t, int32_t, JS_GetInt32ArrayData,
--- a/dom/devicestorage/Makefile.in +++ b/dom/devicestorage/Makefile.in @@ -27,14 +27,16 @@ EXPORTS = \ LOCAL_INCLUDES = \ -I$(topsrcdir)/dom/base \ -I$(topsrcdir)/dom/ipc \ -I$(topsrcdir)/content/base/src \ -I$(topsrcdir)/content/events/src \ $(NULL) +TEST_DIRS += test + include $(topsrcdir)/config/config.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk include $(topsrcdir)/config/rules.mk DEFINES += -D_IMPL_NS_LAYOUT
--- a/dom/devicestorage/nsDeviceStorage.cpp +++ b/dom/devicestorage/nsDeviceStorage.cpp @@ -23,44 +23,52 @@ using namespace mozilla::dom; #include "nsDirectoryServiceDefs.h" class DeviceStorageFile MOZ_FINAL : public nsISupports { public: nsCOMPtr<nsIFile> mFile; nsString mPath; + bool mEditable; DeviceStorageFile(nsIFile* aFile, const nsAString& aPath) : mPath(aPath) + , mEditable(false) { NS_ASSERTION(aFile, "Must not create a DeviceStorageFile with a null nsIFile"); // always take a clone nsCOMPtr<nsIFile> file; aFile->Clone(getter_AddRefs(mFile)); AppendRelativePath(); NormalizeFilePath(); } DeviceStorageFile(nsIFile* aFile) + : mEditable(false) { NS_ASSERTION(aFile, "Must not create a DeviceStorageFile with a null nsIFile"); // always take a clone nsCOMPtr<nsIFile> file; aFile->Clone(getter_AddRefs(mFile)); } void setPath(const nsAString& aPath) { mPath.Assign(aPath); NormalizeFilePath(); } + void + setEditable(bool aEditable) { + mEditable = aEditable; + } + NS_DECL_ISUPPORTS // we want to make sure that the names of file can't reach // outside of the type of storage the user asked for. bool isSafePath() { nsAString::const_iterator start, end; @@ -215,22 +223,22 @@ nsDOMDeviceStorage::SetRootFileForType(c dirService->Get(NS_APP_USER_PROFILE_50_DIR, NS_GET_IID(nsIFile), getter_AddRefs(f)); } } mFile = f; return typeResult; } -static jsval nsIFileToJsval(nsPIDOMWindow* aWindow, DeviceStorageFile* aFile, bool aEditable) +static jsval nsIFileToJsval(nsPIDOMWindow* aWindow, DeviceStorageFile* aFile) { NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); NS_ASSERTION(aWindow, "Null Window"); - if (aEditable) { + if (aFile->mEditable) { // TODO - needs janv's file handle support. return JSVAL_NULL; } if (aFile == nsnull) { return JSVAL_NULL; } @@ -304,29 +312,27 @@ class nsDOMDeviceStorageCursor public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_NSICONTENTPERMISSIONREQUEST NS_DECL_NSIDOMDEVICESTORAGECURSOR nsDOMDeviceStorageCursor(nsIDOMWindow* aWindow, nsIURI* aURI, DeviceStorageFile* aFile, - bool aEditable, PRUint64 aSince); private: ~nsDOMDeviceStorageCursor(); protected: nsTArray<nsRefPtr<DeviceStorageFile> > mFiles; bool mOkToCallContinue; nsRefPtr<DeviceStorageFile> mFile; nsCOMPtr<nsIURI> mURI; - bool mEditable; PRUint64 mSince; // to access mFiles friend class InitCursorEvent; friend class ContinueCursorEvent; }; class DeviceStorageCursorRequest MOZ_FINAL : public nsIContentPermissionRequest @@ -448,17 +454,17 @@ public: nsDOMDeviceStorageCursor* cursor = static_cast<nsDOMDeviceStorageCursor*>(mRequest.get()); if (cursor->mFiles.Length() == 0) { val = JSVAL_NULL; } else { nsRefPtr<DeviceStorageFile> file = cursor->mFiles[0]; cursor->mFiles.RemoveElementAt(0); - val = nsIFileToJsval(cursor->GetOwner(), file, cursor->mEditable); + val = nsIFileToJsval(cursor->GetOwner(), file); cursor->mOkToCallContinue = true; } mRequest->FireSuccess(val); mRequest = nsnull; return NS_OK; } @@ -573,23 +579,21 @@ NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_ NS_INTERFACE_MAP_END_INHERITING(DOMRequest) NS_IMPL_ADDREF_INHERITED(nsDOMDeviceStorageCursor, DOMRequest) NS_IMPL_RELEASE_INHERITED(nsDOMDeviceStorageCursor, DOMRequest) nsDOMDeviceStorageCursor::nsDOMDeviceStorageCursor(nsIDOMWindow* aWindow, nsIURI* aURI, DeviceStorageFile* aFile, - bool aEditable, PRUint64 aSince) : DOMRequest(aWindow) , mOkToCallContinue(false) , mFile(aFile) , mURI(aURI) - , mEditable(aEditable) , mSince(aSince) { } nsDOMDeviceStorageCursor::~nsDOMDeviceStorageCursor() { } @@ -672,19 +676,18 @@ nsDOMDeviceStorageCursor::Continue() mOkToCallContinue = false; return NS_OK; } class PostResultEvent : public nsRunnable { public: - PostResultEvent(nsRefPtr<DOMRequest>& aRequest, bool aEditable, DeviceStorageFile* aFile) - : mEditable(aEditable) - , mFile(aFile) + PostResultEvent(nsRefPtr<DOMRequest>& aRequest, DeviceStorageFile* aFile) + : mFile(aFile) { mRequest.swap(aRequest); } PostResultEvent(nsRefPtr<DOMRequest>& aRequest, const nsAString & aPath) : mPath(aPath) { mRequest.swap(aRequest); @@ -693,28 +696,27 @@ public: ~PostResultEvent() {} NS_IMETHOD Run() { NS_ASSERTION(NS_IsMainThread(), "Wrong thread!"); jsval result = JSVAL_NULL; if (mFile) { - result = nsIFileToJsval(mRequest->GetOwner(), mFile, mEditable); + result = nsIFileToJsval(mRequest->GetOwner(), mFile); } else { result = StringToJsval(mRequest->GetOwner(), mPath); } mRequest->FireSuccess(result); mRequest = nsnull; return NS_OK; } private: - bool mEditable; nsRefPtr<DeviceStorageFile> mFile; nsString mPath; nsRefPtr<DOMRequest> mRequest; }; class WriteFileEvent : public nsRunnable { public: @@ -803,56 +805,51 @@ public: return NS_OK; } private: nsCOMPtr<nsIDOMBlob> mBlob; nsRefPtr<DeviceStorageFile> mFile; nsRefPtr<DOMRequest> mRequest; }; - - class ReadFileEvent : public nsRunnable { public: ReadFileEvent(DeviceStorageFile* aFile, - bool aEditable, nsRefPtr<DOMRequest>& aRequest) : mFile(aFile) - , mEditable(aEditable) { mRequest.swap(aRequest); } ~ReadFileEvent() {} NS_IMETHOD Run() { NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!"); nsRefPtr<nsRunnable> r; - if (!mEditable) { + if (!mFile->mEditable) { bool check = false; mFile->mFile->Exists(&check); if (!check) { r = new PostErrorEvent(mRequest, POST_ERROR_EVENT_FILE_DOES_NOT_EXIST, mFile); } } if (!r) { - r = new PostResultEvent(mRequest, mEditable, mFile); + r = new PostResultEvent(mRequest, mFile); } NS_DispatchToMainThread(r); return NS_OK; } private: nsRefPtr<DeviceStorageFile> mFile; - bool mEditable; nsRefPtr<DOMRequest> mRequest; }; class DeleteFileEvent : public nsRunnable { public: DeleteFileEvent(DeviceStorageFile* aFile, nsRefPtr<DOMRequest>& aRequest) @@ -897,24 +894,22 @@ public: DEVICE_STORAGE_REQUEST_WRITE, DEVICE_STORAGE_REQUEST_DELETE }; DeviceStorageRequest(const PRInt32 aRequestType, nsPIDOMWindow *aWindow, nsIURI *aURI, DeviceStorageFile *aFile, DOMRequest* aRequest, - bool aEditable, nsIDOMBlob *aBlob = nsnull) : mRequestType(aRequestType) , mWindow(aWindow) , mURI(aURI) , mFile(aFile) , mRequest(aRequest) - , mEditable(aEditable) , mBlob(aBlob) {} NS_DECL_CYCLE_COLLECTING_ISUPPORTS NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(DeviceStorageRequest, nsIContentPermissionRequest) NS_IMETHOD Run() { if (mozilla::Preferences::GetBool("device.storage.prompt.testing", false)) { @@ -977,17 +972,17 @@ public: return NS_ERROR_FAILURE; } r = new WriteFileEvent(mBlob, mFile, mRequest); break; } case DEVICE_STORAGE_REQUEST_READ: { - r = new ReadFileEvent(mFile, mEditable, mRequest); + r = new ReadFileEvent(mFile, mRequest); break; } case DEVICE_STORAGE_REQUEST_DELETE: { r = new DeleteFileEvent(mFile, mRequest); break; } } @@ -1002,17 +997,16 @@ public: private: PRInt32 mRequestType; nsCOMPtr<nsPIDOMWindow> mWindow; nsCOMPtr<nsIURI> mURI; nsRefPtr<DeviceStorageFile> mFile; nsRefPtr<DOMRequest> mRequest; - bool mEditable; nsCOMPtr<nsIDOMBlob> mBlob; }; NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeviceStorageRequest) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIContentPermissionRequest) NS_INTERFACE_MAP_ENTRY(nsIContentPermissionRequest) NS_INTERFACE_MAP_ENTRY(nsIRunnable) NS_INTERFACE_MAP_END @@ -1160,17 +1154,17 @@ nsDOMDeviceStorage::AddNamed(nsIDOMBlob nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(mFile, aPath); if (!dsf->isSafePath()) { r = new PostErrorEvent(request, POST_ERROR_EVENT_ILLEGAL_FILE_NAME, dsf); } else { r = new DeviceStorageRequest(DeviceStorageRequest::DEVICE_STORAGE_REQUEST_WRITE, - win, mURI, dsf, request, true, aBlob); + win, mURI, dsf, request, aBlob); } NS_DispatchToMainThread(r); return NS_OK; } NS_IMETHODIMP nsDOMDeviceStorage::Get(const JS::Value & aPath, JSContext* aCx, @@ -1210,22 +1204,23 @@ nsDOMDeviceStorage::GetInternal(const JS r = new PostErrorEvent(request, POST_ERROR_EVENT_NON_STRING_TYPE_UNSUPPORTED, dsf); NS_DispatchToMainThread(r); return NS_OK; } nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(mFile, path); + dsf->setEditable(aEditable); if (!dsf->isSafePath()) { r = new PostErrorEvent(request, POST_ERROR_EVENT_ILLEGAL_FILE_NAME, dsf); } else { r = new DeviceStorageRequest(DeviceStorageRequest::DEVICE_STORAGE_REQUEST_READ, - win, mURI, dsf, request, aEditable); + win, mURI, dsf, request); } NS_DispatchToMainThread(r); return NS_OK; } NS_IMETHODIMP nsDOMDeviceStorage::Delete(const JS::Value & aPath, JSContext* aCx, nsIDOMDOMRequest * *_retval NS_OUTPARAM) { @@ -1250,17 +1245,17 @@ nsDOMDeviceStorage::Delete(const JS::Val nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(mFile, path); if (!dsf->isSafePath()) { r = new PostErrorEvent(request, POST_ERROR_EVENT_ILLEGAL_FILE_NAME, dsf); } else { r = new DeviceStorageRequest(DeviceStorageRequest::DEVICE_STORAGE_REQUEST_DELETE, - win, mURI, dsf, request, true); + win, mURI, dsf, request); } NS_DispatchToMainThread(r); return NS_OK; } NS_IMETHODIMP nsDOMDeviceStorage::Enumerate(const JS::Value & aName, const JS::Value & aOptions, @@ -1331,17 +1326,19 @@ nsDOMDeviceStorage::EnumerateInternal(co if (aArgc == 2 && (JSVAL_IS_VOID(aOptions) || aOptions.isNull() || !aOptions.isObject())) { return NS_ERROR_FAILURE; } since = ExtractDateFromOptions(aCx, aOptions); } nsRefPtr<DeviceStorageFile> dsf = new DeviceStorageFile(mFile, path); - nsRefPtr<nsDOMDeviceStorageCursor> cursor = new nsDOMDeviceStorageCursor(win, mURI, dsf, aEditable, since); + dsf->setEditable(aEditable); + + nsRefPtr<nsDOMDeviceStorageCursor> cursor = new nsDOMDeviceStorageCursor(win, mURI, dsf, since); nsRefPtr<DeviceStorageCursorRequest> r = new DeviceStorageCursorRequest(cursor); NS_ADDREF(*aRetval = cursor); if (mozilla::Preferences::GetBool("device.storage.prompt.testing", false)) { r->Allow(); return NS_OK; }
rename from dom/tests/mochitest/devicestorage/Makefile.in rename to dom/devicestorage/test/Makefile.in --- a/dom/tests/mochitest/devicestorage/Makefile.in +++ b/dom/devicestorage/test/Makefile.in @@ -1,17 +1,17 @@ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. -DEPTH = ../../../.. +DEPTH = ../../.. topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ -relativesrcdir = dom/tests/mochitest/devicestorage +relativesrcdir = dom/devicestorage/test/ include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/rules.mk _TEST_FILES = \ test_sanity.html \ test_basic.html \
rename from dom/tests/mochitest/devicestorage/devicestorage_common.js rename to dom/devicestorage/test/devicestorage_common.js
rename from dom/tests/mochitest/devicestorage/test_basic.html rename to dom/devicestorage/test/test_basic.html
rename from dom/tests/mochitest/devicestorage/test_dotdot.html rename to dom/devicestorage/test/test_dotdot.html
rename from dom/tests/mochitest/devicestorage/test_enumerate.html rename to dom/devicestorage/test/test_enumerate.html
rename from dom/tests/mochitest/devicestorage/test_enumerateMultipleContinue.html rename to dom/devicestorage/test/test_enumerateMultipleContinue.html
rename from dom/tests/mochitest/devicestorage/test_enumerateNoParam.html rename to dom/devicestorage/test/test_enumerateNoParam.html
rename from dom/tests/mochitest/devicestorage/test_enumerateOptions.html rename to dom/devicestorage/test/test_enumerateOptions.html
rename from dom/tests/mochitest/devicestorage/test_lastModificationFilter.html rename to dom/devicestorage/test/test_lastModificationFilter.html
rename from dom/tests/mochitest/devicestorage/test_overwrite.html rename to dom/devicestorage/test/test_overwrite.html
rename from dom/tests/mochitest/devicestorage/test_sanity.html rename to dom/devicestorage/test/test_sanity.html
--- a/dom/interfaces/core/nsIDOMElement.idl +++ b/dom/interfaces/core/nsIDOMElement.idl @@ -151,16 +151,22 @@ interface nsIDOMElement : nsIDOMNode readonly attribute long clientWidth; /** * The width in CSS pixels of the element's padding box. If the element is * scrollable, the scroll bars are included inside this height. */ readonly attribute long clientHeight; + /* The maximum offset that the element can be scrolled to + (i.e., the value that scrollLeft/scrollTop would be clamped to if they were + set to arbitrarily large values. */ + readonly attribute long scrollLeftMax; + readonly attribute long scrollTopMax; + // Selectors API /** * Returns whether this element would be selected by the given selector * string. * * See <http://dev.w3.org/2006/webapi/selectors-api2/#matchesselector> */
--- a/dom/interfaces/html/nsIDOMHTMLInputElement.idl +++ b/dom/interfaces/html/nsIDOMHTMLInputElement.idl @@ -15,17 +15,17 @@ interface nsIDOMValidityState; * * This interface is trying to follow the DOM Level 2 HTML specification: * http://www.w3.org/TR/DOM-Level-2-HTML/ * * with changes from the work-in-progress WHATWG HTML specification: * http://www.whatwg.org/specs/web-apps/current-work/ */ -[scriptable, uuid(05FEDF7E-3050-4143-AB97-B994F3CC9329)] +[scriptable, uuid(ac2e2b14-b987-452c-a071-5823b2406b85)] interface nsIDOMHTMLInputElement : nsIDOMHTMLElement { attribute DOMString accept; attribute DOMString alt; attribute DOMString autocomplete; attribute boolean autofocus; attribute boolean defaultChecked; @@ -35,32 +35,34 @@ interface nsIDOMHTMLInputElement : nsIDO attribute DOMString formAction; attribute DOMString formEnctype; attribute DOMString formMethod; attribute boolean formNoValidate; attribute DOMString formTarget; readonly attribute nsIDOMFileList files; + attribute unsigned long height; attribute boolean indeterminate; readonly attribute nsIDOMHTMLElement list; attribute long maxLength; attribute boolean multiple; attribute DOMString name; attribute DOMString pattern; attribute DOMString placeholder; attribute boolean readOnly; attribute boolean required; attribute DOMString align; attribute unsigned long size; + attribute unsigned long width; attribute DOMString src; attribute DOMString type; attribute DOMString defaultValue; attribute DOMString value; // The following lines are part of the constraint validation API, see: // http://www.whatwg.org/specs/web-apps/current-work/#the-constraint-validation-api
--- a/dom/ipc/ContentChild.cpp +++ b/dom/ipc/ContentChild.cpp @@ -1,15 +1,15 @@ /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* vim: set sw=4 ts=8 et tw=80 : */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK #include <gtk/gtk.h> #endif #ifdef MOZ_WIDGET_QT #include "nsQAppInstance.h" #endif #include "ContentChild.h" @@ -213,17 +213,17 @@ ContentChild::~ContentChild() { } bool ContentChild::Init(MessageLoop* aIOLoop, base::ProcessHandle aParentHandle, IPC::Channel* aChannel) { -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK // sigh gtk_init(NULL, NULL); #endif #ifdef MOZ_WIDGET_QT // sigh, seriously nsQAppInstance::AddRef(); #endif
--- a/dom/ipc/ContentParent.cpp +++ b/dom/ipc/ContentParent.cpp @@ -502,16 +502,17 @@ ContentParent::RecvSetClipboardText(cons do_CreateInstance(NS_SUPPORTS_STRING_CONTRACTID, &rv); NS_ENSURE_SUCCESS(rv, true); rv = dataWrapper->SetData(text); NS_ENSURE_SUCCESS(rv, true); nsCOMPtr<nsITransferable> trans = do_CreateInstance("@mozilla.org/widget/transferable;1", &rv); NS_ENSURE_SUCCESS(rv, true); + trans->Init(nsnull); // If our data flavor has already been added, this will fail. But we don't care trans->AddDataFlavor(kUnicodeMime); nsCOMPtr<nsISupports> nsisupportsDataWrapper = do_QueryInterface(dataWrapper); rv = trans->SetTransferData(kUnicodeMime, nsisupportsDataWrapper, @@ -526,16 +527,17 @@ bool ContentParent::RecvGetClipboardText(const PRInt32& whichClipboard, nsString* text) { nsresult rv; nsCOMPtr<nsIClipboard> clipboard(do_GetService(kCClipboardCID, &rv)); NS_ENSURE_SUCCESS(rv, true); nsCOMPtr<nsITransferable> trans = do_CreateInstance("@mozilla.org/widget/transferable;1", &rv); NS_ENSURE_SUCCESS(rv, true); + trans->Init(nsnull); clipboard->GetData(trans, whichClipboard); nsCOMPtr<nsISupports> tmp; PRUint32 len; rv = trans->GetTransferData(kUnicodeMime, getter_AddRefs(tmp), &len); if (NS_FAILED(rv)) return false;
--- a/dom/plugins/base/nsNPAPIPlugin.cpp +++ b/dom/plugins/base/nsNPAPIPlugin.cpp @@ -51,21 +51,23 @@ #ifdef MOZ_WIDGET_COCOA #include <Carbon/Carbon.h> #include <ApplicationServices/ApplicationServices.h> #include <OpenGL/OpenGL.h> #include "nsCocoaFeatures.h" #endif // needed for nppdf plugin -#ifdef MOZ_WIDGET_GTK2 +#if (MOZ_WIDGET_GTK) #include <gdk/gdk.h> #include <gdk/gdkx.h> +#if (MOZ_WIDGET_GTK == 2) #include "gtk2xtbin.h" #endif +#endif #ifdef XP_OS2 #define INCL_DOS #define INCL_DOSERRORS #include <os2.h> #endif #include "nsJSNPRuntime.h" @@ -2008,32 +2010,32 @@ NPError NP_CALLBACK if (NS_FAILED(res)) return NPERR_GENERIC_ERROR; *(NPBool*)result = offline; return NPERR_NO_ERROR; } case NPNVToolkit: { -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK *((NPNToolkitType*)result) = NPNVGtk2; #endif #ifdef MOZ_WIDGET_QT /* Fake toolkit so flash plugin works */ *((NPNToolkitType*)result) = NPNVGtk2; #endif if (*(NPNToolkitType*)result) return NPERR_NO_ERROR; return NPERR_GENERIC_ERROR; } case NPNVSupportsXEmbedBool: { -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK *(NPBool*)result = true; #elif defined(MOZ_WIDGET_QT) // Desktop Flash fail to initialize if browser does not support NPNVSupportsXEmbedBool // even when wmode!=windowed, lets return fake support fprintf(stderr, "Fake support for XEmbed plugins in Qt port\n"); *(NPBool*)result = true; #else *(NPBool*)result = false; @@ -2050,17 +2052,17 @@ NPError NP_CALLBACK case NPNVPluginElementNPObject: { *(NPObject **)result = _getpluginelement(npp); return *(NPObject **)result ? NPERR_NO_ERROR : NPERR_GENERIC_ERROR; } case NPNVSupportsWindowless: { #if defined(XP_WIN) || defined(XP_MACOSX) || \ - (defined(MOZ_X11) && (defined(MOZ_WIDGET_GTK2) || defined(MOZ_WIDGET_QT))) + (defined(MOZ_X11) && (defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT))) *(NPBool*)result = true; #else *(NPBool*)result = false; #endif return NPERR_NO_ERROR; } case NPNVprivateModeBool: {
--- a/dom/plugins/base/nsPluginInstanceOwner.cpp +++ b/dom/plugins/base/nsPluginInstanceOwner.cpp @@ -729,17 +729,17 @@ NS_IMETHODIMP nsPluginInstanceOwner::Get nsresult rv = vm->GetRootWidget(getter_AddRefs(widget)); if (widget) { *pvalue = (void*)widget->GetNativeData(NS_NATIVE_WINDOW); } else { NS_ASSERTION(widget, "couldn't get doc's widget in getting doc's window handle"); } return rv; -#elif (defined(MOZ_WIDGET_GTK2) || defined(MOZ_WIDGET_QT)) && defined(MOZ_X11) +#elif (defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT)) && defined(MOZ_X11) // X11 window managers want the toplevel window for WM_TRANSIENT_FOR. nsIWidget* win = mObjectFrame->GetNearestWidget(); if (!win) return NS_ERROR_FAILURE; *static_cast<Window*>(value) = (long unsigned int)win->GetNativeData(NS_NATIVE_SHAREABLE_WINDOW); return NS_OK; #else return NS_ERROR_NOT_IMPLEMENTED; @@ -2427,17 +2427,17 @@ nsEventStatus nsPluginInstanceOwner::Pro nsIntPoint pluginPoint(presContext->AppUnitsToDevPixels(appPoint.x), presContext->AppUnitsToDevPixels(appPoint.y)); const nsMouseEvent& mouseEvent = static_cast<const nsMouseEvent&>(anEvent); // Get reference point relative to screen: nsIntPoint rootPoint(-1,-1); if (widget) rootPoint = anEvent.refPoint + widget->WidgetToScreenOffset(); -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK Window root = GDK_ROOT_WINDOW(); #elif defined(MOZ_WIDGET_QT) Window root = RootWindowOfScreen(DefaultScreenOfDisplay(mozilla::DefaultXDisplay())); #else Window root = None; // Could XQueryTree, but this is not important. #endif switch (anEvent.message) @@ -2515,17 +2515,17 @@ nsEventStatus nsPluginInstanceOwner::Pro break; //XXX case NS_MOUSE_SCROLL_EVENT: not received. case NS_KEY_EVENT: if (anEvent.pluginEvent) { XKeyEvent &event = pluginEvent.xkey; -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK event.root = GDK_ROOT_WINDOW(); event.time = anEvent.time; const GdkEventKey* gdkEvent = static_cast<const GdkEventKey*>(anEvent.pluginEvent); event.keycode = gdkEvent->hardware_keycode; event.state = gdkEvent->state; switch (anEvent.message) { @@ -3041,27 +3041,21 @@ void nsPluginInstanceOwner::Paint(gfxCon if (!transparent) rendererFlags |= Renderer::DRAW_IS_OPAQUE; // Renderer::Draw() draws a rectangle with top-left at the aContext origin. gfxContextAutoSaveRestore autoSR(aContext); aContext->Translate(pluginRect.TopLeft()); Renderer renderer(window, this, pluginSize, pluginDirtyRect); -#ifdef MOZ_WIDGET_GTK2 - // This is the visual used by the widgets, 24-bit if available. - GdkVisual* gdkVisual = gdk_rgb_get_visual(); - Visual* visual = gdk_x11_visual_get_xvisual(gdkVisual); - Screen* screen = - gdk_x11_screen_get_xscreen(gdk_visual_get_screen(gdkVisual)); -#else + Display* dpy = mozilla::DefaultXDisplay(); Screen* screen = DefaultScreenOfDisplay(dpy); Visual* visual = DefaultVisualOfScreen(screen); -#endif + renderer.Draw(aContext, nsIntSize(window->width, window->height), rendererFlags, screen, visual, nsnull); } nsresult nsPluginInstanceOwner::Renderer::DrawWithXlib(gfxXlibSurface* xsurface, nsIntPoint offset, nsIntRect *clipRects, PRUint32 numClipRects)
--- a/dom/plugins/base/nsPluginNativeWindowGtk2.cpp +++ b/dom/plugins/base/nsPluginNativeWindowGtk2.cpp @@ -11,16 +11,17 @@ #include "nsDebug.h" #include "nsPluginNativeWindow.h" #include "npapi.h" #include <gtk/gtk.h> #include <gdk/gdkx.h> #include <gdk/gdk.h> +#include "gtk2compat.h" #include "gtk2xtbin.h" class nsPluginNativeWindowGtk2 : public nsPluginNativeWindow { public: nsPluginNativeWindowGtk2(); virtual ~nsPluginNativeWindowGtk2(); virtual nsresult CallSetWindow(nsRefPtr<nsNPAPIPluginInstance> &aPluginInstance); @@ -142,18 +143,18 @@ nsresult nsPluginNativeWindowGtk2::CallS mPluginInstance->SetWindow(nsnull); SetPluginInstance(aPluginInstance); return NS_OK; } nsresult nsPluginNativeWindowGtk2::CreateXEmbedWindow() { NS_ASSERTION(!mSocketWidget,"Already created a socket widget!"); - - GdkWindow *parent_win = gdk_window_lookup((XID)window); + GdkDisplay *display = gdk_display_get_default(); + GdkWindow *parent_win = gdk_x11_window_lookup_for_display(display, (XID)window); mSocketWidget = gtk_socket_new(); //attach the socket to the container widget gtk_widget_set_parent_window(mSocketWidget, parent_win); // Make sure to handle the plug_removed signal. If we don't the // socket will automatically be destroyed when the plug is // removed, which means we're destroying it more than once. @@ -174,38 +175,47 @@ nsresult nsPluginNativeWindowGtk2::Creat gtk_container_add(container, mSocketWidget); gtk_widget_realize(mSocketWidget); // The GtkSocket has a visible window, but the plugin's XEmbed plug will // cover this window. Normally GtkSockets let the X server paint their // background and this would happen immediately (before the plug is // created). Setting the background to None prevents the server from // painting this window, avoiding flicker. - gdk_window_set_back_pixmap(mSocketWidget->window, NULL, FALSE); + // TODO GTK3 +#if (MOZ_WIDGET_GTK == 2) + gdk_window_set_back_pixmap(gtk_widget_get_window(mSocketWidget), NULL, FALSE); +#endif // Resize before we show SetAllocation(); gtk_widget_show(mSocketWidget); gdk_flush(); window = (void*)gtk_socket_get_id(GTK_SOCKET(mSocketWidget)); // Fill out the ws_info structure. // (The windowless case is done in nsObjectFrame.cpp.) GdkWindow *gdkWindow = gdk_window_lookup((XID)window); if(!gdkWindow) return NS_ERROR_FAILURE; mWsInfo.display = GDK_WINDOW_XDISPLAY(gdkWindow); +#if (MOZ_WIDGET_GTK == 2) mWsInfo.colormap = GDK_COLORMAP_XCOLORMAP(gdk_drawable_get_colormap(gdkWindow)); GdkVisual* gdkVisual = gdk_drawable_get_visual(gdkWindow); + mWsInfo.depth = gdkVisual->depth; +#else + mWsInfo.colormap = None; + GdkVisual* gdkVisual = gdk_window_get_visual(gdkWindow); + mWsInfo.depth = gdk_visual_get_depth(gdkVisual); +#endif mWsInfo.visual = GDK_VISUAL_XVISUAL(gdkVisual); - mWsInfo.depth = gdkVisual->depth; - + return NS_OK; } void nsPluginNativeWindowGtk2::SetAllocation() { if (!mSocketWidget) return; GtkAllocation new_allocation; @@ -218,17 +228,18 @@ void nsPluginNativeWindowGtk2::SetAlloca nsresult nsPluginNativeWindowGtk2::CreateXtWindow() { NS_ASSERTION(!mSocketWidget,"Already created a socket widget!"); #ifdef DEBUG printf("About to create new xtbin of %i X %i from %p...\n", width, height, (void*)window); #endif - GdkWindow *gdkWindow = gdk_window_lookup((XID)window); + GdkDisplay *display = gdk_display_get_default(); + GdkWindow *gdkWindow = gdk_x11_window_lookup_for_display(display, (XID)window); mSocketWidget = gtk_xtbin_new(gdkWindow, 0); // Check to see if creating the xtbin failed for some reason. // if it did, we can't go any further. if (!mSocketWidget) return NS_ERROR_FAILURE; g_signal_connect(mSocketWidget, "destroy", G_CALLBACK(gtk_widget_destroyed), &mSocketWidget); @@ -265,33 +276,34 @@ plug_removed_cb (GtkWidget *widget, gpoi return TRUE; } static void socket_unrealize_cb(GtkWidget *widget, gpointer data) { // Unmap and reparent any child windows that GDK does not yet know about. // (See bug 540114 comment 10.) - GdkWindow* socket_window = widget->window; - Display* display = GDK_DISPLAY(); + GdkWindow* socket_window = gtk_widget_get_window(widget); + GdkDisplay* gdkDisplay = gdk_display_get_default(); + Display* display = GDK_DISPLAY_XDISPLAY(gdkDisplay); // Ignore X errors that may happen if windows get destroyed (possibly // requested by the plugin) between XQueryTree and when we operate on them. gdk_error_trap_push(); Window root, parent; Window* children; unsigned int nchildren; - if (!XQueryTree(display, gdk_x11_drawable_get_xid(socket_window), + if (!XQueryTree(display, gdk_x11_window_get_xid(socket_window), &root, &parent, &children, &nchildren)) return; for (unsigned int i = 0; i < nchildren; ++i) { Window child = children[i]; - if (!gdk_window_lookup(child)) { + if (!gdk_x11_window_lookup_for_display(gdkDisplay, child)) { // This window is not known to GDK. XUnmapWindow(display, child); XReparentWindow(display, child, DefaultRootWindow(display), 0, 0); } } if (children) XFree(children);
--- a/dom/plugins/ipc/PluginInstanceChild.cpp +++ b/dom/plugins/ipc/PluginInstanceChild.cpp @@ -39,19 +39,22 @@ using mozilla::gfx::SharedDIBSurface; #include "mozilla/ipc/SyncChannel.h" #include "mozilla/AutoRestore.h" using namespace mozilla; using mozilla::ipc::ProcessChild; using namespace mozilla::plugins; using namespace std; -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK #include <gtk/gtk.h> +#if (MOZ_WIDGET_GTK == 3) +#include <gtk/gtkx.h> +#endif #include <gdk/gdkx.h> #include <gdk/gdk.h> #include "gtk2xtbin.h" #elif defined(MOZ_WIDGET_QT) #undef KeyPress #undef KeyRelease #elif defined(OS_WIN)
--- a/dom/plugins/ipc/PluginInstanceParent.cpp +++ b/dom/plugins/ipc/PluginInstanceParent.cpp @@ -31,17 +31,17 @@ #include "gfxWindowsPlatform.h" #include "mozilla/plugins/PluginSurfaceParent.h" // Plugin focus event for widget. extern const PRUnichar* kOOPPPluginFocusEventId; UINT gOOPPPluginFocusEvent = RegisterWindowMessage(kOOPPPluginFocusEventId); extern const PRUnichar* kFlashFullscreenClass; -#elif defined(MOZ_WIDGET_GTK2) +#elif defined(MOZ_WIDGET_GTK) #include <gdk/gdk.h> #elif defined(XP_MACOSX) #include <ApplicationServices/ApplicationServices.h> #endif // defined(XP_MACOSX) using namespace mozilla::plugins; bool @@ -1263,17 +1263,17 @@ PluginInstanceParent::NPP_HandleEvent(vo XSync(DefaultXDisplay(), False); return CallPaint(npremoteevent, &handled) ? handled : 0; case ButtonPress: // Release any active pointer grab so that the plugin X client can // grab the pointer if it wishes. Display *dpy = DefaultXDisplay(); -# ifdef MOZ_WIDGET_GTK2 +# ifdef MOZ_WIDGET_GTK // GDK attempts to (asynchronously) track whether there is an active // grab so ungrab through GDK. gdk_pointer_ungrab(npevent->xbutton.time); # else XUngrabPointer(dpy, npevent->xbutton.time); # endif // Wait for the ungrab to complete. XSync(dpy, False);
--- a/dom/plugins/ipc/PluginModuleChild.cpp +++ b/dom/plugins/ipc/PluginModuleChild.cpp @@ -12,18 +12,22 @@ #include "mozilla/plugins/PluginModuleChild.h" /* This must occur *after* plugins/PluginModuleChild.h to avoid typedefs conflicts. */ #include "mozilla/Util.h" #include "mozilla/ipc/SyncChannel.h" -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK #include <gtk/gtk.h> +#if (MOZ_WIDGET_GTK == 3) +#include <gtk/gtkx.h> +#endif +#include "gtk2compat.h" #endif #include "nsIFile.h" #include "pratom.h" #include "nsDebug.h" #include "nsCOMPtr.h" #include "nsPluginsDir.h" @@ -85,17 +89,17 @@ static HWND sBrowserHwnd = NULL; PluginModuleChild::PluginModuleChild() : mLibrary(0) , mPluginFilename("") , mQuirks(QUIRKS_NOT_INITIALIZED) , mShutdownFunc(0) , mInitializeFunc(0) #if defined(OS_WIN) || defined(OS_MACOSX) , mGetEntryPointsFunc(0) -#elif defined(MOZ_WIDGET_GTK2) +#elif defined(MOZ_WIDGET_GTK) , mNestedLoopTimerId(0) #elif defined(MOZ_WIDGET_QT) , mNestedLoopTimerObject(0) #endif #ifdef OS_WIN , mNestedEventHook(NULL) , mGlobalCallWndProcHook(NULL) #endif @@ -224,17 +228,17 @@ PluginModuleChild::Init(const std::strin if (pluginFile.GetPluginInfo(info, &mLibrary) == NS_OK) { mozilla::plugins::PluginUtilsOSX::SetProcessName(info.fName); } #endif return true; } -#if defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_WIDGET_GTK) typedef void (*GObjectDisposeFn)(GObject*); typedef gboolean (*GtkWidgetScrollEventFn)(GtkWidget*, GdkEventScroll*); typedef void (*GtkPlugEmbeddedFn)(GtkPlug*); static GObjectDisposeFn real_gtk_plug_dispose; static GtkPlugEmbeddedFn real_gtk_plug_embedded; static void @@ -264,26 +268,26 @@ wrap_gtk_plug_dispose(GObject* object) { g_object_add_toggle_ref(object, undo_bogus_unref, NULL); (*real_gtk_plug_dispose)(object); g_object_remove_toggle_ref(object, undo_bogus_unref, NULL); } static gboolean gtk_plug_scroll_event(GtkWidget *widget, GdkEventScroll *gdk_event) { - if (!GTK_WIDGET_TOPLEVEL(widget)) // in same process as its GtkSocket + if (!gtk_widget_is_toplevel(widget)) // in same process as its GtkSocket return FALSE; // event not handled; propagate to GtkSocket - GdkWindow* socket_window = GTK_PLUG(widget)->socket_window; + GdkWindow* socket_window = gtk_plug_get_socket_window(GTK_PLUG(widget)); if (!socket_window) return FALSE; // Propagate the event to the embedder. - GdkScreen* screen = gdk_drawable_get_screen(socket_window); - GdkWindow* plug_window = widget->window; + GdkScreen* screen = gdk_window_get_screen(socket_window); + GdkWindow* plug_window = gtk_widget_get_window(widget); GdkWindow* event_window = gdk_event->window; gint x = gdk_event->x; gint y = gdk_event->y; unsigned int button; unsigned int button_mask = 0; XEvent xevent; Display* dpy = GDK_WINDOW_XDISPLAY(socket_window); @@ -319,19 +323,19 @@ gtk_plug_scroll_event(GtkWidget *widget, button = 7; break; default: return FALSE; // unknown GdkScrollDirection } memset(&xevent, 0, sizeof(xevent)); xevent.xbutton.type = ButtonPress; - xevent.xbutton.window = GDK_WINDOW_XWINDOW(socket_window); - xevent.xbutton.root = GDK_WINDOW_XWINDOW(gdk_screen_get_root_window(screen)); - xevent.xbutton.subwindow = GDK_WINDOW_XWINDOW(plug_window); + xevent.xbutton.window = gdk_x11_window_get_xid(socket_window); + xevent.xbutton.root = gdk_x11_window_get_xid(gdk_screen_get_root_window(screen)); + xevent.xbutton.subwindow = gdk_x11_window_get_xid(plug_window); xevent.xbutton.time = gdk_event->time; xevent.xbutton.x = x; xevent.xbutton.y = y; xevent.xbutton.x_root = gdk_event->x_root; xevent.xbutton.y_root = gdk_event->y_root; xevent.xbutton.state = gdk_event->state; xevent.xbutton.button = button; xevent.xbutton.same_screen = True; @@ -349,17 +353,17 @@ gtk_plug_scroll_event(GtkWidget *widget, gdk_display_sync(gdk_screen_get_display(screen)); gdk_error_trap_pop(); return TRUE; // event handled } static void wrap_gtk_plug_embedded(GtkPlug* plug) { - GdkWindow* socket_window = plug->socket_window; + GdkWindow* socket_window = gtk_plug_get_socket_window(plug); if (socket_window) { if (gtk_check_version(2,18,7) != NULL // older && g_object_get_data(G_OBJECT(socket_window), "moz-existed-before-set-window")) { // Add missing reference for // https://bugzilla.gnome.org/show_bug.cgi?id=607061 g_object_ref(socket_window); } @@ -492,17 +496,17 @@ PluginModuleChild::ShouldContinueFromRep NS_RUNTIMEABORT("terminating child process"); #endif return true; } bool PluginModuleChild::InitGraphics() { -#if defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_WIDGET_GTK) // Work around plugins that don't interact well with GDK // client-side windows. PR_SetEnv("GDK_NATIVE_WINDOWS=1"); gtk_init(0, 0); // GtkPlug is a static class so will leak anyway but this ref makes sure. gpointer gtk_plug_class = g_type_class_ref(GTK_TYPE_PLUG); @@ -1067,17 +1071,17 @@ NPError NP_CALLBACK void* aValue) { PLUGIN_LOG_DEBUG_FUNCTION; ENSURE_PLUGIN_THREAD(NPERR_INVALID_PARAM); switch (aVariable) { // Copied from nsNPAPIPlugin.cpp case NPNVToolkit: -#if defined(MOZ_WIDGET_GTK2) || defined(MOZ_WIDGET_QT) +#if defined(MOZ_WIDGET_GTK) || defined(MOZ_WIDGET_QT) *static_cast<NPNToolkitType*>(aValue) = NPNVGtk2; return NPERR_NO_ERROR; #endif return NPERR_GENERIC_ERROR; case NPNVjavascriptEnabledBool: // Intentional fall-through case NPNVasdEnabledBool: // Intentional fall-through case NPNVisOfflineBool: // Intentional fall-through
--- a/dom/plugins/ipc/PluginModuleChild.h +++ b/dom/plugins/ipc/PluginModuleChild.h @@ -301,17 +301,17 @@ private: void AddQuirk(PluginQuirks quirk) { if (mQuirks == QUIRKS_NOT_INITIALIZED) mQuirks = 0; mQuirks |= quirk; } void InitQuirksModes(const nsCString& aMimeType); bool InitGraphics(); void DeinitGraphics(); -#if defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_WIDGET_GTK) static gboolean DetectNestedEventLoop(gpointer data); static gboolean ProcessBrowserEvents(gpointer data); NS_OVERRIDE virtual void EnteredCxxStack(); NS_OVERRIDE virtual void ExitedCxxStack(); #elif defined(MOZ_WIDGET_QT) @@ -335,17 +335,17 @@ private: #elif defined(OS_WIN) || defined(OS_MACOSX) NP_PLUGININIT mInitializeFunc; NP_GETENTRYPOINTS mGetEntryPointsFunc; #endif NPPluginFuncs mFunctions; NPSavedData mSavedData; -#if defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_WIDGET_GTK) // If a plugin spins a nested glib event loop in response to a // synchronous IPC message from the browser, the loop might break // only after the browser responds to a request sent by the // plugin. This can happen if a plugin uses gtk's synchronous // copy/paste, for example. But because the browser is blocked on // a condvar, it can't respond to the request. This situation // isn't technically a deadlock, but the symptoms are basically // the same from the user's perspective.
--- a/dom/plugins/ipc/PluginModuleParent.cpp +++ b/dom/plugins/ipc/PluginModuleParent.cpp @@ -1,15 +1,15 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- * vim: sw=4 ts=4 et : * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#ifdef MOZ_WIDGET_GTK2 +#ifdef MOZ_WIDGET_GTK #include <glib.h> #elif XP_MACOSX #include "PluginInterposeOSX.h" #include "PluginUtilsOSX.h" #endif #ifdef MOZ_WIDGET_QT #include <QtCore/QCoreApplication> #include <QtCore/QEventLoop> @@ -959,17 +959,17 @@ PluginModuleParent::AnswerProcessSomeEve #elif defined(XP_MACOSX) bool PluginModuleParent::AnswerProcessSomeEvents() { mozilla::plugins::PluginUtilsOSX::InvokeNativeEventLoop(); return true; } -#elif !defined(MOZ_WIDGET_GTK2) +#elif !defined(MOZ_WIDGET_GTK) bool PluginModuleParent::AnswerProcessSomeEvents() { NS_RUNTIMEABORT("unreached"); return false; } #else
--- a/dom/plugins/test/testplugin/nptest.cpp +++ b/dom/plugins/test/testplugin/nptest.cpp @@ -3216,17 +3216,17 @@ hangPlugin(NPObject* npobj, const NPVari #endif // NB: returning true here means that we weren't terminated, and // thus the hang detection/handling didn't work correctly. The // test harness will succeed in calling this function, and the // test will fail. return true; } -#if defined(MOZ_WIDGET_GTK2) +#if defined(MOZ_WIDGET_GTK) bool getClipboardText(NPObject* npobj, const NPVariant* args, uint32_t argCount, NPVariant* result) { NPP npp = static_cast<TestNPObject*>(npobj)->npp; InstanceData* id = static_cast<InstanceData*>(npp->pdata); string sel = pluginGetClipboardText(id);
--- a/dom/system/OSFileConstants.cpp +++ b/dom/system/OSFileConstants.cpp @@ -197,16 +197,29 @@ static dom::ConstantSpec gLibcProperties #if defined(ETIMEDOUT) // not defined with VC 9 INT_CONSTANT(ETIMEDOUT), #endif // defined(ETIMEDOUT) #if defined(EWOULDBLOCK) // not defined with VC 9 INT_CONSTANT(EWOULDBLOCK), #endif // defined(EWOULDBLOCK) INT_CONSTANT(EXDEV), + // Constants used to define data structures + // + // Many data structures have different fields/sizes/etc. on + // various OSes / versions of the same OS / platforms. For these + // data structures, we need to compute and export from C the size + // and, if necessary, the offset of fields, so as to be able to + // define the structure in JS. + +#if defined(XP_UNIX) + // The size of |mode_t|. + {"OSFILE_SIZEOF_MODE_T", INT_TO_JSVAL(sizeof (mode_t)) }, +#endif // defined(XP_UNIX) + PROP_END }; #if defined(XP_WIN) /** * The properties defined in windows.h. * @@ -344,17 +357,17 @@ bool DefineOSFileConstants(JSContext *cx MOZ_ASSERT(NS_SUCCEEDED(rv)); JSString* strVersion = JS_NewStringCopyZ(cx, os.get()); if (!strVersion) { return false; } jsval valVersion = STRING_TO_JSVAL(strVersion); - if (!JS_SetProperty(cx, objSys, "Version", &valVersion)) { + if (!JS_SetProperty(cx, objSys, "Name", &valVersion)) { return false; } } return true; } } // namespace mozilla
--- a/dom/tests/mochitest/Makefile.in +++ b/dom/tests/mochitest/Makefile.in @@ -13,17 +13,16 @@ include $(DEPTH)/config/autoconf.mk DIRS += \ dom-level0 \ dom-level1-core \ dom-level2-core \ dom-level2-html \ ajax \ bugs \ chrome \ - devicestorage \ general \ whatwg \ geolocation \ localstorage \ orientation \ sessionstorage \ storageevent \ pointerlock \
--- a/dom/tests/mochitest/general/test_clipboard_events.html +++ b/dom/tests/mochitest/general/test_clipboard_events.html @@ -69,20 +69,27 @@ window.onfocus = function() SimpleTest.finish(); } // Calling .focus begins the test run. SimpleTest.waitForExplicitFinish(); window.focus(); +function getLoadContext() { + return window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) + .getInterface(Components.interfaces.nsIWebNavigation) + .QueryInterface(Components.interfaces.nsILoadContext); +} + function getClipboardText() { var trans = Components.classes["@mozilla.org/widget/transferable;1"] .createInstance(); trans = trans.QueryInterface(Components.interfaces.nsITransferable); + trans.init(getLoadContext()); trans.addDataFlavor("text/unicode"); var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"] .getService(); clipboard = clipboard.QueryInterface(Components.interfaces.nsIClipboard); clipboard.getData(trans, clipboard.kGlobalClipboard); var str = new Object();
--- a/editor/libeditor/base/DeleteRangeTxn.cpp +++ b/editor/libeditor/base/DeleteRangeTxn.cpp @@ -1,302 +1,229 @@ /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "DeleteRangeTxn.h" -#include "nsIDOMRange.h" -#include "nsIDOMNodeList.h" #include "DeleteTextTxn.h" #include "DeleteElementTxn.h" #include "nsIContentIterator.h" -#include "nsIContent.h" #include "nsComponentManagerUtils.h" #include "mozilla/Util.h" using namespace mozilla; -#ifdef DEBUG -static bool gNoisy = false; -#endif - // note that aEditor is not refcounted DeleteRangeTxn::DeleteRangeTxn() -: EditAggregateTxn() -,mRange() -,mStartParent() -,mStartOffset(0) -,mEndParent() -,mCommonParent() -,mEndOffset(0) -,mEditor(nsnull) -,mRangeUpdater(nsnull) + : EditAggregateTxn(), + mRange(), + mEditor(nsnull), + mRangeUpdater(nsnull) { } NS_IMPL_CYCLE_COLLECTION_CLASS(DeleteRangeTxn) NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(DeleteRangeTxn, EditAggregateTxn) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mRange) - NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mStartParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mEndParent) - NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mCommonParent) NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(DeleteRangeTxn, EditAggregateTxn) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mRange) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mStartParent) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mEndParent) - NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mCommonParent) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR_AMBIGUOUS(mRange, nsIDOMRange) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(DeleteRangeTxn) NS_INTERFACE_MAP_END_INHERITING(EditAggregateTxn) -NS_IMETHODIMP DeleteRangeTxn::Init(nsEditor *aEditor, - nsIDOMRange *aRange, - nsRangeUpdater *aRangeUpdater) +nsresult +DeleteRangeTxn::Init(nsEditor* aEditor, + nsRange* aRange, + nsRangeUpdater* aRangeUpdater) { - NS_ASSERTION(aEditor && aRange, "bad state"); - if (!aEditor || !aRange) { return NS_ERROR_NOT_INITIALIZED; } + MOZ_ASSERT(aEditor && aRange); mEditor = aEditor; - mRange = do_QueryInterface(aRange); + mRange = aRange->CloneRange(); mRangeUpdater = aRangeUpdater; - - DebugOnly<nsresult> result = aRange->GetStartContainer(getter_AddRefs(mStartParent)); - NS_ASSERTION((NS_SUCCEEDED(result)), "GetStartParent failed."); - result = aRange->GetEndContainer(getter_AddRefs(mEndParent)); - NS_ASSERTION((NS_SUCCEEDED(result)), "GetEndParent failed."); - result = aRange->GetStartOffset(&mStartOffset); - NS_ASSERTION((NS_SUCCEEDED(result)), "GetStartOffset failed."); - result = aRange->GetEndOffset(&mEndOffset); - NS_ASSERTION((NS_SUCCEEDED(result)), "GetEndOffset failed."); - result = aRange->GetCommonAncestorContainer(getter_AddRefs(mCommonParent)); - NS_ASSERTION((NS_SUCCEEDED(result)), "GetCommonParent failed."); - - if (!mEditor->IsModifiableNode(mStartParent)) { - return NS_ERROR_FAILURE; - } - if (mStartParent!=mEndParent && - (!mEditor->IsModifiableNode(mEndParent) || - !mEditor->IsModifiableNode(mCommonParent))) - { - return NS_ERROR_FAILURE; - } - -#ifdef DEBUG - { - nsCOMPtr<nsINode> start = do_QueryInterface(mStartParent); - MOZ_ASSERT(start); - NS_ASSERTION(mStartOffset <= PRInt32(start->Length()), "bad start offset"); - - nsCOMPtr<nsINode> end = do_QueryInterface(mEndParent); - MOZ_ASSERT(end); - NS_ASSERTION(mEndOffset <= PRInt32(end->Length()), "bad end offset"); - - if (gNoisy) { - printf ("DeleteRange: %d of %p to %d of %p\n", - mStartOffset, (void *)mStartParent, mEndOffset, (void *)mEndParent); - } - } -#endif // DEBUG + NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetStartParent()), + NS_ERROR_FAILURE); + NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetEndParent()), + NS_ERROR_FAILURE); + NS_ENSURE_TRUE(mEditor->IsModifiableNode(mRange->GetCommonAncestor()), + NS_ERROR_FAILURE); return NS_OK; } -NS_IMETHODIMP DeleteRangeTxn::DoTransaction(void) +NS_IMETHODIMP +DeleteRangeTxn::DoTransaction() { -#ifdef DEBUG - if (gNoisy) { printf("Do Delete Range\n"); } -#endif + MOZ_ASSERT(mRange && mEditor); + nsresult res; - NS_ENSURE_TRUE(mStartParent && mEndParent && mCommonParent && mEditor, NS_ERROR_NOT_INITIALIZED); - - nsresult result; // build the child transactions + nsCOMPtr<nsINode> startParent = mRange->GetStartParent(); + PRInt32 startOffset = mRange->StartOffset(); + nsCOMPtr<nsINode> endParent = mRange->GetEndParent(); + PRInt32 endOffset = mRange->EndOffset(); + MOZ_ASSERT(startParent && endParent); - if (mStartParent==mEndParent) - { // the selection begins and ends in the same node - result = CreateTxnsToDeleteBetween(mStartParent, mStartOffset, mEndOffset); - } - else - { // the selection ends in a different node from where it started - // delete the relevant content in the start node - result = CreateTxnsToDeleteContent(mStartParent, mStartOffset, nsIEditor::eNext); - if (NS_SUCCEEDED(result)) - { - // delete the intervening nodes - result = CreateTxnsToDeleteNodesBetween(); - if (NS_SUCCEEDED(result)) - { - // delete the relevant content in the end node - result = CreateTxnsToDeleteContent(mEndParent, mEndOffset, nsIEditor::ePrevious); - } - } + if (startParent == endParent) { + // the selection begins and ends in the same node + res = CreateTxnsToDeleteBetween(startParent, startOffset, endOffset); + NS_ENSURE_SUCCESS(res, res); + } else { + // the selection ends in a different node from where it started. delete + // the relevant content in the start node + res = CreateTxnsToDeleteContent(startParent, startOffset, nsIEditor::eNext); + NS_ENSURE_SUCCESS(res, res); + // delete the intervening nodes + res = CreateTxnsToDeleteNodesBetween(); + NS_ENSURE_SUCCESS(res, res); + // delete the relevant content in the end node + res = CreateTxnsToDeleteContent(endParent, endOffset, nsIEditor::ePrevious); + NS_ENSURE_SUCCESS(res, res); } // if we've successfully built this aggregate transaction, then do it. - if (NS_SUCCEEDED(result)) { - result = EditAggregateTxn::DoTransaction(); - } + res = EditAggregateTxn::DoTransaction(); + NS_ENSURE_SUCCESS(res, res); - NS_ENSURE_SUCCESS(result, result); - // only set selection to deletion point if editor gives permission bool bAdjustSelection; mEditor->ShouldTxnSetSelection(&bAdjustSelection); - if (bAdjustSelection) - { - nsCOMPtr<nsISelection> selection; - result = mEditor->GetSelection(getter_AddRefs(selection)); - // At this point, it is possible that the frame for our root element - // might have been destroyed, in which case, the above call returns - // an error. We eat that error here intentionally. See bug 574558 - // for a sample case where this happens. - NS_ENSURE_SUCCESS(result, NS_OK); + if (bAdjustSelection) { + nsRefPtr<Selection> selection = mEditor->GetSelection(); NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER); - result = selection->Collapse(mStartParent, mStartOffset); + res = selection->Collapse(startParent, startOffset); + NS_ENSURE_SUCCESS(res, res); } - else - { - // do nothing - dom range gravity will adjust selection - } + // else do nothing - dom range gravity will adjust selection - return result; + return NS_OK; } -NS_IMETHODIMP DeleteRangeTxn::UndoTransaction(void) +NS_IMETHODIMP +DeleteRangeTxn::UndoTransaction() { -#ifdef DEBUG - if (gNoisy) { printf("Undo Delete Range\n"); } -#endif - - NS_ENSURE_TRUE(mStartParent && mEndParent && mCommonParent && mEditor, NS_ERROR_NOT_INITIALIZED); + MOZ_ASSERT(mRange && mEditor); return EditAggregateTxn::UndoTransaction(); } -NS_IMETHODIMP DeleteRangeTxn::RedoTransaction(void) +NS_IMETHODIMP +DeleteRangeTxn::RedoTransaction() { -#ifdef DEBUG - if (gNoisy) { printf("Redo Delete Range\n"); } -#endif - - NS_ENSURE_TRUE(mStartParent && mEndParent && mCommonParent && mEditor, NS_ERROR_NOT_INITIALIZED); + MOZ_ASSERT(mRange && mEditor); return EditAggregateTxn::RedoTransaction(); } -NS_IMETHODIMP DeleteRangeTxn::GetTxnDescription(nsAString& aString) +NS_IMETHODIMP +DeleteRangeTxn::GetTxnDescription(nsAString& aString) { aString.AssignLiteral("DeleteRangeTxn"); return NS_OK; } -NS_IMETHODIMP -DeleteRangeTxn::CreateTxnsToDeleteBetween(nsIDOMNode *aStartParent, - PRUint32 aStartOffset, - PRUint32 aEndOffset) +nsresult +DeleteRangeTxn::CreateTxnsToDeleteBetween(nsINode* aNode, + PRInt32 aStartOffset, + PRInt32 aEndOffset) { // see what kind of node we have - nsCOMPtr<nsIDOMCharacterData> textNode = do_QueryInterface(aStartParent); - if (textNode) { - // if the node is a text node, then delete text content + if (aNode->IsNodeOfType(nsINode::eDATA_NODE)) { + // if the node is a chardata node, then delete chardata content nsRefPtr<DeleteTextTxn> txn = new DeleteTextTxn(); PRInt32 numToDel; - if (aStartOffset==aEndOffset) + if (aStartOffset == aEndOffset) { numToDel = 1; - else - numToDel = aEndOffset-aStartOffset; + } else { + numToDel = aEndOffset - aStartOffset; + } - nsresult rv = txn->Init(mEditor, textNode, aStartOffset, numToDel, mRangeUpdater); - NS_ENSURE_SUCCESS(rv, rv); + nsCOMPtr<nsIDOMCharacterData> charDataNode = do_QueryInterface(aNode); + nsresult res = txn->Init(mEditor, charDataNode, aStartOffset, numToDel, + mRangeUpdater); + NS_ENSURE_SUCCESS(res, res); AppendChild(txn); return NS_OK; } - nsCOMPtr<nsINode> startParent = do_QueryInterface(aStartParent); - NS_ENSURE_STATE(startParent); - NS_ASSERTION(aEndOffset <= startParent->GetChildCount(), "bad aEndOffset"); - - nsCOMPtr<nsIContent> child = startParent->GetChildAt(aStartOffset); + nsCOMPtr<nsIContent> child = aNode->GetChildAt(aStartOffset); NS_ENSURE_STATE(child); - nsresult result = NS_OK; - for (PRUint32 i = aStartOffset; i < aEndOffset; ++i) { + nsresult res = NS_OK; + for (PRInt32 i = aStartOffset; i < aEndOffset; ++i) { nsRefPtr<DeleteElementTxn> txn = new DeleteElementTxn(); - result = txn->Init(mEditor, child->AsDOMNode(), mRangeUpdater); - if (NS_SUCCEEDED(result)) + res = txn->Init(mEditor, child->AsDOMNode(), mRangeUpdater); + if (NS_SUCCEEDED(res)) { AppendChild(txn); + } child = child->GetNextSibling(); } - return result; + + NS_ENSURE_SUCCESS(res, res); + return NS_OK; } -NS_IMETHODIMP DeleteRangeTxn::CreateTxnsToDeleteContent(nsIDOMNode *aParent, - PRUint32 aOffset, - nsIEditor::EDirection aAction) +nsresult +DeleteRangeTxn::Creat