Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Ihmemies posted:

Thanks for this. I use ff on android because of ublock and holy poo poo was web browsing horrible.

:same:
I have my beautiful theme back. :peanut:

Are there any theme/add-on developers here? I rolled my own add-on for personal use a while back and more recently reimplemented the Space Fantasy theme that once came bundled with the browser but was deleted and never updated for the new method of doing themes.

Every once in a while sometime drops a review of my theme despite me never having publicised it. It's an odd feeling knowing total strangers like my fifteen minutes of work.

Adbot
ADBOT LOVES YOU

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


J posted:

I just updated to 66.0.4 since all the other workarounds didn't do poo poo for me and this fixed it.

I'm on 66.0.4 with all of my add-ons happily enabled and the one of the hotfix studies showing as having been completed.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


endlessmonotony posted:

They did, yes. The notes are in 66.0.4's in-depth notes.

I checked the notes but the linked ticket didn't say anything about Mozilla resubmitting themes for review of their own accord. My theme got bumped to 3.0 without any interaction on my part and is receiving a validation warning because it has already been signed.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!



I like it. Welcome little pandafriendo!

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Spaseman posted:

This might not be the best place to ask but I've got a text box on a company website at work I have to enter short lines of text into. After each line I have to hit enter then the page reloads and I enter a new line of text. Is there a way I could submit multiple strings of text at once so I don't have to manually paste and enter each line one by one? Sorry if this is poorly conveyed.

Type up the whole thing in notepad and paste it into the text area?

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Kheldarn posted:

Yeah, it's embedded tweets causing the issue. The only fix is to enable Tracking Protection for the forums, which will make the tweets just be links instead of embeds. Otherwise, after the page loads, just hit ALT+D to go to the address bar, and then hit ENTER, and it'll put you where you should be.

Team CTRL+L for life.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Megillah Gorilla posted:

I had to gently caress about so goddamn much to try and get tabs working properly after Quantum castrated Tab Mix Plus.

I currently have Tab Mix - Links and Tab Open/Close Control and a couple of about :config settings changed which I can't remember off the top of my head.

It's still nowhere as good as it was before, but tabs will mostly shift focus to the left when closing a tab.

Mostly.

Okay, often.

TMP was simply too beautiful for this world

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Klyith posted:

I'm not aware of an incident where a password manager had an in-the-wild attack that compromised their software to steal passwords. Even LastPass, the worst offender, is just getting owned repeatedly in private by Tavis Ormandy.

This just happened again last week, and was fixed well within the 90 day disclosure. I've used LastPass for years, and I realize they've had their issues, but the vulnerabilities that have been exposed have been getting patched. That gives me the peace of mind I need for the kind of attackers I'd expect to target me.

If Mossad decides they want my gmail, it doesn't matter what password manager I use. I will still be Mossad'ed upon.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


overmind2000 posted:

Wow, unless I'm wrong that was one of the big add-ons that wasn't going to be ported/rewritten to be a webextension so it's pretty insane to see that it actually happened. What are the other big add-ons left that haven't been brought over yet?

Tab Mix Plus :smith:

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


effika posted:

What's a good dark mode extension for Android Firefox? It can't run themes otherwise I'd just use one.

Android firefox can run themes.
Source: A theme I published got popular for no apparent reason, with no effort made to publicize it.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


D. Ebdrup posted:

What's the theme called, so I can be your sole FreeBSD user?

Space Fantasy Redux

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


effika posted:

Ooh, this turns the notification area a pretty blue. Nice.

Thanks! I like it, too. :shobon:
I can't take all the credit. This is a reimplementation of a theme that shipped with Firefox 34 that the author subsequently deleted and dropped off the face of the earth. I just repackaged the assets and filled in the blanks for the things that had changed.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Has anyone noticed an uptick in out of memory errors since ~72.0.0? I leave a tab open on my home PC that refreshes every few minutes via location.reload() via an add-on and I start seeing it crash after ~5 hours. It's really annoying.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Ola posted:

How much RAM do you have? I have had one single out of memory situation across two laptops with 8 gig and it was due to a Java app I had written myself. :kiddo:

On 4 gigs, both Chrome and old Firefox would poo poo themselves fairly often.

Pretty sure I'm working with 16 gigs, and FF has never eaten it all AFAIK.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Klyith posted:

I've very rarely had out of memory errors, before or after 72. And when I have it's been directly because some site has javascript coded by a monkey that is immediately causing the problem (local news sites linked in gbs threads have been the most frequent culprit).

Which extension are you using, it seems pretty obvious that it is leaking memory when doing reloading.

edit: or the page is doing the leaking, if it has elements like scripts that create zombie compartments during the reload

So the site is the facebook pokes page, and the extension is one I wrote myself that only runs on that page. I didn't make any changes for months before 72 came out, and only noticed problems after the big security update we got recently.

My extension doesn't do a whole lot:
code:
var AutoPoke = {
  refreshHandle : null,
  toClick : [],
  maxSecondsToWait : 300,

  initializeToClick : function(){
    this.toClick["Person1"] = {
      waitingToClick:false,
      id:1234
    };

    this.toClick["Person2"] = {
      waitingToClick:false,
      id:4567
    };

    this.toClick["Person3"] = {
      waitingToClick:false,
      id:7890
    };

    this.toClick["Person4"] = {
      waitingToClick:false,
      id:0123
    };
  },

  //New approach:
  //On pageload, do findToClick, check, and click.
  //Delay between 1 and 300 seconds.
  //Refresh the page
  findToClick : function()
  {
    var needToCheck = [];
    var foundSome = false;
    for(var i in this.toClick){
      if(this.toClick[i].waitingToClick == false){
        needToCheck.push(this.toClick[i]);
      }
    }
  
    if(needToCheck.length == 0){
      return;
    }
    
    var collection = document.getElementsByTagName('a');
    for(var i=0;i<collection.length;i++)
    {
      if(collection[i].hasAttribute)
      {
        if(collection[i].hasAttribute("ajaxify"))
        {
          for(var j=0;j<needToCheck.length;j++)
          {
            if(collection[i].getAttribute("ajaxify").includes("&is_hide=0&poke_target=" + needToCheck[j].id + "&"))
            {
              this.clickIt(collection[i], needToCheck[j]);
              foundSome = true;
            }
          }
        }
      }
    }

    return foundSome;
  },

  clickIt : function(toClick, tracker){
    tracker.waitingToClick = true;
    this.clickAndReset(toClick, tracker);
  },

  clickAndReset : function(toClick, tracker){
    toClick.click();
    tracker.waitingToClick = false;
  },

  getParameterByName : function(name) {
    var url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
        results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
  },

  injectForm : function(parentElement, offerEnable){
    var form = parentElement.appendChild(document.createElement('form'));
    form.name = 'autoClickForm';
    form.id = 'autoClickForm';
    form.action = this.getPathFromUrl(window.location.href);
    
    var button = form.appendChild(document.createElement('button'));
    button.type = 'submit';
    button.name = 'autopoke';
    button.id = 'autopoke';
    button.form = 'autoClickForm';
    button.value = offerEnable;
    
    if(offerEnable){
      button.innerText = 'Enable Autopoke';
    }
    else{
      button.innerText = 'Disable Autopoke';
    }

    form.addEventListener('submit',
      function(){
        setTimeout(
          function(){
            window.location.reload();
          },
          100
        );
      }
    );

  },

  getPathFromUrl : function(url) {
    return url.split(/[?#]/)[0];
  },

  runAtLoad : function(){
    var element = document.getElementById("poke_live_new").parentElement;
    if(this.getParameterByName('autopoke') === 'true'){
      this.initializeToClick();
      this.injectForm(element, false);
      element.style.border = '5px solid red';
      var ignore = this.findToClick();
      this.scheduleTimeout();
    }
    else{
      this.injectForm(element, true);
      element.style.border = '5px solid green';
    }
  },

  onTimeoutEnd : function(){
    if(AutoPoke.findToClick() === false){
      location.reload();
    }
    else{
      AutoPoke.scheduleTimeout();
    }
  },

  scheduleTimeout : function(){
    var timeToWait = Math.floor((Math.random() * this.maxSecondsToWait) + 1) * 1000;
    this.refreshHandle = setTimeout(AutoPoke.onTimeoutEnd, timeToWait);
    console.log(this.refreshHandle);
  }
};

AutoPoke.runAtLoad();
I have a list of people to poke, scan the page for if there's a "So and so poked you, poke back" button for them, and if there is: click it.
Sometimes the ajax to grab fresh data from FB would die, so I baked in a refresh of the page itself.

The only thing I do that is outside of the scope of the AutoPoke object is the setTimeout() calls, the injection of the form element, and console.log()

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Im_Special posted:



Back when things had Soul.

Long after I switched to Firefox, I was looking for a file on my old high school era USB sticks and I found a copy of Phoenix 0.5b that I used to evade the web filtering that I had completely forgotten about. Turns out I was a user for longer than I thought.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


astral posted:

Which addons do send all your dick pics to Putin? This seems like useful info for the OP. Doesn't have to be limited to ones with webpage change alerts.

poo poo, I even added that to the addon I wrote just for myself. It's checked as part of the automated addon review process.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Are these UI changes going to do anything to themes?

While I'm still salty I can't use my theme on Firefox Android, I'd like to prepare if something changes for the desktop version.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


WattsvilleBlues posted:

Don't know the answer but why don't you try out the beta version and see what happens with your theme? Also can we have a screenshot?

I linked it before here: Space Fantasy Redux

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Welp, I now understand why I got a bunch of reviews for my theme over the last week. I haven't personally updated yet, but I do make the active tab visually distinct:

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


GreatGreen posted:

So Firefox updated and my active tab no longer looks different from inactive tabs. They're all the same washed out grey color. Oh but the active tab has a single-pixel-wide slightly darker-grey ring around it so everything's fiiiiine. Seriously though it's impossible for me to tell at a glance what tab I'm actually on.

*cough*

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Blue Footed Booby posted:

In a lot of database systems true is negative one. Computers, man.

I mean thanks to two's complement, -1 is much more one-y than 1.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Flipperwaldt posted:

It's like that in regex, which is probably what it uses internally in either mode. Idk the history. But it calls back to what matched the first wildcard. In case you use more than one. What matched the second wildcard would be represented by $2 etc.

That's the idea anyway. I don't know if that actually works in the basic wildcard mode.

This sounds right. I forget which regex engine uses $# indexing for captured submatches, but I remember seeing the examples.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


I've been experiencing a really weird intermittent error for the last few days.

Every so often Firefox decides to forget how to send HTTP requests when a page is loading and it is driving me loving bananas. Often what happens is a site's ancillary content is the victim, but on occasion an entire site will end up blacklisted by Firefox.
Here's what I'm talking about :
I navigate to Google.com on a new tab, and the new tab page remains unchanged. I can open up developer tools, retry the navigation to google.com and the request ends in just a few milliseconds

Nothing about my request seems untoward:

And the only other really relevant tab I can think of is the Timing details:


Refreshing the page tends not to fix things. On occasion, if I hit the Resend button in the second image, I will get a successful request and beginning at that point things seem okay. For a while.

What's also weird is the request status stays blank forever. It's like firefox or the remote server summarily hung up.
There is nothing in the browser console to indicate what the problem was. I didn't grab a screenshot but there's just nothing there.

This has persisted across multiple browser restarts and even a browser update from 98.whatever to 99.0. I also just rebooted my machine yesterday.

Has anyone experienced this before?

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


CMYK BLYAT! posted:

Having timing info for connecting but not for TLS negotiation suggests that it's probably never connecting successfully. Normally I'd expect that to display an error pretty quickly, but IDK offhand what Firefox's TCP connect timeout is.

Wireshark will confirm as much if you can find the TCP stream, though that's probably going to be difficult since you'll likely have plenty of other connections to Google and AFAIK no way to get Firefox to show the source port to better identify it. Unfortunately if you can confirm as much you're kind of left with the less than useful explanation of "blame your router doing something fucky", and most consumer routers have very little in terms of diagnostic tools.

https://firefox-source-docs.mozilla.org/networking/http/logging.html also exists as a sort of alternative to Wireshark but it's a pain to read.

I did some futzing and used mail.google.com acting up and caught these TCP conversations (I'm 192. in both images):
Bad:

Only the 13 packets shown were captured.

I had to restart Firefox in order to get a good capture, but I wanted to keep as much the same between good and bad as was possible, rather than use Chrome or something.

Good:

The good conversation has 905 total packets captured before I shut the trace off.

I inspected the two Client Hello's and found that the bad one's TLS Handshake Protocol's Extension collection had early_data (length 0) and pre_shared_Key (length 275) as opposed to the good Hello which did not have early_data or pre_shared_key extensions but did have a session_ticket extension with a length of 0. I don't know enough about the inner workings of TLS to understand what that means.

The other notable thing I see is that in the bad session, the Server Hello included Application Data while in the good session there was no Application Data in the Server Hello response.

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


Nth Doctor posted:

I did some futzing and used mail.google.com acting up and caught these TCP conversations (I'm 192. in both images):
Bad:

Only the 13 packets shown were captured.

I had to restart Firefox in order to get a good capture, but I wanted to keep as much the same between good and bad as was possible, rather than use Chrome or something.

Good:

The good conversation has 905 total packets captured before I shut the trace off.

I inspected the two Client Hello's and found that the bad one's TLS Handshake Protocol's Extension collection had early_data (length 0) and pre_shared_Key (length 275) as opposed to the good Hello which did not have early_data or pre_shared_key extensions but did have a session_ticket extension with a length of 0. I don't know enough about the inner workings of TLS to understand what that means.

The other notable thing I see is that in the bad session, the Server Hello included Application Data while in the good session there was no Application Data in the Server Hello response.

One fun new thing involved in this nonsense:
I was trying to look up how much it would be to ship an item from a shopping site by going through the whole cart->checkout process. In a normal window, the website automatically directed me to the third party payment payment provider, so I opened the same site in a Private window.

After that point, the normal window's instance of the site had all of the asset / CDN requests fail - no CSS, no images, just awful unstyled raw content running down the left side of the page.
The private window though? Everything was hunky dory. All the asset requests succeeded. The private window being successful however had no bearing on the requests issued from the nonprivate window.

I wasn't logged into the shop site itself in either window when this happened, though obviously that doesn't mean I didn't have cookies or local storage available to the browser.

All of the FF add-ons that I have active are enabled in both normal and Private windows.

Ninja edit: ask me how goddamn annoying it is to be unable to use google intermittently when I'm doing my first work in a brand new programming language.

Adbot
ADBOT LOVES YOU

Nth Doctor
Sep 7, 2010

Darkrai used Dream Eater!
It's super effective!


CMYK BLYAT! posted:

weird, so if that's indeed it, firefox was lying about the connection status and did complete TLS, and did send/receive some HTTP data after. you send something, then google sends something and closes the connection. this is hopefully a bit easier to diagnose since whatever they send is hopefully an explanation of what firefox did wrong, but you'll need to save TLS key data and decrypt it to see what: https://wiki.wireshark.org/TLS#using-the-pre-master-secret

Thanks for the tip. I've been poking at this off-and-on mostly because I didn't want to burn my FF Profile because it's already been tweaked to hell and back over the years. I did manage to capture bad vs. good TLS handshakes and when I was able to decode the responses the remote host was giving a fatal Bad Record MAC alert which is what precipitated the hangup.

Turns out, I'm not the only one having troubles and my colleague just shared this fix in our development channel.
I just turned security.tls.enable_0rtt_data off, and we'll see if everything chills the heck out.
Ninja edit: another bug logged about this

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply