forked from mirrors/gecko-dev
		
	 566f0c7a63
			
		
	
	
		566f0c7a63
		
	
	
	
	
		
			
			I don't see any visible issue on the reload / stop buttons without this. Differential Revision: https://phabricator.services.mozilla.com/D172238
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.8 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/. */
 | |
| 
 | |
| "use strict";
 | |
| 
 | |
| var EXPORTED_SYMBOLS = ["Pocket"];
 | |
| 
 | |
| const lazy = {};
 | |
| 
 | |
| ChromeUtils.defineModuleGetter(
 | |
|   lazy,
 | |
|   "CustomizableUI",
 | |
|   "resource:///modules/CustomizableUI.jsm"
 | |
| );
 | |
| 
 | |
| var Pocket = {
 | |
|   get site() {
 | |
|     return Services.prefs.getCharPref("extensions.pocket.site");
 | |
|   },
 | |
|   get listURL() {
 | |
|     return "https://" + Pocket.site + "/firefox_learnmore?src=ff_library";
 | |
|   },
 | |
| 
 | |
|   _initPanelView(window) {
 | |
|     let urlToSave = Pocket._urlToSave;
 | |
|     let titleToSave = Pocket._titleToSave;
 | |
|     Pocket._urlToSave = null;
 | |
|     Pocket._titleToSave = null;
 | |
|     // ViewShowing fires immediately before it creates the contents,
 | |
|     // in lieu of an AfterViewShowing event, just spin the event loop.
 | |
|     window.setTimeout(function() {
 | |
|       if (urlToSave) {
 | |
|         window.pktUI.tryToSaveUrl(urlToSave, titleToSave);
 | |
|       } else {
 | |
|         window.pktUI.tryToSaveCurrentPage();
 | |
|       }
 | |
|     }, 0);
 | |
|   },
 | |
| 
 | |
|   _urlToSave: null,
 | |
|   _titleToSave: null,
 | |
|   savePage(browser, url, title) {
 | |
|     // We want to target the top browser which has the Pocket panel UI,
 | |
|     // which might not be the browser saving the article.
 | |
|     const ownerGlobal = browser?.ownerGlobal?.top;
 | |
|     const ownerDocument = ownerGlobal?.document;
 | |
| 
 | |
|     if (!ownerDocument || !ownerGlobal?.PanelUI) {
 | |
|       return;
 | |
|     }
 | |
| 
 | |
|     let widget = lazy.CustomizableUI.getWidget("save-to-pocket-button");
 | |
|     let anchorNode = widget.areaType
 | |
|       ? widget.forWindow(ownerGlobal).anchor
 | |
|       : ownerDocument.getElementById("PanelUI-menu-button");
 | |
| 
 | |
|     this._urlToSave = url;
 | |
|     this._titleToSave = title;
 | |
|     ownerGlobal.PanelUI.showSubView("PanelUI-savetopocket", anchorNode);
 | |
|   },
 | |
| };
 |