forked from mirrors/gecko-dev
		
	 a81b239be2
			
		
	
	
		a81b239be2
		
	
	
	
	
		
			
			The help view copies strings from the main menubar. When we moved the original DTD string to ftl, there were performance implications for using it in browser.xhtml, so it was only added once needed. The help view copies attributes from the items in the main menubar's help menu, and so didn't copy the label for this item, resulting in the broken behaviour. To fix this, it's enough to have the string in the markup. As we've moved the other strings into menubar.ftl, I'm taking the opportunity to move this string there, too, next to its sibling string to report deceptive sites. Differential Revision: https://phabricator.services.mozilla.com/D51850 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			78 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* 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/. */
 | |
| 
 | |
| // This file is loaded into the browser window scope.
 | |
| /* eslint-env mozilla/browser-window */
 | |
| 
 | |
| var gSafeBrowsing = {
 | |
|   setReportPhishingMenu() {
 | |
|     // In order to detect whether or not we're at the phishing warning
 | |
|     // page, we have to check the documentURI instead of the currentURI.
 | |
|     // This is because when the DocShell loads an error page, the
 | |
|     // currentURI stays at the original target, while the documentURI
 | |
|     // will point to the internal error page we loaded instead.
 | |
|     var docURI = gBrowser.selectedBrowser.documentURI;
 | |
|     var isPhishingPage =
 | |
|       docURI && docURI.spec.startsWith("about:blocked?e=deceptiveBlocked");
 | |
| 
 | |
|     // Show/hide the appropriate menu item.
 | |
|     const reportMenu = document.getElementById(
 | |
|       "menu_HelpPopup_reportPhishingtoolmenu"
 | |
|     );
 | |
|     reportMenu.hidden = isPhishingPage;
 | |
|     const reportErrorMenu = document.getElementById(
 | |
|       "menu_HelpPopup_reportPhishingErrortoolmenu"
 | |
|     );
 | |
|     reportErrorMenu.hidden = !isPhishingPage;
 | |
| 
 | |
|     // Now look at the currentURI to learn which page we were trying
 | |
|     // to browse to.
 | |
|     const uri = gBrowser.currentURI;
 | |
|     const isReportablePage =
 | |
|       uri && (uri.schemeIs("http") || uri.schemeIs("https"));
 | |
| 
 | |
|     const disabledByPolicy = !Services.policies.isAllowed("feedbackCommands");
 | |
| 
 | |
|     if (disabledByPolicy || isPhishingPage || !isReportablePage) {
 | |
|       reportMenu.setAttribute("disabled", "true");
 | |
|     } else {
 | |
|       reportMenu.removeAttribute("disabled");
 | |
|     }
 | |
| 
 | |
|     if (disabledByPolicy || !isPhishingPage || !isReportablePage) {
 | |
|       reportErrorMenu.setAttribute("disabled", "true");
 | |
|     } else {
 | |
|       reportErrorMenu.removeAttribute("disabled");
 | |
|     }
 | |
|   },
 | |
| 
 | |
|   /**
 | |
|    * Used to report a phishing page or a false positive
 | |
|    *
 | |
|    * @param name
 | |
|    *        String One of "PhishMistake", "MalwareMistake", or "Phish"
 | |
|    * @param info
 | |
|    *        Information about the reasons for blocking the resource.
 | |
|    *        In the case false positive, it may contain SafeBrowsing
 | |
|    *        matching list and provider of the list
 | |
|    * @return String the report phishing URL.
 | |
|    */
 | |
|   getReportURL(name, info) {
 | |
|     let reportInfo = info;
 | |
|     if (!reportInfo) {
 | |
|       let pageUri = gBrowser.currentURI;
 | |
| 
 | |
|       // Remove the query to avoid including potentially sensitive data
 | |
|       if (pageUri instanceof Ci.nsIURL) {
 | |
|         pageUri = pageUri
 | |
|           .mutate()
 | |
|           .setQuery("")
 | |
|           .finalize();
 | |
|       }
 | |
| 
 | |
|       reportInfo = { uri: pageUri.asciiSpec };
 | |
|     }
 | |
|     return SafeBrowsing.getReportURL(name, reportInfo);
 | |
|   },
 | |
| };
 |