Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: chrome/content/ui/sendReport.js

Issue 8793014: Issue reporter: Fixed typo (Closed)
Patch Set: Created Nov. 6, 2012, 12:17 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/content/ui/sendReport.js
===================================================================
--- a/chrome/content/ui/sendReport.js
+++ b/chrome/content/ui/sendReport.js
@@ -203,17 +203,17 @@ let requestsDataSource =
thirdParty: entry.thirdParty,
count: 1
});
}
// Location is meaningless for element hiding hits
if (entry.filter && entry.filter instanceof ElemHideBase)
requestXML.removeAttribute("location");
-
+
if (entry.filter)
requestXML.setAttribute("filter", entry.filter.text);
if (node instanceof Element)
{
requestXML.setAttribute("node", (node.namespaceURI ? node.namespaceURI + "#" : "") + node.localName);
try
@@ -328,42 +328,42 @@ let screenshotDataSource =
// Do not resize canvas any more (no idea why Gecko requires both to be set)
this._canvas.parentNode.style.MozBoxAlign = "center";
this._canvas.parentNode.align = "center";
this._context = this._canvas.getContext("2d");
let wndWidth = wnd.document.documentElement.scrollWidth;
let wndHeight = wnd.document.documentElement.scrollHeight;
-
+
// Copy scaled screenshot of the webpage. We scale the webpage by width
// but leave 10px on each side for easier selecting.
-
+
// Gecko doesn't like sizes more than 64k, restrict to 30k to be on the safe side.
// Also, make sure height is at most five times the width to keep image size down.
let copyWidth = Math.min(wndWidth, 30000);
let copyHeight = Math.min(wndHeight, 30000, copyWidth * 5);
let copyX = Math.max(Math.min(wnd.scrollX - copyWidth / 2, wndWidth - copyWidth), 0);
let copyY = Math.max(Math.min(wnd.scrollY - copyHeight / 2, wndHeight - copyHeight), 0);
-
+
let scalingFactor = (this._canvas.width - this.imageOffset * 2) / copyWidth;
this._canvas.height = copyHeight * scalingFactor + this.imageOffset * 2;
-
+
this._context.save();
this._context.translate(this.imageOffset, this.imageOffset);
this._context.scale(scalingFactor, scalingFactor);
this._context.drawWindow(wnd, copyX, copyY, copyWidth, copyHeight, "rgb(255,255,255)");
this._context.restore();
-
+
// Init canvas settings
this._context.fillStyle = "rgb(0, 0, 0)";
this._context.strokeStyle = "rgba(255, 0, 0, 0.7)";
this._context.lineWidth = 3;
this._context.lineJoin = "round";
-
+
// Reduce colors asynchronously
this._pixelData = this._context.getImageData(this.imageOffset, this.imageOffset,
this._canvas.width - this.imageOffset * 2,
this._canvas.height - this.imageOffset * 2);
this._max = this._pixelData.width * this._pixelData.height * 4;
this._i = 0;
Utils.threadManager.currentThread.dispatch(this, Ci.nsIEventTarget.DISPATCH_NORMAL);
},
@@ -402,23 +402,23 @@ let screenshotDataSource =
E("screenshotUndoButton").disabled = !this._enabled || !this._undoQueue.length;
},
get selectionType() this._selectionType,
set selectionType(type)
{
if (this._selectionType == type)
return;
-
+
// Abort selection already in progress
this.abortSelection();
-
+
this._selectionType = type;
},
-
+
exportData: function()
{
removeReportElement("screenshot");
if (this.enabled)
{
appendElement(reportData.documentElement, "screenshot", {
edited: (this._undoQueue.length ? 'true' : 'false')
}, this._canvas.toDataURL());
@@ -441,39 +441,39 @@ let screenshotDataSource =
{
if (event.keyCode == Ci.nsIDOMKeyEvent.DOM_VK_ESCAPE)
{
event.stopPropagation();
event.preventDefault();
screenshotDataSource.abortSelection();
}
},
-
+
startSelection: function(event)
{
if (event.button == 2)
this.abortSelection(); // Right mouse button aborts selection
-
+
if (event.button != 0 || !this.enabled)
return;
-
+
// Abort selection already in progress
this.abortSelection();
-
+
let boxObject = document.getBoxObjectFor(this._canvas);
let [x, y] = [event.screenX - boxObject.screenX, event.screenY - boxObject.screenY];
this._currentData = {
data: null,
anchorX: x,
anchorY: y,
currentX: -1,
currentY: -1
};
this.updateSelection(event);
-
+
document.addEventListener("keypress", this.handleKeyPress, true);
},
updateSelection: function(event)
{
if (event.button != 0 || !this._currentData)
return;
@@ -516,37 +516,37 @@ let screenshotDataSource =
else if (this._selectionType == "remove")
this._context.fillRect(left, top, right - left, bottom - top);
},
stopSelection: function(event)
{
if (event.button != 0 || !this._currentData)
return;
-
+
if (this._currentData.data)
{
this._undoQueue.push(this._currentData);
E("screenshotUndoButton").disabled = false;
}
-
+
this._currentData = null;
document.removeEventListener("keypress", this.handleKeyPress, true);
},
-
+
undo: function()
{
let op = this._undoQueue.pop();
if (!op)
return;
-
+
this._context.putImageData(op.data,
Math.min(op.anchorX, op.currentX),
Math.min(op.anchorY, op.currentY));
-
+
if (!this._undoQueue.length)
E("screenshotUndoButton").disabled = true;
}
};
let framesDataSource =
{
site: null,
@@ -577,17 +577,17 @@ let framesDataSource =
scanFrames: function(wnd, xmlList)
{
try
{
for (let i = 0; i < wnd.frames.length; i++)
{
let frame = wnd.frames[i];
- let frameXML = appendElement(xmllist, "frame", {
+ let frameXML = appendElement(xmlList, "frame", {
url: censorURL(frame.location.href)
});
this.scanFrames(frame, frameXML);
}
}
catch (e)
{
// Don't break if something goes wrong
@@ -610,53 +610,53 @@ let errorsDataSource =
{
return (message instanceof Ci.nsIScriptError &&
!/^https?:/i.test(message.sourceName) &&
(/adblock/i.test(message.errorMessage) || /adblock/i.test(message.sourceName) ||
message.errorMessage.indexOf(addonID) >= 0 || message.sourceName.indexOf(addonID) >= 0));
});
if (messages.length > 10) // Only the last 10 messages
messages = messages.slice(messages.length - 10, messages.length);
-
+
// Censor app and profile paths in error messages
let censored = {__proto__: null};
let pathList = [["ProfD", "%PROFILE%"], ["GreD", "%GRE%"], ["CurProcD", "%APP%"]];
for (let i = 0; i < pathList.length; i++)
{
let [pathID, placeholder] = pathList[i];
try
{
let file = FileUtils.getDir(pathID, [], false);
censored[file.path.replace(/[\\\/]+$/, '')] = placeholder;
let uri = Utils.ioService.newFileURI(file);
censored[uri.spec.replace(/[\\\/]+$/, '')] = placeholder;
} catch(e) {}
}
-
+
let errors = reportElement("errors");
for (let i = 0; i < messages.length; i++)
{
let message = messages[i];
-
+
let text = message.errorMessage;
for (let path in censored)
text = text.replace(path, censored[path], "gi");
if (text.length > 256)
text = text.substr(0, 256) + "...";
-
+
let file = message.sourceName;
for (let path in censored)
file = file.replace(path, censored[path], "gi");
if (file.length > 256)
file = file.substr(0, 256) + "...";
-
+
let sourceLine = message.sourceLine;
if (sourceLine.length > 256)
sourceLine = sourceLine.substr(0, 256) + "...";
-
+
appendElement(errors, "error", {
type: message.flags & Ci.nsIScriptError.warningFlag ? "warning" : "error",
text: text,
file: file,
line: message.lineNumber,
column: message.columnNumber,
sourceLine: sourceLine
});
@@ -880,17 +880,17 @@ let issuesDataSource =
if (!this.whitelistFilter && this.isEnabled)
{
// Find disabled filters in active subscriptions matching any of the requests
let disabledMatcher = new CombinedMatcher();
for each (let subscription in FilterStorage.subscriptions)
{
if (subscription.disabled)
continue;
-
+
for each (let filter in subscription.filters)
if (filter instanceof BlockingFilter && filter.disabled)
disabledMatcher.add(filter);
}
let seenFilters = {__proto__: null};
for each (let request in requestsDataSource.origRequests)
{
@@ -916,17 +916,17 @@ let issuesDataSource =
for each (let filter in subscription.filters)
if (filter instanceof BlockingFilter)
disabledMatcher.add(filter);
for each (let request in requestsDataSource.origRequests)
{
if (request.filter)
continue;
-
+
let filter = disabledMatcher.matchesAny(request.location, request.typeDescr, request.docDomain, request.thirdParty);
if (filter && !(subscription.url in seenSubscriptions))
{
this.disabledSubscriptions.push(subscription);
seenSubscriptions[subscription.text] = true;
break;
}
}
@@ -1083,29 +1083,29 @@ let issuesDataSource =
{
let result = {};
openDialog("subscriptionSelection.xul", "_blank", "chrome,centerscreen,modal,resizable,dialog=no", null, result);
if (!("url" in result))
return;
let subscriptionResults = [[result.url, result.title]];
if ("mainSubscriptionURL" in result)
- subscriptionResults.push([result.mainSubscriptionURL, result.mainSubscriptionTitle]);
+ subscriptionResults.push([result.mainSubscriptionURL, result.mainSubscriptionTitle]);
for each (let [url, title] in subscriptionResults)
{
let subscription = Subscription.fromURL(url);
if (!subscription)
continue;
-
+
FilterStorage.addSubscription(subscription);
subscription.disabled = false;
subscription.title = title;
-
+
if (subscription instanceof DownloadableSubscription && !subscription.lastDownload)
Synchronizer.execute(subscription);
}
E("issuesNoSubscriptionsBox").hidden = true;
this.forceReload();
},
@@ -1452,26 +1452,26 @@ function reportSent(event)
result = result.replace(/%CONFIRMATION%/g, encodeHTML(E("result").getAttribute("confirmationMessage")));
result = result.replace(/%KNOWNISSUE%/g, encodeHTML(E("result").getAttribute("knownIssueMessage")));
result = result.replace(/(<html)\b/, '$1 dir="' + window.getComputedStyle(document.documentElement, "").direction + '"');
if (!success)
{
let errorElement = E("sendReportError");
let template = errorElement.getAttribute("textTemplate").replace(/[\r\n\s]+/g, " ");
-
+
let [, beforeLink, linkText, afterLink] = /(.*)\[link\](.*)\[\/link\](.*)/.exec(template) || [null, "", template, ""];
beforeLink = beforeLink.replace(/\?1\?/g, errorMessage);
afterLink = afterLink.replace(/\?1\?/g, errorMessage);
while (errorElement.firstChild && errorElement.firstChild.nodeType != Node.ELEMENT_NODE)
errorElement.removeChild(errorElement.firstChild);
while (errorElement.lastChild && errorElement.lastChild.nodeType != Node.ELEMENT_NODE)
errorElement.removeChild(errorElement.lastChild);
-
+
if (errorElement.firstChild)
errorElement.firstChild.textContent = linkText;
errorElement.insertBefore(document.createTextNode(beforeLink), errorElement.firstChild);
errorElement.appendChild(document.createTextNode(afterLink));
E("sendReportErrorBox").hidden = false;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld