[Ext] userChrome.js

Announce and Discuss the Latest Theme and Extension Releases.
Locked
Lost User 255607
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Add Edit button of external editor.

Post by Lost User 255607 »

pile0nades wrote:This code adds a button to Stylish that adds !important to every rule. This is good for installing new styles that don't use !important to persist the rules, or if you don't feel like typing 10, 20, 30 or more letters (10 to each !important flag) when a button press will fill in all of them.
Image

<a href="data:text/javascript;charset=utf-8;base64,V2luZG93SG9vay5yZWdpc3RlcigiY2hyb21lOi8vc3R5bGlzaC9jb250ZW50L3N0eWxpc2gtZWRpdC54dWwiLA0KICBmdW5jdGlvbihhV2luZG93KSB7DQogICAgLy8gZ2V0IHRoZSBjaGVja2JveA0KICAgIHZhciBjaGVja2JveCA9IGFXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndyYXAtbGluZXMiKTsNCiAgICANCg0KICAgIC8vIGNyZWF0ZSBhIGJ1dHRvbiBhbmQgcGxhY2UgaXQNCiAgICB2YXIgYnV0dG9uID0gYVdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsNCiAgICBidXR0b24uc2V0QXR0cmlidXRlKCJsYWJlbCIsICIhaW1wb3J0YW50Iik7DQogICAgY2hlY2tib3gucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYnV0dG9uLCBjaGVja2JveCk7DQoNCiAgICANCiAgICAvLyBhZGQgY2xpY2sgZXZlbnQgdG8gYnV0dG9uDQogICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgICB2YXIgY29kZSA9IGFXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvZGUiKTsNCiAgICAgIGNvZGUudmFsdWUgPSBwZXJzaXN0KGNvZGUudmFsdWUpOw0KICAgIH0sIGZhbHNlKQ0KDQoNCiAgICAvLyBhZGQgIWltcG9ydGFudCB0byBldmVyeSBzdHlsZQ0KICAgIGZ1bmN0aW9uIHBlcnNpc3QoY3NzKSB7DQoNCiAgICAgIC8vdmFyIHRoZWNvZGUgPSBjc3Muc3BsaXQoInsiKVsxXS5zcGxpdCgifSIpWzBdOw0KICAgICAgLy9hbGVydCh0aGVjb2RlKTsNCiAgICAgIA0KICAgICAgLy8gcmVtb3ZlIGFsbCAhaW1wb3J0YW50J3MgdGhlbiBwdXQgdGhlbSBiYWNrIG9uIGFsbCBydWxlcw0KICAgICAgdmFyIG5ld2NvZGUgPSBjc3MNCiAgICAgICAgLnJlcGxhY2UoLyFpbXBvcnRhbnQvZ2ksICIiKQ0KICAgICAgICAucmVwbGFjZSgvISBpbXBvcnRhbnQvZ2ksICIiKQ0KICAgICAgICAucmVwbGFjZSgvOy9naSwgIiFpbXBvcnRhbnQ7Iik7DQogICAgICAgIA0KICAgICAgLy8gcmVtb3ZlIHRoZSAhaW1wb3J0YW50IGZyb20gdGhlIG5hbWVzcGFjZSBydWxlIGlmIGl0IGdvdCBhZGRlZDsNCiAgICAgIGlmKG5ld2NvZGUuaW5kZXhPZigiKSFpbXBvcnRhbnQ7IikgIT0gLTEpIHsNCiAgICAgICAgbmV3Y29kZSA9IG5ld2NvZGUucmVwbGFjZSgvIWltcG9ydGFudC9pLCAiIik7DQogICAgICB9DQogICAgICANCiAgICAgIHJldHVybiBuZXdjb2RlOw0KICAgIH0NCg0KDQogIH0NCik7DQoNCg%3D%3D">important.uc.js</a>

Note: it doesn't work for rules that don't have a semicolon at the end, I don't know how to fix that, sorry. Maybe if I knew some more regexp. Also, this requires the WindowHook code from the first page.

Add Edit button of external editor.
Image

http://space.geocities.jp/alice0775/STO ... edit.uc.js

It is necessary to edit the variable(_editor, _tmpdir etc.) according to your environment.

function editinit(){

_editor = "C:\\WINDOWS\\notepad.exe"; /* windows */

_tmpdir = "C:\\windows\\temp"; /* windows */

_dir_separator = '\\'; /* windows */

_os = 'win'; /* windows */

}else{

_editor = "/bin/vi"; /* unix */

_tmpdir = "/tmp"; /* unix */

_dir_separator = '/'; /* unix */

_os = 'unix'; /* unix */

. . . .

User avatar
pirlouy
Posts: 232
Joined: February 11th, 2005, 6:29 am
Location: France

Post by pirlouy »

Zoolcar9 wrote:<a href="data:application/x-javascript;charset=utf-8;base64,Ly9UaGlzIHNjcmlwdCB3aWxsIGFkZCAiSGVsbG8sIFdvcmxkISIgYnV0dG9uIG9uIHRoZSB0b29sYmFyDQoNCihmdW5jdGlvbigpIHsNCiAgdmFyIG5ld0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRvb2xiYXJidXR0b24iKTsNCiAgbmV3QnV0dG9uLnNldEF0dHJpYnV0ZSgibGFiZWwiLCAiSGVsbG8sIFdvcmxkISIpOw0KICBuZXdCdXR0b24uc2V0QXR0cmlidXRlKCJvbmNvbW1hbmQiLCAiYWxlcnQoJ0hlbGxvLCBXb3JsZCEnKTsiKTsNCiAgbmV3QnV0dG9uLnN0eWxlLmxpc3RTdHlsZUltYWdlID0gInVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFBUU1BQUFBbFBXMGlBQUFBRlhSRldIUkRjbVZoZEdsdmJpQlVhVzFsQUFmV0F4c1NLU1VONmlBZUFBQUFCM1JKVFVVSDFnTWJFaTA0MzRGcXN3QUFBQWx3U0ZsekFBQU9kQUFBRG5RQmF5U3oxZ0FBQUFaUVRGUkZBQUFBJTJGJTJGJTJGJTJGcGRtZjNRQUFBQ1ZKUkVGVWVOcGolMkJQJTJCZkFZS21uV0lvMndsQ2swNUJSYjcxTTN5WXolMkZCdFA0Z0JVd1lBaGNVYldjdWhlVDhBQUFBQVNVVk9SSzVDWUlJJTNEKSI7DQogIG5ld0J1dHRvbi5zdHlsZS5wYWRkaW5nID0gIjAiOw0KDQogIHZhciBob21lQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvbWUtYnV0dG9uIik7IC8vSG9tZSBidXR0b24NCiAgaG9tZUJ1dHRvbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShuZXdCdXR0b24sIGhvbWVCdXR0b24ubmV4dFNpYmxpbmcpOyAvL2FkZHMgdGhlIG5ldyBidXR0b24gb24gdGhlIHJpZ2h0IG9mIEhvbWUgYnV0dG9uDQoNCn0pKCk7DQoNCg%3D%3D">Adds a toolbarbutton</a>
It would be cool if buttons were not dependant of another button...
Like Custom Buttons seems to be dead, it would be great if there were a code snippet to add a button in Customize Toolbar window. But maybe it's difficult or too long...

Edit: I've read that pile0nades has tried and he is not so far to find the solution. Good luck for those interested by implementing this feature... ;)
User avatar
dougeeebear
Posts: 548
Joined: September 15th, 2005, 4:17 pm

Post by dougeeebear »

Alice0775,
Great job with the external editor!
I've been playing around with the _tmpdir setting because the temp directory can get loaded up very quickly if the external editor is used a lot.
This setting seems to create a temp directory for you if it doesn't exist.
Would it be possible to add a function near the end of the script that would also delete the temp directory?
I would like to create the temp directory in my profile directory when the external editor is called, then delete it when the editor is closed.

Thanks,
Doug
Old Dawudd
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Stop-Reload-Go Button (updated)

Post by Old Dawudd »

I have updated pile0nades’ Stop-Reload-Go script (thanks to his help). The Go button is now displayed for blank pages, and it should work fine for both large and small icons.

<a href="data:application/javascript;charset=utf-8;base64,LyogOjo6Ojo6Ojo6Ojo6IFN0b3AtUmVsb2FkLUdvIEJ1dHRvbiA6Ojo6Ojo6Ojo6OjogKi8NCg0KKGZ1bmN0aW9uKCl7DQoNCglkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ28tYnV0dG9uLXN0YWNrIikuaW5zZXJ0QmVmb3JlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ28tYnV0dG9uIikpOw0KCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnby1idXR0b24tc3RhY2siKS5pbnNlcnRCZWZvcmUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlbG9hZC1idXR0b24iKSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvLWJ1dHRvbiIpKTsNCg0KCS8vIE5vIHdheSB0byB1c2UgOmZvY3VzIGluc3RlYWQ/DQoJZG9jdW1lbnQuZ2V0QW5vbnltb3VzRWxlbWVudEJ5QXR0cmlidXRlKGdVUkxCYXIsICJhbm9uaWQiLCAiaW5wdXQiKS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKCl7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpLnN0eWxlLmRpc3BsYXkgPQ0KCQlkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVsb2FkLWJ1dHRvbiIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnby1idXR0b24iKS5zdHlsZS5kaXNwbGF5ID0gIi1tb3otYm94IjsNCgl9LCBmYWxzZSk7DQoJZG9jdW1lbnQuZ2V0QW5vbnltb3VzRWxlbWVudEJ5QXR0cmlidXRlKGdVUkxCYXIsICJhbm9uaWQiLCAiaW5wdXQiKS5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgZnVuY3Rpb24oKXsNCgkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIikuc3R5bGUuZGlzcGxheSA9DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWxvYWQtYnV0dG9uIikuc3R5bGUuZGlzcGxheSA9DQoJCWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJnby1idXR0b24iKS5zdHlsZS5kaXNwbGF5ID0gbnVsbDsNCgl9LCBmYWxzZSk7DQoNCn0pKCk7">Stop-Reload-Go Button.uc.js</a>

The following style sheet is required in userChrome.css or Stylish:

Code: Select all

#stop-button, #reload-button {
   -moz-appearance: toolbar !important;
   padding: 0 !important;
}
toolbar[iconsize="large"] #go-button {
   padding: 1px 0 2px !important;
}

#stop-button[disabled],
#reload-button[disabled],
#stop-button:not([disabled]) + #reload-button,
#stop-button:not([disabled]) ~ #go-button,
#reload-button:not([disabled]) + #go-button {
   display: none;
}

On themes other than the default, the padding for the Stop or Reload buttons may need to be modified to centre them more ideally within the Go button’s box.
Last edited by Old Dawudd on June 9th, 2007, 8:19 pm, edited 2 times in total.
Lost User 255607
Posts: 0
Joined: December 31st, 1969, 5:00 pm

External Editor for Stylish, Custom Buttons, Textarea

Post by Lost User 255607 »

dougeeebear wrote:Alice0775,
Great job with the external editor!
I've been playing around with the _tmpdir setting because the temp directory can get loaded up very quickly if the external editor is used a lot.
This setting seems to create a temp directory for you if it doesn't exist.
Would it be possible to add a function near the end of the script that would also delete the temp directory?
I would like to create the temp directory in my profile directory when the external editor is called, then delete it when the editor is closed.

Thanks,
Doug


Create the temp directory(named Temp_ExternalEditor) in your profile directory when the external editor is called, then delete it when 'all window' are closed.

http://space.geocities.jp/alice0775/REQ ... edit.uc.js

Add External editor for "Custum Buttons" extentions.
(middle click on code and initcode area)
http://space.geocities.jp/alice0775/REQ ... edit.uc.js

Add External editor for main window textarea.
(right click and select contextmenu "External Editor")
http://space.geocities.jp/alice0775/REQ ... itor.uc.js

note: It is necessary to edit the variable( _editor in init function) according to your environment.
pile0nades
Posts: 756
Joined: May 15th, 2005, 2:31 am

Post by pile0nades »

I've tweaked the regex of the !important button so it works better now, and cleaned up the code a little. Thanks to feyd on the DevNetwork forums for hints.

<a href="data:text/javascript;charset=utf-8;base64,V2luZG93SG9vay5yZWdpc3RlcigiY2hyb21lOi8vc3R5bGlzaC9jb250ZW50L3N0eWxpc2gtZWRpdC54dWwiLA0KICBmdW5jdGlvbihhV2luZG93KSB7DQogICAgLy8gZ2V0IHRoZSBjaGVja2JveA0KICAgIHZhciBjaGVja2JveCA9IGFXaW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndyYXAtbGluZXMiKTsNCiAgICANCiAgICAvLyBjcmVhdGUgYSBidXR0b24gYW5kIHBsYWNlIGl0DQogICAgdmFyIGJ1dHRvbiA9IGFXaW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7DQogICAgYnV0dG9uLnNldEF0dHJpYnV0ZSgibGFiZWwiLCAiIWltcG9ydGFudCIpOw0KICAgIGNoZWNrYm94LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGJ1dHRvbiwgY2hlY2tib3gpOw0KICAgIA0KICAgIC8vIGFkZCBjbGljayBldmVudCB0byBidXR0b24NCiAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbigpIHsNCiAgICAgIHZhciBjb2RlID0gYVdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29kZSIpOw0KICAgICAgdmFyIGJveCA9IGNvZGUubUlucHV0RmllbGQ7DQogICAgICB2YXIgc2Nyb2xsID0gW2JveC5zY3JvbGxUb3AsIGJveC5zY3JvbGxMZWZ0XTsNCg0KICAgICAgY29kZS52YWx1ZSA9IGNvZGUudmFsdWUNCiAgICAgIC5yZXBsYWNlKC9ccyo%2FIVxzKj9pbXBvcnRhbnQvZ2ksICIiKSAgICAgICAgIC8vIHJlbW92ZSBleGlzdGluZyAhaW1wb3J0YW50J3MgdG8gc2ltcGxpZnkgdGhpbmdzDQogICAgICAucmVwbGFjZSgvKDouKj8oPzpcdys%2FXCgoPzoufFxuKSo%2FXCl8LikqPylccyo%2FKD86O3woXHMqPyg%2FOlxuKz9ccyo%2FKD86XC9cKi4qP1wqXC8pKj9ccyo%2FKSo%2FXH0pKS9naSwgIiQxICFpbXBvcnRhbnQ7JDIiKSAvLyBhZGQgIWltcG9ydGFudCB0byBhbGwgc3R5bGUgcnVsZXMqDQogICAgICAucmVwbGFjZSgvKEBuYW1lc3BhY2UuKj8pXHMqIWltcG9ydGFudC9naSwgIiQxIikgLy8gcmVtb3ZlICFpbXBvcnRhbnQgZnJvbSBuYW1lc3BhY2UgZGVjbGFyYXRpb25zDQogICAgICANCiAgICAgIGJveC5zY3JvbGxUb3AgPSBzY3JvbGxbMF07DQogICAgICBib3guc2Nyb2xsTGVmdCA9IHNjcm9sbFsxXTsNCiAgICB9LCBmYWxzZSk7DQogIH0NCik7DQoNCi8vICpzaW1wbGlmaWVkIGZyb20gYSByZWdleCBmcm9tIGZleWQgb24gdGhlIERldk5ldHdvcmsgZm9ydW1zLCB0aGFua3MhDQovLyBodHRwOi8vZm9ydW1zLmRldm5ldHdvcmsubmV0L3ZpZXd0b3BpYy5waHA%2FcD0zNTI5NDYjMzUyOTQ2DQo%3D">important.uc.js</a>

Edit:this function is included in the latest Stylish alpha version, with much better code too.
Last edited by pile0nades on March 3rd, 2007, 6:13 pm, edited 1 time in total.
Linkify bug numbers - test: bug 258287
User avatar
dougeeebear
Posts: 548
Joined: September 15th, 2005, 4:17 pm

Post by dougeeebear »

Alice0775 ,
Thanks for the updated temp directory for the stylish external editor.
It works perfect.

Regards,
Doug
User avatar
Kupfel
Posts: 416
Joined: December 18th, 2005, 10:03 pm

Post by Kupfel »

is it possible to move the navigation toolbar right above the tabbar ? .. or to create a toolbar above the tabbar and to move all items from the navigation toolbar onto it? i don't want it to go over the sidebar but to stop at the sidebar, just like the tabbar.
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »

Code: Select all

(function() {
  var navbar = document.getElementById("nav-bar");
  var tabStrip = gBrowser.mStrip;
  tabStrip.parentNode.insertBefore(navbar, tabStrip);
})();

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
User avatar
Kupfel
Posts: 416
Joined: December 18th, 2005, 10:03 pm

Post by Kupfel »

thank you, it works. But instead of the windows default background (a blue gradient) which bookmarks toolbar menubar etc have it does now have an all white background. Any idea how to fix that?
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


It appeared normal on me. Maybe it's your theme or userChrome.css/Stylish

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
User avatar
dougeeebear
Posts: 548
Joined: September 15th, 2005, 4:17 pm

Post by dougeeebear »

It would be really neat to incorporate this custom button as another button in the Stylish editor.
Would that be a possibility?
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


It will be in the next version of Stylish

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
User avatar
dougeeebear
Posts: 548
Joined: September 15th, 2005, 4:17 pm

Post by dougeeebear »

Zoolcar9 wrote:
It will be in the next version of Stylish



I know, but I would really like to incorporate it in my current version (I'm not planning on upgrading).
Zoolcar9
Posts: 2225
Joined: November 9th, 2004, 6:45 pm
Location: Jakarta, Indonesia (UTC+7)
Contact:

Post by Zoolcar9 »


<a href="data:application/x-javascript;base64,KGZ1bmN0aW9uKCkgewoKLy8uLi4uLmluc2VydCBXaW5kb3dIb29rIHNuaXBwZXQgaGVyZS4uLi4uLi4uLi8vCgogIFdpbmRvd0hvb2sucmVnaXN0ZXIoImNocm9tZTovL3N0eWxpc2gvY29udGVudC9zdHlsaXNoLWVkaXQueHVsIiwKICAgIGZ1bmN0aW9uKGFXaW5kb3cpIHsKICAgICAgdmFyIENjID0gQ29tcG9uZW50cy5jbGFzc2VzOwogICAgICB2YXIgQ2kgPSBDb21wb25lbnRzLmludGVyZmFjZXM7CiAgICAgIHZhciBEb2MgPSBhV2luZG93LmRvY3VtZW50OwoKICAgICAgYVdpbmRvdy5nZXRGaWxlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgY29uc3QgbnNJRmlsZVBpY2tlciA9IENpLm5zSUZpbGVQaWNrZXI7CiAgICAgICAgdmFyIGZwID0gQ2NbIkBtb3ppbGxhLm9yZy9maWxlcGlja2VyOzEiXQogICAgICAgICAgICAgICAgICAgLmNyZWF0ZUluc3RhbmNlKG5zSUZpbGVQaWNrZXIpOwogICAgICAgIGZwLmluaXQoYVdpbmRvdywgIk9wZW4gRmlsZSIsIG5zSUZpbGVQaWNrZXIubW9kZU9wZW4pOwogICAgICAgIGZwLmFwcGVuZEZpbHRlcnMobnNJRmlsZVBpY2tlci5maWx0ZXJJbWFnZXMpOwogICAgICAgIGZwLmFwcGVuZEZpbHRlcigiQWxsIEZpbGVzIiwgIiouKiIpOwogICAgICAgIGlmIChmcC5zaG93KCkgPT0gbnNJRmlsZVBpY2tlci5yZXR1cm5DYW5jZWwpIHJldHVybjsKICAgICAgICB2YXIgbG9jYWxGaWxlID0gQ2NbIkBtb3ppbGxhLm9yZy9maWxlL2xvY2FsOzEiXQogICAgICAgICAgICAgICAgICAgICAgICAgIC5jcmVhdGVJbnN0YW5jZShDaS5uc0lMb2NhbEZpbGUpOwogICAgICAgIGxvY2FsRmlsZS5pbml0V2l0aFBhdGgoZnAuZmlsZS5wYXRoKTsKICAgICAgICByZXR1cm4gbG9jYWxGaWxlOwogICAgICB9CgogICAgICBhV2luZG93LmdlbmVyYXRlRGF0YVVSSSA9IGZ1bmN0aW9uKGFGaWxlKSB7CiAgICAgICAgdmFyIGNvbnRlbnRUeXBlID0gQ2NbIkBtb3ppbGxhLm9yZy9taW1lOzEiXS5nZXRTZXJ2aWNlKENpLm5zSU1JTUVTZXJ2aWNlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0VHlwZUZyb21GaWxlKGFGaWxlKTsKICAgICAgICB2YXIgaW5wdXRTdHJlYW0gPSBDY1siQG1vemlsbGEub3JnL25ldHdvcmsvZmlsZS1pbnB1dC1zdHJlYW07MSJdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5zdGFuY2UoQ2kubnNJRmlsZUlucHV0U3RyZWFtKTsKICAgICAgICBpbnB1dFN0cmVhbS5pbml0KGFGaWxlLCAweDAxLCAwNjAwLCAwKTsKICAgICAgICB2YXIgc3RyZWFtID0gQ2NbIkBtb3ppbGxhLm9yZy9iaW5hcnlpbnB1dHN0cmVhbTsxIl0KICAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5zdGFuY2UoQ2kubnNJQmluYXJ5SW5wdXRTdHJlYW0pOwogICAgICAgIHN0cmVhbS5zZXRJbnB1dFN0cmVhbShpbnB1dFN0cmVhbSk7CiAgICAgICAgdmFyIGVuY29kZWQgPSBidG9hKHN0cmVhbS5yZWFkQnl0ZXMoc3RyZWFtLmF2YWlsYWJsZSgpKSk7CiAgICAgICAgLy92YXIgZW5jb2RlZCA9IGVzY2FwZShzdHJlYW0ucmVhZEJ5dGVzKHN0cmVhbS5hdmFpbGFibGUoKSk7CiAgICAgICAgcmV0dXJuICJkYXRhOiIgKyBjb250ZW50VHlwZSArICI7YmFzZTY0LCIgKyBlbmNvZGVkOwogICAgICB9CgogICAgICBhV2luZG93Lmluc2VydENvZGVBdENhcmV0ID0gZnVuY3Rpb24oc25pcHBldCkgewogICAgICAgIHZhciBjb2RlRWxlbWVudCA9IERvYy5nZXRFbGVtZW50QnlJZCgiY29kZSIpOwogICAgICAgIHZhciBzZWxlY3Rpb25FbmQgPSBjb2RlRWxlbWVudC5zZWxlY3Rpb25TdGFydCArIHNuaXBwZXQubGVuZ3RoOwogICAgICAgIGNvZGVFbGVtZW50LnZhbHVlID0gY29kZUVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKDAsIGNvZGVFbGVtZW50LnNlbGVjdGlvblN0YXJ0KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbmlwcGV0ICsgY29kZUVsZW1lbnQudmFsdWUuc3Vic3RyaW5nKGNvZGVFbGVtZW50LnNlbGVjdGlvbkVuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZUVsZW1lbnQudmFsdWUubGVuZ3RoKTsKICAgICAgICBjb2RlRWxlbWVudC5mb2N1cygpOwogICAgICAgIGNvZGVFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkVuZCwgc2VsZWN0aW9uRW5kKTsKICAgICAgfQoKICAgICAgYVdpbmRvdy5pbnNlcnREYXRhVVJJID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGZpbGUgPSBhV2luZG93LmdldEZpbGUoKTsKICAgICAgICBpZiAoIWZpbGUpIHJldHVybjsKICAgICAgICB2YXIgZGF0YVVSSSA9IGFXaW5kb3cuZ2VuZXJhdGVEYXRhVVJJKGZpbGUpOwogICAgICAgIGFXaW5kb3cuaW5zZXJ0Q29kZUF0Q2FyZXQoZGF0YVVSSSk7CiAgICAgIH0KCiAgICAgIHZhciBtcCA9IERvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibWVudXBvcHVwIilbMF07CiAgICAgIHZhciBtaSA9IG1wLmluc2VydEJlZm9yZShEb2MuY3JlYXRlRWxlbWVudCgibWVudWl0ZW0iKSwgbXAubGFzdENoaWxkKTsKICAgICAgbWkuc2V0QXR0cmlidXRlKCJsYWJlbCIsICJJbnNlcnQgZGF0YTpVUkkgSW1hZ2UgZnJvbSBGaWxlIik7CiAgICAgIG1pLnNldEF0dHJpYnV0ZSgib25jb21tYW5kIiwgImluc2VydERhdGFVUkkoKTsiKTsKICAgIH0KICApOwoKfSkoKTsKCg%3D%3D">Try this</a>. It will add a menu item on "Insert" button.

Image

My Firefox information | Add-ons | GitHub

"With great power, comes great desire to show it off."
Locked