Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
공백 변경 숨기기
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
텍스트 스타일
모양 변경
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
11년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
47 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
143 행
복사
17 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
114 행
복사
/* This Source Code Form is subject to the terms of the Mozilla Public
/* 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
* License, v. 2.0. If a copy of the MPL was not distributed with this
file,
*
file,
You can obtain one at http://mozilla.org/MPL/2.0/. */
*
You can obtain one at http://mozilla.org/MPL/2.0/. */
const wpl = Components.interfaces.nsIWebProgressListener;
const wpl = Components.interfaces.nsIWebProgressListener;
var reporterListener = {
var reporterListener = {
_isBusy: false,
_isBusy: false,
복사
복사됨
복사
복사됨
get statusMeter() {
delete this.statusMeter;
return this.statusMeter = document.getElementById("statusbar-icon");
},
get securityButton() {
get securityButton() {
delete this.securityButton;
delete this.securityButton;
return this.securityButton = document.getElementById("security-button");
return this.securityButton = document.getElementById("security-button");
},
},
복사
복사됨
복사
복사됨
get securityLabel() {
delete this.securityLabel;
return this.securityLabel = document.getElementById("security-status");
},
get securityDisplay() {
delete this.securityDisplay;
return this.securityDisplay = document.getElementById("security-display");
},
QueryInterface: function(aIID) {
QueryInterface: function(aIID) {
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
aIID.equals(Components.interfaces.nsISupports))
aIID.equals(Components.interfaces.nsISupports))
return this;
return this;
throw Components.results.NS_NOINTERFACE;
throw Components.results.NS_NOINTERFACE;
},
},
복사
복사됨
복사
복사됨
onStateChange: function(/*in nsIWebProgress*/ aWebProgress,
onStateChange: function(/*in nsIWebProgress*/ aWebProgress,
/*in nsIRequest*/ aRequest,
/*in nsIRequest*/ aRequest,
/*in unsigned long*/ aStateFlags,
/*in unsigned long*/ aStateFlags,
/*in nsresult*/ aStatus) {
/*in nsresult*/ aStatus) {
복사
복사됨
복사
복사됨
if (aStateFlags & wpl.STATE_START &&
aStateFlags & wpl.STATE_IS_NETWORK) {
this.statusMeter.value = 0;
this.statusMeter.parentNode.collapsed = false;
this.securityLabel.collapsed = true;
}
else if (aStateFlags & wpl.STATE_STOP &&
aStateFlags & wpl.STATE_IS_NETWORK) {
this.statusMeter.parentNode.collapsed = true;
this.securityLabel.collapsed = false;
}
},
},
onProgressChange: function(/*in nsIWebProgress*/ aWebProgress,
onProgressChange: function(/*in nsIWebProgress*/ aWebProgress,
/*in nsIRequest*/ aRequest,
/*in nsIRequest*/ aRequest,
/*in long*/ aCurSelfProgress,
/*in long*/ aCurSelfProgress,
/*in long */aMaxSelfProgress,
/*in long */aMaxSelfProgress,
/*in long */aCurTotalProgress,
/*in long */aCurTotalProgress,
/*in long */aMaxTotalProgress) {
/*in long */aMaxTotalProgress) {
복사
복사됨
복사
복사됨
if (aMaxTotalProgress > 0) {
let percentage = (aCurTotalProgress * 100) / aMaxTotalProgress;
this.statusMeter.value = percentage;
}
},
},
onLocationChange: function(/*in nsIWebProgress*/ aWebProgress,
onLocationChange: function(/*in nsIWebProgress*/ aWebProgress,
/*in nsIRequest*/ aRequest,
/*in nsIRequest*/ aRequest,
/*in nsIURI*/ aLocation) {
/*in nsIURI*/ aLocation) {
복사
복사됨
복사
복사됨
this.securityDisplay.setAttribute('label',
aLocation.
host)
;
document.getElementById("headerMessage").textContent =
aLocation.
spec
;
},
},
onStatusChange: function(/*in nsIWebProgress*/ aWebProgress,
onStatusChange: function(/*in nsIWebProgress*/ aWebProgress,
/*in nsIRequest*/ aRequest,
/*in nsIRequest*/ aRequest,
/*in nsresult*/ aStatus,
/*in nsresult*/ aStatus,
/*in wstring*/ aMessage) {
/*in wstring*/ aMessage) {
},
},
onSecurityChange: function(/*in nsIWebProgress*/ aWebProgress,
onSecurityChange: function(/*in nsIWebProgress*/ aWebProgress,
/*in nsIRequest*/ aRequest,
/*in nsIRequest*/ aRequest,
/*in unsigned long*/ aState) {
/*in unsigned long*/ aState) {
const wpl_security_bits = wpl.STATE_IS_SECURE |
const wpl_security_bits = wpl.STATE_IS_SECURE |
wpl.STATE_IS_BROKEN |
wpl.STATE_IS_BROKEN |
wpl.STATE_IS_INSECURE |
wpl.STATE_IS_INSECURE |
wpl.STATE_SECURE_HIGH |
wpl.STATE_SECURE_HIGH |
wpl.STATE_SECURE_MED |
wpl.STATE_SECURE_MED |
wpl.STATE_SECURE_LOW;
wpl.STATE_SECURE_LOW;
복사
복사됨
복사
복사됨
let
browser = document.getElementById("requestFrame");
var
browser = document.getElementById("requestFrame");
let
level;
var
level;
switch (aState & wpl_security_bits) {
switch (aState & wpl_security_bits) {
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH:
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH:
level = "high";
level = "high";
break;
break;
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_MED:
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_MED:
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_LOW:
case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_LOW:
level = "low";
level = "low";
break;
break;
case wpl.STATE_IS_BROKEN:
case wpl.STATE_IS_BROKEN:
level = "broken";
level = "broken";
break;
break;
}
}
if (level) {
if (level) {
this.securityButton.setAttribute("level", level);
this.securityButton.setAttribute("level", level);
this.securityButton.hidden = false;
this.securityButton.hidden = false;
복사
복사됨
복사
복사됨
this.securityLabel.setAttribute("label", browser.securityUI.tooltipText);
} else {
} else {
this.securityButton.hidden = true;
this.securityButton.hidden = true;
this.securityButton.removeAttribute("level");
this.securityButton.removeAttribute("level");
}
}
this.securityButton.setAttribute("tooltiptext",
this.securityButton.setAttribute("tooltiptext",
browser.securityUI.tooltipText);
browser.securityUI.tooltipText);
}
}
}
}
function cancelRequest()
function cancelRequest()
{
{
reportUserClosed();
reportUserClosed();
window.close();
window.close();
}
}
function reportUserClosed()
function reportUserClosed()
{
{
복사
복사됨
복사
복사됨
let request = window.arguments[0]
;
let request = window.arguments[0]
.wrappedJSObject
;
request.QueryInterface(Components.interfaces.prplIRequestBrowser)
;
request.cancelled();
request.cancelled();
}
}
function loadRequestedUrl()
function loadRequestedUrl()
{
{
복사
복사됨
복사
복사됨
let request = window.arguments[0]
;
let request = window.arguments[0]
.wrappedJSObject
;
request.QueryInterface(Components.interfaces.prplIRequestBrowser)
;
document.getElementById("headerMessage").textContent = request.promptText;
document.getElementById("headerMessage").textContent = request.promptText;
let account = request.account;
let account = request.account;
복사
복사됨
복사
복사됨
document.getElementById("headerLabel").value =
if (request.iconURI != "")
account.protocol.name + " - " + account.name;
document.getElementById("headerImage").src =
request.
icon
URI
;
document.getElementById("headerImage").src =
account.protocol.
icon
Base
URI
+ "icon48.png"
;
복사
복사됨
복사
복사됨
let
browser = document.getElementById("requestFrame");
var
browser = document.getElementById("requestFrame");
browser.addProgressListener(reporterListener,
browser.addProgressListener(reporterListener,
Components.interfaces.nsIWebProgress.NOTIFY_ALL);
Components.interfaces.nsIWebProgress.NOTIFY_ALL);
복사
복사됨
복사
복사됨
let
url = request.url;
var
url = request.url;
if (url != "")
if (url != "")
{
browser.setAttribute("src", url);
browser.setAttribute("src", url);
복사
복사됨
복사
복사됨
document.getElementById("headerMessage").textContent = url;
}
request.loaded(window, browser.webProgress);
request.loaded(window, browser.webProgress);
}
}
저장된 비교 결과
원본
파일 열기
/* 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/. */ const wpl = Components.interfaces.nsIWebProgressListener; var reporterListener = { _isBusy: false, get statusMeter() { delete this.statusMeter; return this.statusMeter = document.getElementById("statusbar-icon"); }, get securityButton() { delete this.securityButton; return this.securityButton = document.getElementById("security-button"); }, get securityLabel() { delete this.securityLabel; return this.securityLabel = document.getElementById("security-status"); }, get securityDisplay() { delete this.securityDisplay; return this.securityDisplay = document.getElementById("security-display"); }, QueryInterface: function(aIID) { if (aIID.equals(Components.interfaces.nsIWebProgressListener) || aIID.equals(Components.interfaces.nsISupportsWeakReference) || aIID.equals(Components.interfaces.nsISupports)) return this; throw Components.results.NS_NOINTERFACE; }, onStateChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in unsigned long*/ aStateFlags, /*in nsresult*/ aStatus) { if (aStateFlags & wpl.STATE_START && aStateFlags & wpl.STATE_IS_NETWORK) { this.statusMeter.value = 0; this.statusMeter.parentNode.collapsed = false; this.securityLabel.collapsed = true; } else if (aStateFlags & wpl.STATE_STOP && aStateFlags & wpl.STATE_IS_NETWORK) { this.statusMeter.parentNode.collapsed = true; this.securityLabel.collapsed = false; } }, onProgressChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in long*/ aCurSelfProgress, /*in long */aMaxSelfProgress, /*in long */aCurTotalProgress, /*in long */aMaxTotalProgress) { if (aMaxTotalProgress > 0) { let percentage = (aCurTotalProgress * 100) / aMaxTotalProgress; this.statusMeter.value = percentage; } }, onLocationChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in nsIURI*/ aLocation) { this.securityDisplay.setAttribute('label', aLocation.host); }, onStatusChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in nsresult*/ aStatus, /*in wstring*/ aMessage) { }, onSecurityChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in unsigned long*/ aState) { const wpl_security_bits = wpl.STATE_IS_SECURE | wpl.STATE_IS_BROKEN | wpl.STATE_IS_INSECURE | wpl.STATE_SECURE_HIGH | wpl.STATE_SECURE_MED | wpl.STATE_SECURE_LOW; let browser = document.getElementById("requestFrame"); let level; switch (aState & wpl_security_bits) { case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH: level = "high"; break; case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_MED: case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_LOW: level = "low"; break; case wpl.STATE_IS_BROKEN: level = "broken"; break; } if (level) { this.securityButton.setAttribute("level", level); this.securityButton.hidden = false; this.securityLabel.setAttribute("label", browser.securityUI.tooltipText); } else { this.securityButton.hidden = true; this.securityButton.removeAttribute("level"); } this.securityButton.setAttribute("tooltiptext", browser.securityUI.tooltipText); } } function cancelRequest() { reportUserClosed(); window.close(); } function reportUserClosed() { let request = window.arguments[0]; request.QueryInterface(Components.interfaces.prplIRequestBrowser); request.cancelled(); } function loadRequestedUrl() { let request = window.arguments[0]; request.QueryInterface(Components.interfaces.prplIRequestBrowser); document.getElementById("headerMessage").textContent = request.promptText; let account = request.account; document.getElementById("headerLabel").value = account.protocol.name + " - " + account.name; document.getElementById("headerImage").src = account.protocol.iconBaseURI + "icon48.png"; let browser = document.getElementById("requestFrame"); browser.addProgressListener(reporterListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL); let url = request.url; if (url != "") browser.setAttribute("src", url); request.loaded(window, browser.webProgress); }
수정본
파일 열기
/* 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/. */ const wpl = Components.interfaces.nsIWebProgressListener; var reporterListener = { _isBusy: false, get securityButton() { delete this.securityButton; return this.securityButton = document.getElementById("security-button"); }, QueryInterface: function(aIID) { if (aIID.equals(Components.interfaces.nsIWebProgressListener) || aIID.equals(Components.interfaces.nsISupportsWeakReference) || aIID.equals(Components.interfaces.nsISupports)) return this; throw Components.results.NS_NOINTERFACE; }, onStateChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in unsigned long*/ aStateFlags, /*in nsresult*/ aStatus) { }, onProgressChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in long*/ aCurSelfProgress, /*in long */aMaxSelfProgress, /*in long */aCurTotalProgress, /*in long */aMaxTotalProgress) { }, onLocationChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in nsIURI*/ aLocation) { document.getElementById("headerMessage").textContent = aLocation.spec; }, onStatusChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in nsresult*/ aStatus, /*in wstring*/ aMessage) { }, onSecurityChange: function(/*in nsIWebProgress*/ aWebProgress, /*in nsIRequest*/ aRequest, /*in unsigned long*/ aState) { const wpl_security_bits = wpl.STATE_IS_SECURE | wpl.STATE_IS_BROKEN | wpl.STATE_IS_INSECURE | wpl.STATE_SECURE_HIGH | wpl.STATE_SECURE_MED | wpl.STATE_SECURE_LOW; var browser = document.getElementById("requestFrame"); var level; switch (aState & wpl_security_bits) { case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_HIGH: level = "high"; break; case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_MED: case wpl.STATE_IS_SECURE | wpl.STATE_SECURE_LOW: level = "low"; break; case wpl.STATE_IS_BROKEN: level = "broken"; break; } if (level) { this.securityButton.setAttribute("level", level); this.securityButton.hidden = false; } else { this.securityButton.hidden = true; this.securityButton.removeAttribute("level"); } this.securityButton.setAttribute("tooltiptext", browser.securityUI.tooltipText); } } function cancelRequest() { reportUserClosed(); window.close(); } function reportUserClosed() { let request = window.arguments[0].wrappedJSObject; request.cancelled(); } function loadRequestedUrl() { let request = window.arguments[0].wrappedJSObject; document.getElementById("headerMessage").textContent = request.promptText; let account = request.account; if (request.iconURI != "") document.getElementById("headerImage").src = request.iconURI; var browser = document.getElementById("requestFrame"); browser.addProgressListener(reporterListener, Components.interfaces.nsIWebProgress.NOTIFY_ALL); var url = request.url; if (url != "") { browser.setAttribute("src", url); document.getElementById("headerMessage").textContent = url; } request.loaded(window, browser.webProgress); }
비교하기