["searchbar", "urlbar"].forEach(function(aId) {
  document.getElementById(aId).addEventListener("popupshowing", function(aEvent) {
    var menupopup = aEvent.originalTarget;
    var refChild = menupopup.getElementsByAttribute("cmd", "cmd_paste")[0];
    if (!refChild) return;
    var canPaste = refChild.getAttribute("disabled") == "true";
    var menuitem = document.getElementById(this.id + "-pasteand");
    if (!menuitem) {
      var bar = this;
      function pasteAndDo(aEvent) {
        // paste
        goDoCommand("cmd_paste");
        // and search/go
        bar.id == "searchbar" ? bar.handleSearchCommand(aEvent)
                              : handleURLBarCommand(aEvent);
        // close popup
        menupopup.hidePopup();
      }
      menuitem = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "xul:menuitem");
      menuitem.id = this.id + "-pasteand"
      menuitem.setAttribute("label", "\u8cbc\u308a\u4ed8\u3051\u3066" +
                                     (this.id == "searchbar" ? "\u691c\u7d22" : "\u79fb\u52d5"));
      menuitem.setAttribute("accesskey", "e");
      menuitem.addEventListener("command", pasteAndDo, false);
      menupopup.insertBefore(menuitem, refChild.nextSibling);
    }
    menuitem.setAttribute("disabled", canPaste.toString());
  }, false);
});