summaryrefslogtreecommitdiffstats
path: root/application/palemoon/base/content/browser.js
diff options
context:
space:
mode:
authorMoonchild <mcwerewolf@gmail.com>2018-06-07 12:37:43 +0200
committerGitHub <noreply@github.com>2018-06-07 12:37:43 +0200
commitc8f1b9fc6c1c86674148b5875c1eb27335899b35 (patch)
tree795fc8dff36e0b075ccdaf7e828325e6be2eeaf3 /application/palemoon/base/content/browser.js
parent440ed92f38df5a57a9f8f97117dd0d211c2f5625 (diff)
parentd48914545ee1536ae39b02c7c885cfbdd3c8b804 (diff)
downloadUXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar
UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.gz
UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.lz
UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.tar.xz
UXP-c8f1b9fc6c1c86674148b5875c1eb27335899b35.zip
Merge pull request #459 from janekptacijarabaci/pm_findbar_2
[PALEMOON] Fix the Findbar - open when you press "/" or "'" keys after start of browser
Diffstat (limited to 'application/palemoon/base/content/browser.js')
-rw-r--r--application/palemoon/base/content/browser.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/application/palemoon/base/content/browser.js b/application/palemoon/base/content/browser.js
index a51b73fe8..ba791f709 100644
--- a/application/palemoon/base/content/browser.js
+++ b/application/palemoon/base/content/browser.js
@@ -328,6 +328,67 @@ const gSessionHistoryObserver = {
}
};
+var gFindBarSettings = {
+ messageName: "Findbar:Keypress",
+ prefName: "accessibility.typeaheadfind",
+ findAsYouType: null,
+
+ init: function() {
+ window.messageManager.addMessageListener(this.messageName, this);
+
+ gPrefService.addObserver(this.prefName, this, false);
+ this.writeFindAsYouType();
+ },
+
+ uninit: function() {
+ window.messageManager.removeMessageListener(this.messageName, this);
+
+ try {
+ gPrefService.removeObserver(this.prefName, this);
+ } catch (ex) {
+ Cu.reportError(ex);
+ }
+ },
+
+ observe: function(aSubject, aTopic, aData) {
+ if (aTopic != "nsPref:changed") {
+ return;
+ }
+
+ this.writeFindAsYouType();
+ },
+
+ writeFindAsYouType: function() {
+ this.findAsYouType = gPrefService.getBoolPref(this.prefName);
+ },
+
+ receiveMessage: function(aMessage) {
+ switch (aMessage.name) {
+ case this.messageName:
+ // If the find bar for chrome window's context is not yet alive,
+ // only initialize it if there's a possibility FindAsYouType
+ // will be used.
+ // There's no point in doing it for most random keypresses.
+ if (!gFindBarInitialized && aMessage.data.shouldFastFind) {
+ let shouldFastFind = this.findAsYouType;
+ if (!shouldFastFind) {
+ // Please keep in sync with toolkit/content/widgets/findbar.xml
+ const FAYT_LINKS_KEY = "'";
+ const FAYT_TEXT_KEY = "/";
+ let charCode = aMessage.data.fakeEvent.charCode;
+ let key = charCode ? String.fromCharCode(charCode) : null;
+ shouldFastFind = key == FAYT_LINKS_KEY || key == FAYT_TEXT_KEY;
+ }
+ if (shouldFastFind) {
+ // Make sure we return the result.
+ return gFindBar.receiveMessage(aMessage);
+ }
+ }
+ break;
+ }
+ }
+};
+
var gURLBarSettings = {
prefSuggest: "browser.urlbar.suggest.",
/*
@@ -730,6 +791,7 @@ var gBrowserInit = {
#ifdef MOZ_DEVTOOLS
DevToolsTheme.init();
#endif
+ gFindBarSettings.init();
messageManager.loadFrameScript("chrome://browser/content/content.js", true);
messageManager.loadFrameScript("chrome://browser/content/content-sessionStore.js", true);
@@ -1305,6 +1367,7 @@ var gBrowserInit = {
#ifdef MOZ_DEVTOOLS
DevToolsTheme.uninit();
#endif
+ gFindBarSettings.uninit();
UserAgentCompatibility.uninit();