How to turn on the quit confirmation prompt in Chrome

Recently Chrome 69 started to disrespect the keyboard mapping on my Mac, which result in the Cut key becomes the Quit key! I searched for the option to confirm before quitting but the results are all outdated… Unbelievable! So here’s how:

On Linux and Windows

Go to chrome://flags

Search for Warn before quitting

píc.JPG

On Mac

Chrome Menu / Warn Before Quitting

Screen Shot 2018-09-21 at 10.31.19 AM.png

Facebook block workaround (and no, it doesn’t involve DNS)

image1

The reason [Source]

It has been a bit hard to reach facebook lately. For some ISP like Viettel and FPT, a DNS change is all it takes to resolve facebook’s IP and restore access to the site. For some other, like EVN and VNPT, here’s what you got

image2

Changing DNS won’t work, which means the rats must have bitten something else. You are forced to use slower methods to overcome this, which could heavily impact your ability to play happy farm 🙁

That’s until I read that facebook still work with SSL (e.g when you replaces http in the address with https you are able to login), but it reverts to http the next time you click a link and you’ll have to do it again. This is especially annoying with games, which uses a lot of redirects to show their ads and stuff (damn, they are greedy).

And so I made something to do the hard work for me, so that I won’t miss the daily login bonuses :p. It’s utterly simple and a bit hard to use  but it does the job.

The code

Make a form that looks like this

image3

Write these to the form’s code

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Executes when a request is made, it will fix the protocol or anything in
        /// the address if the first check box is checked
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
        {
            string Address = e.Url.ToString();
            // Facebook uses some complicated redirection method so we'lll have to ignore this
            if (Address.Contains("redirectiframe.html"))
                return;
            // If it's not from facebook or facebook's cache, just ignore it
            if (!Address.Contains("facebook") && !Address.Contains("fbcdn"))
                e.Cancel = true;
            else
                if (checkBox1.Checked && Address.Contains(textBox1.Text))
                {
                    e.Cancel = true;
                    webBrowser1.Navigate(Address.Replace(textBox1.Text, textBox2.Text));
                }
        }

        /// <summary>
        /// Load facebook on start
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://www.facebook.com");
        }

        /// <summary>
        /// Fixes link after the document is loaded, may break some pages
        /// and creates an endless loop on login so it's not enabled by default
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            if (checkBox2.Checked)
                webBrowser1.DocumentText = webBrowser1.DocumentText.Replace(textBox3.Text, textBox4.Text);
            toolStripTextBox1.Text = webBrowser1.Url.ToString();
        }

        /// <summary>
        /// The go button
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            webBrowser1.Navigate(toolStripTextBox1.Text);
        }

        /// <summary>
        /// Show/hide options
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            groupBox1.Visible = !groupBox1.Visible;
        }

        /// <summary>
        /// Update load progress
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
        {
            toolStripProgressBar1.Maximum = (int)e.MaximumProgress;
            toolStripProgressBar1.Value = (int)e.CurrentProgress;
        }
    }

Usage

Open options, check the first check box and you’ll be able to login, open applications and view photos. Should something breaks, try uncheck the check box and press Go to reload the page.

Choose no when IE asks you this, as images are loaded with http

image4

The second check box corrects the links and images on the page to https, only use this when images are not loading

Alternatively, you con use this to access facebook with its ip address. Try navigate to 69.63.184.143 and have it replace http://www.63.184.143 with https://69.63.184.143 (facebook removes the leftmost part before the first . and replaces it with www when you login)

Here’s the executable

about:brief and about:scribeFire

Don’t know when I started… Somewhere during the last week. I looked at Firefox’s featured add-ons list while updating my plugins (yes, I manually update
them for compatibility’s sake), I noticed Brief and ScribeFire (with nice logos :P), they are all free and are featured, which implies they are good for something. Why don’t give them a spin?

Brief

013009-0249-aboutbriefa1.png

Yes. I use Windows. Don't laugh!

This plugin lets you read feeds and that’s it! It has a nice interface with fold in and out effects (possibly some jQuery hidden behind); it now works with NoScript (they said so in the change log). Its advantages over Firefox’s live bookmark are:

  • You get to see the content of the post from the feed.
  • You can rate, mark read and deletes items.
  • Set individual update rate for each feed, or for all feeds.
  • Nice and customizable interface. (If you know CSS)

To me, at first it looked like a nice alternative to Microsoft Outlook’s feed functionality and I like its customizable interface. I have a feed with oversize pictures inside, it makes me scroll to see the content, all I have to do is go to the customization interface, and type some simple CSS

.article-content {
    width: 80% !important;
    overflow: hidden;
    font-size: 12pt !important;
}

font {
    font-size: 12pt !important;
}

Basically, the above CSS set the width of the content element to roughly 80% of the full window width, tell Firefox to trim off anything that come further than the edge, force all text size to 12 points to readability; and that’s it! The text content is wrapped nicely inside the window’s width, oversized pictures are trimmed off, should I want to view then, and “View Image” will come in handy.

To see brief’s elements on the page, go to Brief’s page description. Yes you can use some web development tools but trust me, all you got inspecting the page is a bunch of JavaScript insert :P.

<body>
    

But because it inherited from Firefox’s Live bookmark, it also share LB’s limitations like you can’t read the full post inline (if the publisher have chosen to publish it short), this can be frustrating reading feeds with lots of item. You want to read it? New tab! Shouldn’t a feed reader simplify the reading process? And looks like it’s compatible only with feeds which the Live Bookmark feature in Firefox is capable of reading.

And as a plugin, it has problems of its own, like it can rarely update the feeds on itself. At first I thought this was BetterCache’s fault, but even after disabling BetterCache, it still won’t update my feeds even if I clicked on each of them and choose “Update feed”. To have the feeds refreshed I have to go to the bookmark sidebar and update the like bookmarks there. Only then would the new items appear

So, if you want a news reader and like to pray that the updates work (possibly it just doesn’t like me), and always wanted to change the way how your news look, then Brief is right; but if you are looking for something that will satisfy all your reading need, there’s still a long way to go.

ScribeFire

A lightweight blogging plugin (about 500K). It lets you conveniently blog about stuff you like (a site, an image, you tube video etc.) straight from Firefox with a mouse click (or F8).

Yes, it implements many popular blogging services like WordPress, Blogger, Xanga, and custom blogs that implement the MetaWebLog API. For the basic part, it allows you to create / edit posts in a WordPad-like interface.

013009-0249-aboutbriefa2.png

It is capable of

In short, it lets you perform all the basic function all the blogging platform allows you in common. It’s quite good, I tried several posts and it does its job really fast, comparable to Word’s; there’s also some “extra” function like:

  • Insert a Flickr Image: You can search for Flickr images which match a keyword and insert it to your post, albeit the process is slow. I would prefer a Flickr-code text box, insert the image page URL and get the picture inside that page inserted (Flickr scatter a transparent 1×1 GIF over its images you can’t just save image as…)
  • Insert a You tube video: Same as Flickr.
  • Blogging toolbar: when you visit a blog of yours that you have registered with ScribeFire, you can quickly edit your posts and page by clicking their titles, nice feature that WordPress lacks, but can be fixed with a simple template tag (but that’s another story).

    013009-0249-aboutbriefa3.png

    Blogging toolbar

  • Managed ads: Haven’t tried this feature. Looks like it lets you insert and track ads easier, but I don’t like this one. I know that the plugin maker has the right to make some dough from this but it makes me suspicious if this plugin’s authenticity. To this point I trust it solely because it’s Mozilla-featured, and I’m still dubious. Furthermore, the space it takes to the left of the page looks clumsy; I just want to remove it off sight!

And as all my suspicions went, it’s right to some point. Since I began writing this post, I haven’t opened ScribeFire’s home page, I turned off all Firefox’s updates and only open some posts from my server (which is like thousands of miles away from ScribeFire’s), look at the traffic to and from my computer and see I’ve got:

013009-0249-aboutbriefa4.png

See that nice IP? 8.10.72.201, let’s find out where is it

013009-0249-aboutbriefa5.png

Surprise!

I could find out what it is trying to send back home, but doesn’t like to. I’m not going to use this for long anyway. Yes, it does its primary function quite good, but I doesn’t like that interface. Would you prefer the editor you see several paragraph above or this:

013009-0249-aboutbriefa6.png

Blogging with Word

I know that Word doesn’t have the full functionality set, but I feel more inspired blogging with Word than ScribeFire. UI over functionality, how superficial I am :P. But that’s not the only drawback of this plugin.

  • Every time you insert an image, you will have to wait for it to upload if it’s from your computer, in contrast with Word which uploads the image after you have published the post. ScribeFire’s approach makes the user wait, even if the delay is relatively short on broadband, it’s still a delay and the user (me) isn’t comfortable with it. It does have the advantage of easier control on which image has been uploaded and which have not (Word always upload all images every time you publish a post), but again, Word does not make the user wait: money can’t buy time but it can buy server space :P.
  • No find function in the code view (while the near-WYSIWYG editor has). You have like 1000 lines of HTML for your post? Forget your custom classes!
  • You can open multiple instances of it, ScribeFire will slow you browser down for a while but it will let you. This may easily confuse you and have you edit in the wrong window, especially when you are busy. And that lead to post conflict…

Both of the plugins are new, they have the potential to become better but for the moment, I’m done testing.